github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/utils/signers/internaltx/internaltx.go (about) 1 package internaltx 2 3 import ( 4 "github.com/unicornultrafoundation/go-u2u/common" 5 "github.com/unicornultrafoundation/go-u2u/core/types" 6 ) 7 8 func IsInternal(tx *types.Transaction) bool { 9 v, r, _ := tx.RawSignatureValues() 10 return v.Sign() == 0 && r.Sign() == 0 11 } 12 13 func InternalSender(tx *types.Transaction) common.Address { 14 _, _, s := tx.RawSignatureValues() 15 return common.BytesToAddress(s.Bytes()) 16 } 17 18 func Sender(signer types.Signer, tx *types.Transaction) (common.Address, error) { 19 if !IsInternal(tx) { 20 return types.Sender(signer, tx) 21 } 22 return InternalSender(tx), nil 23 }