From 7625dab4238640cd3f11e45477aadb7b5c4905ba Mon Sep 17 00:00:00 2001 From: Alexis Hernandez Date: Sat, 10 Mar 2018 22:09:34 -0600 Subject: [PATCH] server: Add TransactionId model --- .../xsn/explorer/models/TransactionId.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 server/app/com/xsn/explorer/models/TransactionId.scala diff --git a/server/app/com/xsn/explorer/models/TransactionId.scala b/server/app/com/xsn/explorer/models/TransactionId.scala new file mode 100644 index 0000000..3cae0fa --- /dev/null +++ b/server/app/com/xsn/explorer/models/TransactionId.scala @@ -0,0 +1,18 @@ +package com.xsn.explorer.models + +class TransactionId private (val string: String) extends AnyVal + +object TransactionId { + + private val pattern = "^[a-f0-9]{64}$".r.pattern + + def from(string: String): Option[TransactionId] = { + val lowercaseString = string.toLowerCase + + if (pattern.matcher(lowercaseString).matches()) { + Some(new TransactionId(lowercaseString)) + } else { + None + } + } +}