chore(wallet)_: transactions/types.go moved to services/wallet/wallettypes
This commit is contained in:
parent
bbc2686de9
commit
92da9232f1
|
@ -12,7 +12,7 @@ import (
|
||||||
"github.com/status-im/status-go/params"
|
"github.com/status-im/status-go/params"
|
||||||
"github.com/status-im/status-go/services/personal"
|
"github.com/status-im/status-go/services/personal"
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"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
|
// StatusBackend defines the contract for the Status.im service
|
||||||
|
@ -39,13 +39,13 @@ type StatusBackend interface {
|
||||||
|
|
||||||
CallPrivateRPC(inputJSON string) (string, error)
|
CallPrivateRPC(inputJSON string) (string, error)
|
||||||
CallRPC(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)
|
HashTypedData(typed typeddata.TypedData) (types.Hash, error)
|
||||||
HashTypedDataV4(typed signercore.TypedData) (types.Hash, error)
|
HashTypedDataV4(typed signercore.TypedData) (types.Hash, error)
|
||||||
ResetChainData() error
|
ResetChainData() error
|
||||||
SendTransaction(sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error)
|
SendTransaction(sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error)
|
||||||
SendTransactionWithChainID(chainID uint64, sendArgs transactions.SendTxArgs, password string) (hash types.Hash, err error)
|
SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.SendTxArgs, password string) (hash types.Hash, err error)
|
||||||
SendTransactionWithSignature(sendArgs transactions.SendTxArgs, sig []byte) (hash types.Hash, err error)
|
SendTransactionWithSignature(sendArgs wallettypes.SendTxArgs, sig []byte) (hash types.Hash, err error)
|
||||||
SignHash(hexEncodedHash string) (string, error)
|
SignHash(hexEncodedHash string) (string, error)
|
||||||
SignMessage(rpcParams personal.SignParams) (types.HexBytes, error)
|
SignMessage(rpcParams personal.SignParams) (types.HexBytes, error)
|
||||||
SignTypedData(typed typeddata.TypedData, address string, password string) (types.HexBytes, error)
|
SignTypedData(typed typeddata.TypedData, address string, password string) (types.HexBytes, error)
|
||||||
|
|
|
@ -37,11 +37,11 @@ import (
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"github.com/status-im/status-go/services/typeddata"
|
||||||
"github.com/status-im/status-go/services/wallet"
|
"github.com/status-im/status-go/services/wallet"
|
||||||
walletservice "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/signal"
|
||||||
"github.com/status-im/status-go/sqlite"
|
"github.com/status-im/status-go/sqlite"
|
||||||
"github.com/status-im/status-go/t/helpers"
|
"github.com/status-im/status-go/t/helpers"
|
||||||
"github.com/status-im/status-go/t/utils"
|
"github.com/status-im/status-go/t/utils"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
"github.com/status-im/status-go/walletdatabase"
|
"github.com/status-im/status-go/walletdatabase"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ func TestBackendGetVerifiedAccount(t *testing.T) {
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
address := gethcrypto.PubkeyToAddress(pkey.PublicKey)
|
address := gethcrypto.PubkeyToAddress(pkey.PublicKey)
|
||||||
key, err := backend.getVerifiedWalletAccount(address.String(), password)
|
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)
|
require.Nil(t, key)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/personal"
|
"github.com/status-im/status-go/services/personal"
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"github.com/status-im/status-go/services/typeddata"
|
||||||
"github.com/status-im/status-go/services/wallet"
|
"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/signal"
|
||||||
"github.com/status-im/status-go/sqlite"
|
"github.com/status-im/status-go/sqlite"
|
||||||
"github.com/status-im/status-go/transactions"
|
"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.
|
// 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)
|
verifiedAccount, err := b.getVerifiedWalletAccount(sendArgs.From.String(), password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
return hash, err
|
||||||
|
@ -2277,7 +2278,7 @@ func (b *GethStatusBackend) SendTransaction(sendArgs transactions.SendTxArgs, pa
|
||||||
return hash, err
|
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)
|
verifiedAccount, err := b.getVerifiedWalletAccount(sendArgs.From.String(), password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
return hash, err
|
||||||
|
@ -2287,7 +2288,7 @@ func (b *GethStatusBackend) SendTransactionWithChainID(chainID uint64, sendArgs
|
||||||
return hash, err
|
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)
|
txWithSignature, err := b.transactor.BuildTransactionWithSignature(b.transactor.NetworkID(), sendArgs, sig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
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.
|
// 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)
|
return b.transactor.HashTransaction(sendArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2379,8 +2380,8 @@ func (b *GethStatusBackend) getVerifiedWalletAccount(address, password string) (
|
||||||
}
|
}
|
||||||
|
|
||||||
if !exists {
|
if !exists {
|
||||||
b.logger.Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
|
b.logger.Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
|
||||||
return nil, transactions.ErrAccountDoesntExist
|
return nil, wallettypes.ErrAccountDoesntExist
|
||||||
}
|
}
|
||||||
|
|
||||||
key, err := b.accountManager.VerifyAccountPassword(config.KeyStoreDir, address, password)
|
key, err := b.accountManager.VerifyAccountPassword(config.KeyStoreDir, address, password)
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/account"
|
"github.com/status-im/status-go/account"
|
||||||
"github.com/status-im/status-go/eth-node/keystore"
|
"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 (
|
const (
|
||||||
|
@ -21,7 +21,7 @@ const (
|
||||||
|
|
||||||
var errToCodeMap = map[error]int{
|
var errToCodeMap = map[error]int{
|
||||||
account.ErrNoAccountSelected: codeErrNoAccountSelected,
|
account.ErrNoAccountSelected: codeErrNoAccountSelected,
|
||||||
transactions.ErrInvalidTxSender: codeErrInvalidTxSender,
|
wallettypes.ErrInvalidTxSender: codeErrInvalidTxSender,
|
||||||
keystore.ErrDecrypt: codeErrDecrypt,
|
keystore.ErrDecrypt: codeErrDecrypt,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,8 @@ import (
|
||||||
"github.com/status-im/status-go/server/pairing/preflight"
|
"github.com/status-im/status-go/server/pairing/preflight"
|
||||||
"github.com/status-im/status-go/services/personal"
|
"github.com/status-im/status-go/services/personal"
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
|
|
||||||
"github.com/status-im/status-go/mobile/callog"
|
"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.
|
// sendTransactionWithChainID converts RPC args and calls backend.SendTransactionWithChainID.
|
||||||
func sendTransactionWithChainID(chainID int, txArgsJSON, password string) string {
|
func sendTransactionWithChainID(chainID int, txArgsJSON, password string) string {
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
||||||
|
@ -869,7 +869,7 @@ func SendTransaction(txArgsJSON, password string) string {
|
||||||
// sendTransaction converts RPC args and calls backend.SendTransaction.
|
// sendTransaction converts RPC args and calls backend.SendTransaction.
|
||||||
// Deprecated: Use sendTransactionV2 instead.
|
// Deprecated: Use sendTransactionV2 instead.
|
||||||
func sendTransaction(txArgsJSON, password string) string {
|
func sendTransaction(txArgsJSON, password string) string {
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
||||||
|
@ -911,7 +911,7 @@ func SendTransactionWithSignature(txArgsJSON, sigString string) string {
|
||||||
|
|
||||||
// sendTransactionWithSignature converts RPC args and calls backend.SendTransactionWithSignature
|
// sendTransactionWithSignature converts RPC args and calls backend.SendTransactionWithSignature
|
||||||
func sendTransactionWithSignature(txArgsJSON, sigString string) string {
|
func sendTransactionWithSignature(txArgsJSON, sigString string) string {
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
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.
|
// hashTransaction validate the transaction and returns new txArgs and the transaction hash.
|
||||||
func hashTransaction(txArgsJSON string) string {
|
func hashTransaction(txArgsJSON string) string {
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
err := json.Unmarshal([]byte(txArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
return prepareJSONResponseWithCode(nil, err, codeFailedParseParams)
|
||||||
|
@ -949,7 +949,7 @@ func hashTransaction(txArgsJSON string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
result := struct {
|
result := struct {
|
||||||
Transaction transactions.SendTxArgs `json:"transaction"`
|
Transaction wallettypes.SendTxArgs `json:"transaction"`
|
||||||
Hash types.Hash `json:"hash"`
|
Hash types.Hash `json:"hash"`
|
||||||
}{
|
}{
|
||||||
Transaction: newTxArgs,
|
Transaction: newTxArgs,
|
||||||
|
|
|
@ -43,8 +43,8 @@ import (
|
||||||
walletcommon "github.com/status-im/status-go/services/wallet/common"
|
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/thirdparty"
|
||||||
"github.com/status-im/status-go/services/wallet/token"
|
"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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Publisher interface {
|
type Publisher interface {
|
||||||
|
@ -266,7 +266,7 @@ type AssetContractData struct {
|
||||||
|
|
||||||
type CommunityTokensServiceInterface interface {
|
type CommunityTokensServiceInterface interface {
|
||||||
GetCollectibleContractData(chainID uint64, contractAddress string) (*CollectibleContractData, error)
|
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)
|
GetAssetContractData(chainID uint64, contractAddress string) (*AssetContractData, error)
|
||||||
SafeGetSignerPubKey(ctx context.Context, chainID uint64, communityID string) (string, error)
|
SafeGetSignerPubKey(ctx context.Context, chainID uint64, communityID string) (string, error)
|
||||||
DeploymentSignatureDigest(chainID uint64, addressFrom string, communityID string) ([]byte, error)
|
DeploymentSignatureDigest(chainID uint64, addressFrom string, communityID string) ([]byte, error)
|
||||||
|
|
|
@ -30,7 +30,7 @@ import (
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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/thirdparty"
|
||||||
walletToken "github.com/status-im/status-go/services/wallet/token"
|
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 {
|
type AccountManagerMock struct {
|
||||||
|
@ -201,7 +201,7 @@ func (c *CollectiblesServiceMock) SetSignerPubkeyForCommunity(communityID []byte
|
||||||
c.Signers[types.EncodeHex(communityID)] = signerPubKey
|
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
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@ package requests
|
||||||
import (
|
import (
|
||||||
"gopkg.in/go-playground/validator.v9"
|
"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.
|
// SendTransaction represents a request to send a transaction.
|
||||||
type SendTransaction struct {
|
type SendTransaction struct {
|
||||||
TxArgs transactions.SendTxArgs `json:"txArgs"`
|
TxArgs wallettypes.SendTxArgs `json:"txArgs"`
|
||||||
Password string `json:"password" validate:"required"`
|
Password string `json:"password" validate:"required"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/utils"
|
"github.com/status-im/status-go/services/utils"
|
||||||
"github.com/status-im/status-go/services/wallet/bigint"
|
"github.com/status-im/status-go/services/wallet/bigint"
|
||||||
wcommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -101,7 +102,7 @@ func (d *DeploymentParameters) Validate(isAsset bool) error {
|
||||||
return nil
|
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)
|
err := deploymentParameters.Validate(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return DeploymentDetails{}, err
|
return DeploymentDetails{}, err
|
||||||
|
@ -180,7 +181,7 @@ func prepareDeploymentSignatureStruct(signature string, communityID string, addr
|
||||||
|
|
||||||
func (api *API) DeployOwnerToken(ctx context.Context, chainID uint64,
|
func (api *API) DeployOwnerToken(ctx context.Context, chainID uint64,
|
||||||
ownerTokenParameters DeploymentParameters, masterTokenParameters DeploymentParameters,
|
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)
|
err := ownerTokenParameters.Validate(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return DeploymentDetails{}, err
|
return DeploymentDetails{}, err
|
||||||
|
@ -272,7 +273,7 @@ func (api *API) ReTrackOwnerTokenDeploymentTransaction(ctx context.Context, chai
|
||||||
return api.s.ReTrackOwnerTokenDeploymentTransaction(ctx, chainID, contractAddress)
|
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)
|
err := deploymentParameters.Validate(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -376,7 +377,7 @@ func (api *API) NewAssetsInstance(chainID uint64, contractAddress string) (*asse
|
||||||
}
|
}
|
||||||
|
|
||||||
// Universal minting function for every type of token.
|
// 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)
|
err := api.s.ValidateWalletsAndAmounts(walletAddresses, amount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -439,7 +440,7 @@ func (api *API) RemoteDestructedAmount(ctx context.Context, chainID uint64, cont
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is only ERC721 function
|
// 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)
|
err := api.s.validateTokens(tokenIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
@ -491,7 +492,7 @@ func (api *API) RemainingSupply(ctx context.Context, chainID uint64, contractAdd
|
||||||
return api.s.remainingSupply(ctx, chainID, contractAddress)
|
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)
|
err := api.s.validateBurnAmount(ctx, burnAmount, chainID, contractAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
@ -546,7 +547,7 @@ func (api *API) SafeGetOwnerTokenAddress(ctx context.Context, chainID uint64, co
|
||||||
return api.s.SafeGetOwnerTokenAddress(ctx, chainID, communityID)
|
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)
|
return api.s.SetSignerPubKey(ctx, chainID, contractAddress, txArgs, password, newSignerPubKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ import (
|
||||||
"github.com/status-im/status-go/protocol/protobuf"
|
"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/bigint"
|
||||||
"github.com/status-im/status-go/services/wallet/router/fees"
|
"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 {
|
type CommunityTokenFees struct {
|
||||||
|
@ -375,8 +375,8 @@ func (s *Service) prepareCommunityTokenFees(ctx context.Context, from common.Add
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Address, gas uint64, suggestedFees *fees.SuggestedFeesGwei) transactions.SendTxArgs {
|
func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Address, gas uint64, suggestedFees *fees.SuggestedFeesGwei) wallettypes.SendTxArgs {
|
||||||
sendArgs := transactions.SendTxArgs{}
|
sendArgs := wallettypes.SendTxArgs{}
|
||||||
sendArgs.From = types.Address(from)
|
sendArgs.From = types.Address(from)
|
||||||
sendArgs.To = (*types.Address)(to)
|
sendArgs.To = (*types.Address)(to)
|
||||||
sendArgs.Gas = (*hexutil.Uint64)(&gas)
|
sendArgs.Gas = (*hexutil.Uint64)(&gas)
|
||||||
|
@ -389,7 +389,7 @@ func (s *Service) suggestedFeesToSendTxArgs(from common.Address, to *common.Addr
|
||||||
return sendArgs
|
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)
|
transaction, _, err := s.transactor.ValidateAndBuildTransaction(chainID, sendArgs, -1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|
|
@ -35,6 +35,7 @@ import (
|
||||||
wcommon "github.com/status-im/status-go/services/wallet/common"
|
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/router/fees"
|
||||||
"github.com/status-im/status-go/services/wallet/walletevent"
|
"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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
@ -501,7 +502,7 @@ func (s *Service) ProcessCommunityTokenAction(message *protobuf.CommunityTokenAc
|
||||||
return nil
|
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 {
|
if len(newSignerPubKey) <= 0 {
|
||||||
return "", fmt.Errorf("signerPubKey is empty")
|
return "", fmt.Errorf("signerPubKey is empty")
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
persistence "github.com/status-im/status-go/services/connector/database"
|
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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -148,7 +148,7 @@ func (c *ClientSideHandler) RecallDAppPermissions(args RecallDAppPermissionsArgs
|
||||||
return nil
|
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() {
|
if !c.setRequestRunning() {
|
||||||
return types.Hash{}, ErrAnotherConnectorOperationIsAwaitingFor
|
return types.Hash{}, ErrAnotherConnectorOperationIsAwaitingFor
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/params"
|
"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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -75,7 +75,7 @@ type ClientSideHandlerInterface interface {
|
||||||
RequestAccountsRejected(args RejectedArgs) error
|
RequestAccountsRejected(args RejectedArgs) error
|
||||||
RecallDAppPermissions(args RecallDAppPermissionsArgs) 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
|
SendTransactionAccepted(args SendTransactionAcceptedArgs) error
|
||||||
SendTransactionRejected(args RejectedArgs) error
|
SendTransactionRejected(args RejectedArgs) error
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
persistence "github.com/status-im/status-go/services/connector/database"
|
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/router/fees"
|
||||||
|
"github.com/status-im/status-go/services/wallet/wallettypes"
|
||||||
"github.com/status-im/status-go/signal"
|
"github.com/status-im/status-go/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -29,7 +29,7 @@ type SendTransactionCommand struct {
|
||||||
ClientHandler ClientSideHandlerInterface
|
ClientHandler ClientSideHandlerInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RPCRequest) getSendTransactionParams() (*transactions.SendTxArgs, error) {
|
func (r *RPCRequest) getSendTransactionParams() (*wallettypes.SendTxArgs, error) {
|
||||||
if r.Params == nil || len(r.Params) == 0 {
|
if r.Params == nil || len(r.Params) == 0 {
|
||||||
return nil, ErrEmptyRPCParams
|
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)
|
return nil, fmt.Errorf("error marshalling first transaction param: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var sendTxArgs transactions.SendTxArgs
|
var sendTxArgs wallettypes.SendTxArgs
|
||||||
err = json.Unmarshal(paramBytes, &sendTxArgs)
|
err = json.Unmarshal(paramBytes, &sendTxArgs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error unmarshalling first transaction param to SendTxArgs: %v", err)
|
return nil, fmt.Errorf("error unmarshalling first transaction param to SendTxArgs: %v", err)
|
||||||
|
|
|
@ -13,12 +13,12 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
mock_client "github.com/status-im/status-go/rpc/chain/mock/client"
|
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/signal"
|
||||||
"github.com/status-im/status-go/transactions"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func prepareSendTransactionRequest(dApp signal.ConnectorDApp, from types.Address) (RPCRequest, error) {
|
func prepareSendTransactionRequest(dApp signal.ConnectorDApp, from types.Address) (RPCRequest, error) {
|
||||||
sendArgs := transactions.SendTxArgs{
|
sendArgs := wallettypes.SendTxArgs{
|
||||||
From: from,
|
From: from,
|
||||||
To: &types.Address{0x02},
|
To: &types.Address{0x02},
|
||||||
Value: &hexutil.Big{},
|
Value: &hexutil.Big{},
|
||||||
|
|
|
@ -32,6 +32,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/ens/ensresolver"
|
"github.com/status-im/status-go/services/ens/ensresolver"
|
||||||
"github.com/status-im/status-go/services/utils"
|
"github.com/status-im/status-go/services/utils"
|
||||||
wcommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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.
|
// Deprecated: `Release` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
registryAddr, err := api.ensResolver.GetRegistrarAddress(ctx, chainID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
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.
|
// Deprecated: `ReleasePrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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))
|
registrarABI, err := abi.JSON(strings.NewReader(registrar.UsernameRegistrarABI))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ethereum.CallMsg{}, err
|
return ethereum.CallMsg{}, err
|
||||||
|
@ -208,10 +209,7 @@ func (api *API) ReleasePrepareTxCallMsg(ctx context.Context, chainID uint64, txA
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: `ReleasePrepareTx` was used before introducing a new, uniform, sending flow that uses router.
|
func (api *API) ReleasePrepareTx(ctx context.Context, chainID uint64, txArgs wallettypes.SendTxArgs, username string) (interface{}, error) {
|
||||||
// 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) {
|
|
||||||
callMsg, err := api.ReleasePrepareTxCallMsg(ctx, chainID, txArgs, username)
|
callMsg, err := api.ReleasePrepareTxCallMsg(ctx, chainID, txArgs, username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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.
|
// Deprecated: `ReleaseEstimate` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
callMsg, err := api.ReleasePrepareTxCallMsg(ctx, chainID, txArgs, username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
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.
|
// Deprecated: `Register` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
registryAddr, err := api.ensResolver.GetRegistrarAddress(ctx, chainID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
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.
|
// Deprecated: `RegisterPrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
priceHex, err := api.Price(ctx, chainID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ethereum.CallMsg{}, err
|
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.
|
// Deprecated: `RegisterPrepareTx` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
callMsg, err := api.RegisterPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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.
|
// Deprecated: `RegisterEstimate` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
callMsg, err := api.RegisterPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
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.
|
// Deprecated: `SetPubKey` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
resolverAddress, err := api.Resolver(ctx, chainID, username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
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.
|
// Deprecated: `SetPubKeyPrepareTxCallMsg` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
err := wcommon.ValidateENSUsername(username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ethereum.CallMsg{}, err
|
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.
|
// Deprecated: `SetPubKeyPrepareTx` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
callMsg, err := api.SetPubKeyPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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.
|
// Deprecated: `SetPubKeyEstimate` was used before introducing a new, uniform, sending flow that uses router.
|
||||||
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
// Releasing ens username should start from calling `wallet_getSuggestedRoutesAsync`
|
||||||
// TODO: remove once mobile switches to a new sending flow.
|
// 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)
|
callMsg, err := api.SetPubKeyPrepareTxCallMsg(ctx, chainID, txArgs, username, pubkey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
"github.com/status-im/status-go/logutils"
|
"github.com/status-im/status-go/logutils"
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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 {
|
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
|
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)
|
registrar, err := e.contractMaker.NewUsernameRegistrar(chainID, registryAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -293,7 +293,7 @@ func (e *EnsResolver) ReleaseEstimate(ctx context.Context, chainID uint64, callM
|
||||||
return estimate + 1000, nil
|
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)
|
snt, err := e.contractMaker.NewSNT(chainID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -339,7 +339,7 @@ func (e *EnsResolver) RegisterEstimate(ctx context.Context, chainID uint64, call
|
||||||
return estimate + 1000, nil
|
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)
|
err := walletCommon.ValidateENSUsername(username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -39,6 +39,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/wallet/token"
|
"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/transfer"
|
||||||
"github.com/status-im/status-go/services/wallet/walletconnect"
|
"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"
|
"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) {
|
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))
|
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), ¶ms)
|
err = json.Unmarshal([]byte(sendTxArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -676,7 +677,7 @@ func (api *API) BuildRawTransaction(ctx context.Context, chainID uint64, sendTxA
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err = json.Unmarshal([]byte(sendTxArgsJSON), ¶ms)
|
err = json.Unmarshal([]byte(sendTxArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -698,7 +699,7 @@ func (api *API) SendTransactionWithSignature(ctx context.Context, chainID uint64
|
||||||
return hash, err
|
return hash, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var params transactions.SendTxArgs
|
var params wallettypes.SendTxArgs
|
||||||
err = json.Unmarshal([]byte(sendTxArgsJSON), ¶ms)
|
err = json.Unmarshal([]byte(sendTxArgsJSON), ¶ms)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
return hash, err
|
||||||
|
@ -912,8 +913,8 @@ func (api *API) getVerifiedWalletAccount(address, password string) (*account.Sel
|
||||||
}
|
}
|
||||||
|
|
||||||
if !exists {
|
if !exists {
|
||||||
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
|
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
|
||||||
return nil, transactions.ErrAccountDoesntExist
|
return nil, wallettypes.ErrAccountDoesntExist
|
||||||
}
|
}
|
||||||
|
|
||||||
keyStoreDir := api.s.Config().KeyStoreDir
|
keyStoreDir := api.s.Config().KeyStoreDir
|
||||||
|
|
|
@ -3,7 +3,7 @@ package responses
|
||||||
import (
|
import (
|
||||||
"github.com/status-im/status-go/errors"
|
"github.com/status-im/status-go/errors"
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"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 {
|
type SendDetails struct {
|
||||||
|
@ -54,7 +54,7 @@ type RouterSentTransactions struct {
|
||||||
SentTransactions []*RouterSentTransaction `json:"sentTransactions"`
|
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{}
|
addr := types.Address{}
|
||||||
if sendArgs.To != nil {
|
if sendArgs.To != nil {
|
||||||
addr = *sendArgs.To
|
addr = *sendArgs.To
|
||||||
|
|
|
@ -5,13 +5,13 @@ import (
|
||||||
|
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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 {
|
type MultipathProcessorTxArgs struct {
|
||||||
Name string `json:"bridgeName"`
|
Name string `json:"bridgeName"`
|
||||||
ChainID uint64
|
ChainID uint64
|
||||||
TransferTx *transactions.SendTxArgs
|
TransferTx *wallettypes.SendTxArgs
|
||||||
HopTx *HopBridgeTxArgs
|
HopTx *HopBridgeTxArgs
|
||||||
CbridgeTx *CelerBridgeTxArgs
|
CbridgeTx *CelerBridgeTxArgs
|
||||||
ERC721TransferTx *ERC721TxArgs
|
ERC721TransferTx *ERC721TxArgs
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
"github.com/status-im/status-go/params"
|
"github.com/status-im/status-go/params"
|
||||||
"github.com/status-im/status-go/services/wallet/requests"
|
"github.com/status-im/status-go/services/wallet/requests"
|
||||||
"github.com/status-im/status-go/services/wallet/token"
|
"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 {
|
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 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)
|
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 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 {
|
type PathProcessorClearable interface {
|
||||||
|
|
|
@ -27,6 +27,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/wallet/router/pathprocessor/cbridge"
|
"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/thirdparty"
|
||||||
"github.com/status-im/status-go/services/wallet/token"
|
"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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,7 +39,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type CelerBridgeTxArgs struct {
|
type CelerBridgeTxArgs struct {
|
||||||
transactions.SendTxArgs
|
wallettypes.SendTxArgs
|
||||||
ChainID uint64 `json:"chainId"`
|
ChainID uint64 `json:"chainId"`
|
||||||
Symbol string `json:"symbol"`
|
Symbol string `json:"symbol"`
|
||||||
Recipient common.Address `json:"recipient"`
|
Recipient common.Address `json:"recipient"`
|
||||||
|
@ -365,7 +366,7 @@ func (s *CelerBridgeProcessor) sendOrBuild(sendArgs *MultipathProcessorTxArgs, s
|
||||||
return tx, nil
|
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)
|
fromChain := s.rpcClient.NetworkManager.Find(sendArgs.FromChainID)
|
||||||
if fromChain == nil {
|
if fromChain == nil {
|
||||||
return nil, ErrNetworkNotFound
|
return nil, ErrNetworkNotFound
|
||||||
|
@ -441,7 +442,7 @@ func (s *CelerBridgeProcessor) BuildTransaction(sendArgs *MultipathProcessorTxAr
|
||||||
return tx, tx.Nonce(), err
|
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)
|
tx, err := s.sendOrBuildV2(sendArgs, nil, lastUsedNonce)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, createBridgeCellerErrorResponse(err)
|
return nil, 0, createBridgeCellerErrorResponse(err)
|
||||||
|
|
|
@ -35,11 +35,12 @@ import (
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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/thirdparty"
|
||||||
"github.com/status-im/status-go/services/wallet/token"
|
"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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
type HopBridgeTxArgs struct {
|
type HopBridgeTxArgs struct {
|
||||||
transactions.SendTxArgs
|
wallettypes.SendTxArgs
|
||||||
ChainID uint64 `json:"chainId"`
|
ChainID uint64 `json:"chainId"`
|
||||||
ChainIDTo uint64 `json:"chainIdTo"`
|
ChainIDTo uint64 `json:"chainIdTo"`
|
||||||
Symbol string `json:"symbol"`
|
Symbol string `json:"symbol"`
|
||||||
|
@ -350,7 +351,7 @@ func (h *HopBridgeProcessor) sendOrBuild(sendArgs *MultipathProcessorTxArgs, sig
|
||||||
return tx, nil
|
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)
|
fromChain := h.networkManager.Find(sendArgs.FromChainID)
|
||||||
if fromChain == nil {
|
if fromChain == nil {
|
||||||
return tx, fmt.Errorf("ChainID not supported %d", sendArgs.FromChainID)
|
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)
|
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)
|
tx, err := h.sendOrBuildV2(sendArgs, nil, lastUsedNonce)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, createBridgeHopErrorResponse(err)
|
return nil, 0, createBridgeHopErrorResponse(err)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
"github.com/status-im/status-go/services/ens/ensresolver"
|
"github.com/status-im/status-go/services/ens/ensresolver"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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)
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
"github.com/status-im/status-go/services/ens/ensresolver"
|
"github.com/status-im/status-go/services/ens/ensresolver"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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)
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
"github.com/status-im/status-go/services/ens/ensresolver"
|
"github.com/status-im/status-go/services/ens/ensresolver"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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)
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,12 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ERC1155TxArgs struct {
|
type ERC1155TxArgs struct {
|
||||||
transactions.SendTxArgs
|
wallettypes.SendTxArgs
|
||||||
TokenID *hexutil.Big `json:"tokenId"`
|
TokenID *hexutil.Big `json:"tokenId"`
|
||||||
Recipient common.Address `json:"recipient"`
|
Recipient common.Address `json:"recipient"`
|
||||||
Amount *hexutil.Big `json:"amount"`
|
Amount *hexutil.Big `json:"amount"`
|
||||||
|
@ -164,7 +165,7 @@ func (s *ERC1155Processor) BuildTransaction(sendArgs *MultipathProcessorTxArgs,
|
||||||
return tx, tx.Nonce(), err
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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/token"
|
||||||
|
"github.com/status-im/status-go/services/wallet/wallettypes"
|
||||||
"github.com/status-im/status-go/transactions"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type ERC721TxArgs struct {
|
type ERC721TxArgs struct {
|
||||||
transactions.SendTxArgs
|
wallettypes.SendTxArgs
|
||||||
TokenID *hexutil.Big `json:"tokenId"`
|
TokenID *hexutil.Big `json:"tokenId"`
|
||||||
Recipient common.Address `json:"recipient"`
|
Recipient common.Address `json:"recipient"`
|
||||||
}
|
}
|
||||||
|
@ -222,7 +223,7 @@ func (s *ERC721Processor) BuildTransaction(sendArgs *MultipathProcessorTxArgs, l
|
||||||
return tx, tx.Nonce(), err
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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)
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,12 @@ import (
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
||||||
"github.com/status-im/status-go/services/wallet/thirdparty/paraswap"
|
"github.com/status-im/status-go/services/wallet/thirdparty/paraswap"
|
||||||
walletToken "github.com/status-im/status-go/services/wallet/token"
|
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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SwapParaswapTxArgs struct {
|
type SwapParaswapTxArgs struct {
|
||||||
transactions.SendTxArgs
|
wallettypes.SendTxArgs
|
||||||
ChainID uint64 `json:"chainId"`
|
ChainID uint64 `json:"chainId"`
|
||||||
ChainIDTo uint64 `json:"chainIdTo"`
|
ChainIDTo uint64 `json:"chainIdTo"`
|
||||||
TokenIDFrom string `json:"tokenIdFrom"`
|
TokenIDFrom string `json:"tokenIdFrom"`
|
||||||
|
@ -255,7 +256,7 @@ func (s *SwapParaswapProcessor) prepareTransaction(sendArgs *MultipathProcessorT
|
||||||
return nil
|
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
|
slippageBP := uint(sendArgs.SlippagePercentage * 100) // convert to basis points
|
||||||
|
|
||||||
key := makeKey(sendArgs.FromChainID, sendArgs.ToChainID, sendArgs.FromTokenID, sendArgs.ToTokenID, sendArgs.ValueIn.ToInt())
|
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)
|
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)
|
err := s.prepareTransactionV2(sendArgs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, createSwapParaswapErrorResponse(err)
|
return nil, 0, createSwapParaswapErrorResponse(err)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
walletCommon "github.com/status-im/status-go/services/wallet/common"
|
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"
|
"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)
|
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)
|
return s.transactor.ValidateAndBuildTransaction(sendArgs.FromChainID, *sendArgs, lastUsedNonce)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import (
|
||||||
wallet_common "github.com/status-im/status-go/services/wallet/common"
|
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/pathprocessor"
|
||||||
"github.com/status-im/status-go/services/wallet/router/routes"
|
"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"
|
"github.com/status-im/status-go/transactions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -30,7 +31,7 @@ type TransactionDescription struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type TransactionData struct {
|
type TransactionData struct {
|
||||||
TxArgs *transactions.SendTxArgs
|
TxArgs *wallettypes.SendTxArgs
|
||||||
Tx *ethTypes.Transaction
|
Tx *ethTypes.Transaction
|
||||||
HashToSign types.Hash
|
HashToSign types.Hash
|
||||||
Signature []byte
|
Signature []byte
|
||||||
|
@ -159,7 +160,7 @@ type TxResponse struct {
|
||||||
SignOnKeycard bool `json:"signOnKeycard,omitempty"`
|
SignOnKeycard bool `json:"signOnKeycard,omitempty"`
|
||||||
ChainID uint64 `json:"chainId,omitempty"`
|
ChainID uint64 `json:"chainId,omitempty"`
|
||||||
MessageToSign interface{} `json:"messageToSign,omitempty"`
|
MessageToSign interface{} `json:"messageToSign,omitempty"`
|
||||||
TxArgs transactions.SendTxArgs `json:"txArgs,omitempty"`
|
TxArgs wallettypes.SendTxArgs `json:"txArgs,omitempty"`
|
||||||
RawTx string `json:"rawTx,omitempty"`
|
RawTx string `json:"rawTx,omitempty"`
|
||||||
TxHash common.Hash `json:"txHash,omitempty"`
|
TxHash common.Hash `json:"txHash,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -197,7 +198,7 @@ func (tm *TransactionManager) SignMessage(message types.HexBytes, account *types
|
||||||
return types.EncodeHex(signature), err
|
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)
|
account, err := tm.accountsDB.GetAccountByAddress(sendArgs.From)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to resolve account: %w", err)
|
return nil, fmt.Errorf("failed to resolve account: %w", err)
|
||||||
|
@ -255,7 +256,7 @@ func (tm *TransactionManager) BuildTransaction(chainID uint64, sendArgs transact
|
||||||
}, nil
|
}, 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)
|
tx, err := tm.transactor.BuildTransactionWithSignature(chainID, sendArgs, signature)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -274,7 +275,7 @@ func (tm *TransactionManager) BuildRawTransaction(chainID uint64, sendArgs trans
|
||||||
}, nil
|
}, 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)
|
txWithSignature, err := tm.transactor.BuildTransactionWithSignature(chainID, sendArgs, signature)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
return hash, err
|
||||||
|
|
|
@ -22,14 +22,15 @@ import (
|
||||||
"github.com/status-im/status-go/services/wallet/router/pathprocessor"
|
"github.com/status-im/status-go/services/wallet/router/pathprocessor"
|
||||||
mock_pathprocessor "github.com/status-im/status-go/services/wallet/router/pathprocessor/mock"
|
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/walletevent"
|
||||||
|
"github.com/status-im/status-go/services/wallet/wallettypes"
|
||||||
"github.com/status-im/status-go/t/helpers"
|
"github.com/status-im/status-go/t/helpers"
|
||||||
"github.com/status-im/status-go/transactions"
|
"github.com/status-im/status-go/transactions"
|
||||||
mock_transactor "github.com/status-im/status-go/transactions/mock"
|
mock_transactor "github.com/status-im/status-go/transactions/mock"
|
||||||
"github.com/status-im/status-go/walletdatabase"
|
"github.com/status-im/status-go/walletdatabase"
|
||||||
)
|
)
|
||||||
|
|
||||||
func deepCopy(tx *transactions.SendTxArgs) *transactions.SendTxArgs {
|
func deepCopy(tx *wallettypes.SendTxArgs) *wallettypes.SendTxArgs {
|
||||||
return &transactions.SendTxArgs{
|
return &wallettypes.SendTxArgs{
|
||||||
From: tx.From,
|
From: tx.From,
|
||||||
To: tx.To,
|
To: tx.To,
|
||||||
Value: tx.Value,
|
Value: tx.Value,
|
||||||
|
@ -87,7 +88,7 @@ func setupTransactionData(_ *testing.T, transactor transactions.TransactorIface)
|
||||||
{
|
{
|
||||||
ChainID: 1,
|
ChainID: 1,
|
||||||
Name: transferBridge.Name(),
|
Name: transferBridge.Name(),
|
||||||
TransferTx: &transactions.SendTxArgs{
|
TransferTx: &wallettypes.SendTxArgs{
|
||||||
From: types.Address(ethTransfer.From),
|
From: types.Address(ethTransfer.From),
|
||||||
To: (*types.Address)(ðTransfer.To),
|
To: (*types.Address)(ðTransfer.To),
|
||||||
Value: (*hexutil.Big)(big.NewInt(ethTransfer.Value / 3)),
|
Value: (*hexutil.Big)(big.NewInt(ethTransfer.Value / 3)),
|
||||||
|
@ -99,7 +100,7 @@ func setupTransactionData(_ *testing.T, transactor transactions.TransactorIface)
|
||||||
{
|
{
|
||||||
ChainID: 420,
|
ChainID: 420,
|
||||||
Name: transferBridge.Name(),
|
Name: transferBridge.Name(),
|
||||||
TransferTx: &transactions.SendTxArgs{
|
TransferTx: &wallettypes.SendTxArgs{
|
||||||
From: types.Address(ethTransfer.From),
|
From: types.Address(ethTransfer.From),
|
||||||
To: (*types.Address)(ðTransfer.To),
|
To: (*types.Address)(ðTransfer.To),
|
||||||
Value: (*hexutil.Big)(big.NewInt(ethTransfer.Value * 2 / 3)),
|
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
|
//ChainID: 1, // This will be set by transaction manager
|
||||||
Name: transferBridge.Name(),
|
Name: transferBridge.Name(),
|
||||||
TransferTx: &transactions.SendTxArgs{
|
TransferTx: &wallettypes.SendTxArgs{
|
||||||
From: types.Address(tokenTransfer.From),
|
From: types.Address(tokenTransfer.From),
|
||||||
To: (*types.Address)(&tokenTransfer.To),
|
To: (*types.Address)(&tokenTransfer.To),
|
||||||
Value: (*hexutil.Big)(big.NewInt(tokenTransfer.Value)),
|
Value: (*hexutil.Big)(big.NewInt(tokenTransfer.Value)),
|
||||||
|
@ -203,9 +204,9 @@ func TestSendTransactionsETHFailOnBridge(t *testing.T) {
|
||||||
transferBridge.EXPECT().Name().Return(data[0].Name).AnyTimes()
|
transferBridge.EXPECT().Name().Return(data[0].Name).AnyTimes()
|
||||||
bridges[transferBridge.Name()] = transferBridge
|
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
|
// 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
|
// Call the SendTransactions method
|
||||||
_, err := tm.SendTransactions(context.Background(), multiTransaction, data, bridges, account)
|
_, 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
|
// 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
|
// 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[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)
|
transactor.EXPECT().SendTransactionWithChainID(expectedData[1].ChainID, *(expectedData[1].TransferTx), int64(-1), account).Return(types.Hash{}, uint64(0), expectedErr)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import (
|
||||||
"github.com/status-im/status-go/services/wallet/responses"
|
"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/pathprocessor"
|
||||||
"github.com/status-im/status-go/services/wallet/router/routes"
|
"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 {
|
type BuildRouteExtraParams struct {
|
||||||
|
@ -89,8 +89,8 @@ func buildApprovalTxForPath(transactor transactions.TransactorIface, path *route
|
||||||
}
|
}
|
||||||
|
|
||||||
addrTo := types.Address(path.FromToken.Address)
|
addrTo := types.Address(path.FromToken.Address)
|
||||||
approavalSendArgs := &transactions.SendTxArgs{
|
approavalSendArgs := &wallettypes.SendTxArgs{
|
||||||
Version: transactions.SendTxArgsVersion1,
|
Version: wallettypes.SendTxArgsVersion1,
|
||||||
|
|
||||||
// tx fields
|
// tx fields
|
||||||
From: types.Address(addressFrom),
|
From: types.Address(addressFrom),
|
||||||
|
@ -151,8 +151,8 @@ func buildTxForPath(transactor transactions.TransactorIface, path *routes.Path,
|
||||||
}
|
}
|
||||||
|
|
||||||
addrTo := types.Address(params.AddressTo)
|
addrTo := types.Address(params.AddressTo)
|
||||||
sendArgs := &transactions.SendTxArgs{
|
sendArgs := &wallettypes.SendTxArgs{
|
||||||
Version: transactions.SendTxArgsVersion1,
|
Version: wallettypes.SendTxArgsVersion1,
|
||||||
|
|
||||||
// tx fields
|
// tx fields
|
||||||
From: types.Address(params.AddressFrom),
|
From: types.Address(params.AddressFrom),
|
||||||
|
|
|
@ -17,7 +17,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/multiaccounts/accounts"
|
"github.com/status-im/status-go/multiaccounts/accounts"
|
||||||
wallet_common "github.com/status-im/status-go/services/wallet/common"
|
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"
|
mock_transactor "github.com/status-im/status-go/transactions/mock"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
@ -268,7 +268,7 @@ func TestBuildTransaction(t *testing.T) {
|
||||||
chainID := uint64(1)
|
chainID := uint64(1)
|
||||||
nonce := uint64(1)
|
nonce := uint64(1)
|
||||||
gas := uint64(21000)
|
gas := uint64(21000)
|
||||||
sendArgs := transactions.SendTxArgs{
|
sendArgs := wallettypes.SendTxArgs{
|
||||||
From: types.Address{1},
|
From: types.Address{1},
|
||||||
To: &types.Address{2},
|
To: &types.Address{2},
|
||||||
Value: (*hexutil.Big)(big.NewInt(123)),
|
Value: (*hexutil.Big)(big.NewInt(123)),
|
||||||
|
@ -309,7 +309,7 @@ func TestBuildTransaction_AccountNotFound(t *testing.T) {
|
||||||
chainID := uint64(1)
|
chainID := uint64(1)
|
||||||
nonce := uint64(1)
|
nonce := uint64(1)
|
||||||
gas := uint64(21000)
|
gas := uint64(21000)
|
||||||
sendArgs := transactions.SendTxArgs{
|
sendArgs := wallettypes.SendTxArgs{
|
||||||
From: types.Address{2},
|
From: types.Address{2},
|
||||||
To: &types.Address{2},
|
To: &types.Address{2},
|
||||||
Value: (*hexutil.Big)(big.NewInt(123)),
|
Value: (*hexutil.Big)(big.NewInt(123)),
|
||||||
|
@ -328,7 +328,7 @@ func TestBuildTransaction_InvalidSendTxArgs(t *testing.T) {
|
||||||
manager, transactor := setupTestSuite(t)
|
manager, transactor := setupTestSuite(t)
|
||||||
|
|
||||||
chainID := uint64(1)
|
chainID := uint64(1)
|
||||||
sendArgs := transactions.SendTxArgs{
|
sendArgs := wallettypes.SendTxArgs{
|
||||||
From: types.Address{1},
|
From: types.Address{1},
|
||||||
To: &types.Address{2},
|
To: &types.Address{2},
|
||||||
}
|
}
|
||||||
|
@ -346,7 +346,7 @@ func TestBuildRawTransaction(t *testing.T) {
|
||||||
chainID := uint64(1)
|
chainID := uint64(1)
|
||||||
nonce := uint64(1)
|
nonce := uint64(1)
|
||||||
gas := uint64(21000)
|
gas := uint64(21000)
|
||||||
sendArgs := transactions.SendTxArgs{
|
sendArgs := wallettypes.SendTxArgs{
|
||||||
From: types.Address{1},
|
From: types.Address{1},
|
||||||
To: &types.Address{2},
|
To: &types.Address{2},
|
||||||
Value: (*hexutil.Big)(big.NewInt(123)),
|
Value: (*hexutil.Big)(big.NewInt(123)),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package transactions
|
package wallettypes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
|
@ -1,4 +1,4 @@
|
||||||
package transactions
|
package wallettypes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/logutils"
|
"github.com/status-im/status-go/logutils"
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"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"
|
const Web3SendAsyncReadOnly = "web3-send-async-read-only"
|
||||||
|
@ -247,8 +247,8 @@ func (api *API) getVerifiedWalletAccount(address, password string) (*account.Sel
|
||||||
}
|
}
|
||||||
|
|
||||||
if !exists {
|
if !exists {
|
||||||
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(transactions.ErrInvalidTxSender))
|
logutils.ZapLogger().Error("failed to get a selected account", zap.Error(wallettypes.ErrInvalidTxSender))
|
||||||
return nil, transactions.ErrAccountDoesntExist
|
return nil, wallettypes.ErrAccountDoesntExist
|
||||||
}
|
}
|
||||||
|
|
||||||
key, err := api.s.accountsManager.VerifyAccountPassword(api.s.config.KeyStoreDir, address, password)
|
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
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var trxArgs transactions.SendTxArgs
|
var trxArgs wallettypes.SendTxArgs
|
||||||
if err := json.Unmarshal(jsonString, &trxArgs); err != nil {
|
if err := json.Unmarshal(jsonString, &trxArgs); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/services/rpcfilters"
|
"github.com/status-im/status-go/services/rpcfilters"
|
||||||
"github.com/status-im/status-go/services/typeddata"
|
"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
|
// 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.
|
// 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)
|
verifiedAccount, err := api.getVerifiedWalletAccount(sendArgs.From.String(), password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return hash, err
|
return hash, err
|
||||||
|
|
|
@ -25,6 +25,7 @@ import (
|
||||||
"github.com/status-im/status-go/rpc"
|
"github.com/status-im/status-go/rpc"
|
||||||
"github.com/status-im/status-go/services/wallet/bigint"
|
"github.com/status-im/status-go/services/wallet/bigint"
|
||||||
wallet_common "github.com/status-im/status-go/services/wallet/common"
|
wallet_common "github.com/status-im/status-go/services/wallet/common"
|
||||||
|
"github.com/status-im/status-go/services/wallet/wallettypes"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -52,12 +53,12 @@ func (e *ErrBadNonce) Error() string {
|
||||||
type TransactorIface interface {
|
type TransactorIface interface {
|
||||||
NextNonce(rpcClient rpc.ClientInterface, chainID uint64, from types.Address) (uint64, error)
|
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)
|
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)
|
SendTransaction(sendArgs wallettypes.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)
|
SendTransactionWithChainID(chainID uint64, sendArgs wallettypes.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)
|
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)
|
AddSignatureToTransaction(chainID uint64, tx *gethtypes.Transaction, sig []byte) (*gethtypes.Transaction, error)
|
||||||
SendRawTransaction(chainID uint64, rawTx string) 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)
|
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
|
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.
|
// 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)
|
hash, nonce, err = t.validateAndPropagate(t.rpcWrapper, verifiedAccount, sendArgs, lastUsedNonce)
|
||||||
return
|
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)
|
wrapper := newRPCWrapper(t.rpcWrapper.RPCClient, chainID)
|
||||||
hash, nonce, err = t.validateAndPropagate(wrapper, verifiedAccount, sendArgs, lastUsedNonce)
|
hash, nonce, err = t.validateAndPropagate(wrapper, verifiedAccount, sendArgs, lastUsedNonce)
|
||||||
return
|
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)
|
wrapper := newRPCWrapper(t.rpcWrapper.RPCClient, chainID)
|
||||||
tx, err = t.validateAndBuildTransaction(wrapper, sendArgs, lastUsedNonce)
|
tx, err = t.validateAndBuildTransaction(wrapper, sendArgs, lastUsedNonce)
|
||||||
if err != nil {
|
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
|
// 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.
|
// 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.
|
// 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() {
|
if !args.Valid() {
|
||||||
return nil, ErrInvalidSendTxArgs
|
return nil, wallettypes.ErrInvalidSendTxArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(sig) != ValidSignatureSize {
|
if len(sig) != ValidSignatureSize {
|
||||||
|
@ -273,9 +274,9 @@ func (t *Transactor) BuildTransactionWithSignature(chainID uint64, args SendTxAr
|
||||||
return txWithSignature, nil
|
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() {
|
if !args.Valid() {
|
||||||
return validatedArgs, hash, ErrInvalidSendTxArgs
|
return validatedArgs, hash, wallettypes.ErrInvalidSendTxArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
validatedArgs = args
|
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
|
// 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 {
|
if selectedAccount == nil {
|
||||||
return account.ErrNoAccountSelected
|
return account.ErrNoAccountSelected
|
||||||
}
|
}
|
||||||
|
|
||||||
if !bytes.Equal(args.From.Bytes(), selectedAccount.Address.Bytes()) {
|
if !bytes.Equal(args.From.Bytes(), selectedAccount.Address.Bytes()) {
|
||||||
return ErrInvalidTxSender
|
return wallettypes.ErrInvalidTxSender
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
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() {
|
if !args.Valid() {
|
||||||
return tx, ErrInvalidSendTxArgs
|
return tx, wallettypes.ErrInvalidSendTxArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
var nonce uint64
|
var nonce uint64
|
||||||
|
@ -445,9 +446,9 @@ func (t *Transactor) validateAndBuildTransaction(rpcWrapper *rpcWrapper, args Se
|
||||||
return tx, nil
|
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
|
symbol := args.Symbol
|
||||||
if args.Version == SendTxArgsVersion1 {
|
if args.Version == wallettypes.SendTxArgsVersion1 {
|
||||||
symbol = args.FromTokenID
|
symbol = args.FromTokenID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,7 +471,7 @@ func (t *Transactor) validateAndPropagate(rpcWrapper *rpcWrapper, selectedAccoun
|
||||||
return hash, tx.Nonce(), err
|
return hash, tx.Nonce(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Transactor) buildTransaction(args SendTxArgs) *gethtypes.Transaction {
|
func (t *Transactor) buildTransaction(args wallettypes.SendTxArgs) *gethtypes.Transaction {
|
||||||
var (
|
var (
|
||||||
nonce uint64
|
nonce uint64
|
||||||
value *big.Int
|
value *big.Int
|
||||||
|
@ -493,7 +494,7 @@ func (t *Transactor) buildTransaction(args SendTxArgs) *gethtypes.Transaction {
|
||||||
return t.buildTransactionWithOverrides(nonce, value, gas, gasPrice, args)
|
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
|
var tx *gethtypes.Transaction
|
||||||
|
|
||||||
if args.To != nil {
|
if args.To != nil {
|
||||||
|
@ -548,7 +549,7 @@ func (t *Transactor) buildTransactionWithOverrides(nonce uint64, value *big.Int,
|
||||||
return tx
|
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",
|
t.logger.Info("New transaction",
|
||||||
zap.Stringer("From", args.From),
|
zap.Stringer("From", args.From),
|
||||||
zap.Stringer("To", args.To),
|
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",
|
t.logger.Info("New contract",
|
||||||
zap.Stringer("From", args.From),
|
zap.Stringer("From", args.From),
|
||||||
zap.Uint64("Gas", gas),
|
zap.Uint64("Gas", gas),
|
||||||
|
|
|
@ -29,6 +29,7 @@ import (
|
||||||
"github.com/status-im/status-go/eth-node/types"
|
"github.com/status-im/status-go/eth-node/types"
|
||||||
"github.com/status-im/status-go/params"
|
"github.com/status-im/status-go/params"
|
||||||
wallet_common "github.com/status-im/status-go/services/wallet/common"
|
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/sqlite"
|
||||||
"github.com/status-im/status-go/t/utils"
|
"github.com/status-im/status-go/t/utils"
|
||||||
"github.com/status-im/status-go/transactions/fake"
|
"github.com/status-im/status-go/transactions/fake"
|
||||||
|
@ -102,7 +103,7 @@ var (
|
||||||
testNonce = hexutil.Uint64(10)
|
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.
|
// 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.
|
// And also set the expected gas and gas price for RLP encoding the expected tx.
|
||||||
var usedGas hexutil.Uint64
|
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)
|
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
|
var txData gethtypes.TxData
|
||||||
to := common.Address(*args.To)
|
to := common.Address(*args.To)
|
||||||
if args.IsDynamicFeeTx() {
|
if args.IsDynamicFeeTx() {
|
||||||
|
@ -220,7 +221,7 @@ func (s *TransactorSuite) TestGasValues() {
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
s.T().Run(testCase.name, func(t *testing.T) {
|
s.T().Run(testCase.name, func(t *testing.T) {
|
||||||
s.SetupTest()
|
s.SetupTest()
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
||||||
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
||||||
Gas: testCase.gas,
|
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)
|
s.txServiceMock.EXPECT().GetTransactionCount(gomock.Any(), gomock.Eq(common.Address(account.Address)), gethrpc.PendingBlockNumber).Return(&testNonce, nil)
|
||||||
|
|
||||||
if !args.IsDynamicFeeTx() && args.GasPrice == nil {
|
if !args.IsDynamicFeeTx() && args.GasPrice == nil {
|
||||||
|
@ -269,7 +270,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
|
||||||
s.SetupTest()
|
s.SetupTest()
|
||||||
|
|
||||||
gas := hexutil.Uint64(21000)
|
gas := hexutil.Uint64(21000)
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: fromAddress,
|
From: fromAddress,
|
||||||
To: toAddress,
|
To: toAddress,
|
||||||
Gas: &gas,
|
Gas: &gas,
|
||||||
|
@ -289,7 +290,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
|
||||||
|
|
||||||
s.T().Run("DynamicFeeTransaction with gas estimation", func(t *testing.T) {
|
s.T().Run("DynamicFeeTransaction with gas estimation", func(t *testing.T) {
|
||||||
s.SetupTest()
|
s.SetupTest()
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: fromAddress,
|
From: fromAddress,
|
||||||
To: toAddress,
|
To: toAddress,
|
||||||
Value: value,
|
Value: value,
|
||||||
|
@ -312,7 +313,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
|
||||||
|
|
||||||
gas := hexutil.Uint64(21000)
|
gas := hexutil.Uint64(21000)
|
||||||
gasPrice := (*hexutil.Big)(big.NewInt(10))
|
gasPrice := (*hexutil.Big)(big.NewInt(10))
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: fromAddress,
|
From: fromAddress,
|
||||||
To: toAddress,
|
To: toAddress,
|
||||||
Value: value,
|
Value: value,
|
||||||
|
@ -330,7 +331,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
|
||||||
s.T().Run("LegacyTransaction without gas estimation", func(t *testing.T) {
|
s.T().Run("LegacyTransaction without gas estimation", func(t *testing.T) {
|
||||||
s.SetupTest()
|
s.SetupTest()
|
||||||
|
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: fromAddress,
|
From: fromAddress,
|
||||||
To: toAddress,
|
To: toAddress,
|
||||||
Value: value,
|
Value: value,
|
||||||
|
@ -346,7 +347,7 @@ func (s *TransactorSuite) TestBuildAndValidateTransaction() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TransactorSuite) TestArgsValidation() {
|
func (s *TransactorSuite) TestArgsValidation() {
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
||||||
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
||||||
Data: types.HexBytes([]byte{0x01, 0x02}),
|
Data: types.HexBytes([]byte{0x01, 0x02}),
|
||||||
|
@ -357,11 +358,11 @@ func (s *TransactorSuite) TestArgsValidation() {
|
||||||
Address: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
Address: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
||||||
}
|
}
|
||||||
_, _, err := s.manager.SendTransaction(args, selectedAccount, -1)
|
_, _, err := s.manager.SendTransaction(args, selectedAccount, -1)
|
||||||
s.EqualError(err, ErrInvalidSendTxArgs.Error())
|
s.EqualError(err, wallettypes.ErrInvalidSendTxArgs.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TransactorSuite) TestAccountMismatch() {
|
func (s *TransactorSuite) TestAccountMismatch() {
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
From: account.FromAddress(utils.TestConfig.Account1.WalletAddress),
|
||||||
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
To: account.ToAddress(utils.TestConfig.Account2.WalletAddress),
|
||||||
}
|
}
|
||||||
|
@ -377,7 +378,7 @@ func (s *TransactorSuite) TestAccountMismatch() {
|
||||||
Address: account.FromAddress(utils.TestConfig.Account2.WalletAddress),
|
Address: account.FromAddress(utils.TestConfig.Account2.WalletAddress),
|
||||||
}
|
}
|
||||||
_, _, err = s.manager.SendTransaction(args, selectedAccount, -1)
|
_, _, err = s.manager.SendTransaction(args, selectedAccount, -1)
|
||||||
s.EqualError(err, ErrInvalidTxSender.Error())
|
s.EqualError(err, wallettypes.ErrInvalidTxSender.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TransactorSuite) TestSendTransactionWithSignature() {
|
func (s *TransactorSuite) TestSendTransactionWithSignature() {
|
||||||
|
@ -415,7 +416,7 @@ func (s *TransactorSuite) TestSendTransactionWithSignature() {
|
||||||
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
|
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
|
||||||
data := []byte{}
|
data := []byte{}
|
||||||
chainID := big.NewInt(int64(s.nodeConfig.NetworkID))
|
chainID := big.NewInt(int64(s.nodeConfig.NetworkID))
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: from,
|
From: from,
|
||||||
To: &to,
|
To: &to,
|
||||||
Gas: &gas,
|
Gas: &gas,
|
||||||
|
@ -464,7 +465,7 @@ func (s *TransactorSuite) TestSendTransactionWithSignature() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TransactorSuite) TestSendTransactionWithSignature_InvalidSignature() {
|
func (s *TransactorSuite) TestSendTransactionWithSignature_InvalidSignature() {
|
||||||
args := SendTxArgs{}
|
args := wallettypes.SendTxArgs{}
|
||||||
_, err := s.manager.BuildTransactionWithSignature(1, args, []byte{})
|
_, err := s.manager.BuildTransactionWithSignature(1, args, []byte{})
|
||||||
s.Equal(ErrInvalidSignatureSize, err)
|
s.Equal(ErrInvalidSignatureSize, err)
|
||||||
}
|
}
|
||||||
|
@ -482,7 +483,7 @@ func (s *TransactorSuite) TestHashTransaction() {
|
||||||
gas := hexutil.Uint64(21000)
|
gas := hexutil.Uint64(21000)
|
||||||
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
|
gasPrice := (*hexutil.Big)(big.NewInt(2000000000))
|
||||||
|
|
||||||
args := SendTxArgs{
|
args := wallettypes.SendTxArgs{
|
||||||
From: from,
|
From: from,
|
||||||
To: &to,
|
To: &to,
|
||||||
Gas: &gas,
|
Gas: &gas,
|
||||||
|
|
Loading…
Reference in New Issue