status-go/services/wallet/common/helpers.go

33 lines
809 B
Go

package common
import (
"fmt"
"math/big"
"strings"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/common"
"github.com/status-im/status-go/contracts/ierc20"
)
func PackApprovalInputData(amountIn *big.Int, approvalContractAddress *common.Address) ([]byte, error) {
if approvalContractAddress == nil || *approvalContractAddress == ZeroAddress() {
return []byte{}, nil
}
erc20ABI, err := abi.JSON(strings.NewReader(ierc20.IERC20ABI))
if err != nil {
return []byte{}, err
}
return erc20ABI.Pack("approve", approvalContractAddress, amountIn)
}
func GetTokenIdFromSymbol(symbol string) (*big.Int, error) {
id, success := big.NewInt(0).SetString(symbol, 0)
if !success {
return nil, fmt.Errorf("failed to convert %s to big.Int", symbol)
}
return id, nil
}