2024-06-06 20:08:25 +00:00
|
|
|
package pathprocessor
|
|
|
|
|
|
|
|
import (
|
2024-06-14 11:27:53 +00:00
|
|
|
"fmt"
|
2024-06-06 20:08:25 +00:00
|
|
|
"math/big"
|
2024-10-03 19:26:29 +00:00
|
|
|
"strings"
|
2024-06-06 20:08:25 +00:00
|
|
|
|
|
|
|
ethTypes "github.com/ethereum/go-ethereum/core/types"
|
|
|
|
|
|
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind"
|
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
|
|
"github.com/status-im/status-go/account"
|
|
|
|
"github.com/status-im/status-go/eth-node/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
func getSigner(chainID uint64, from types.Address, verifiedAccount *account.SelectedExtKey) bind.SignerFn {
|
|
|
|
return func(addr common.Address, tx *ethTypes.Transaction) (*ethTypes.Transaction, error) {
|
|
|
|
s := ethTypes.NewLondonSigner(new(big.Int).SetUint64(chainID))
|
|
|
|
return ethTypes.SignTx(tx, s, verifiedAccount.AccountKey.PrivateKey)
|
|
|
|
}
|
|
|
|
}
|
2024-06-14 11:27:53 +00:00
|
|
|
|
2024-10-29 16:57:27 +00:00
|
|
|
func makeKey(fromChain, toChain uint64, fromTokenSymbol, toTokenSymbol string, amount *big.Int) string {
|
|
|
|
key := fmt.Sprintf("%d-%d", fromChain, toChain)
|
2024-06-14 11:27:53 +00:00
|
|
|
if fromTokenSymbol != "" || toTokenSymbol != "" {
|
2024-10-29 16:57:27 +00:00
|
|
|
key = fmt.Sprintf("%s-%s-%s", key, fromTokenSymbol, toTokenSymbol)
|
2024-06-14 11:27:53 +00:00
|
|
|
}
|
2024-10-29 16:57:27 +00:00
|
|
|
if amount != nil {
|
|
|
|
key = fmt.Sprintf("%s-%s", key, amount.String())
|
|
|
|
}
|
|
|
|
return key
|
2024-06-14 11:27:53 +00:00
|
|
|
}
|
2024-10-03 19:26:29 +00:00
|
|
|
|
|
|
|
func getNameFromEnsUsername(ensUsername string) string {
|
|
|
|
if strings.HasSuffix(ensUsername, StatusDomain) {
|
|
|
|
return ensUsername[:len(ensUsername)-len(StatusDomain)]
|
|
|
|
}
|
|
|
|
return ensUsername
|
|
|
|
}
|