7

I am building an application which requires user to paste the transaction hash of a transaction. But i want a regex string i could pass to the pattern attribute of the input element that receives it to validate it. What is the general regexp that validates ethereum transaction hash?

8

This regex should do the trick:

/^0x([A-Fa-f0-9]{64})$/

  • Keep in mind this only validates if the search contains only the right characters in the right length, not if a transaction exists on the blockchain. – Nick Dec 24 '17 at 17:38
  • @Nick this is clear. Thats just what i want – Oluwatumbi Dec 25 '17 at 15:04
  • I accepted the answer but i will rather go for /^(0x)?([A-Fa-f0-9]{64})$/ because it is also valid incase the source is from some of those who don't include the 0x prefix. Or do you think that should be considered invalid? The API i use to query the transactions accepts transaction IDs without the 0x – Oluwatumbi Dec 25 '17 at 15:06
0

As you didn't specify the technology you are using, I would suggest validating it against the go-ethereum hexutil https://github.com/ethereum/go-ethereum/blob/master/common/hexutil/hexutil.go#L60

Here's a simple example written in golang:

// IsValid : validates transaction with go-ethereum utils
func (model *Transaction) IsValid() bool {
    _, err := hexutil.Decode(model.Hash)
    return err == nil
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.