package Ġio . mu un . apollo . domain . model Ċ Ċ import Ġio . mu un . common . utils . En codings Ċ Ċ /** Ċ Ġ* ĠThis Ġrepresents Ġa Ġsub mar ine Swap 's / Ġlight ning Ġnetwork Ġpayment 's Ġpre image . ĠThe Ġprotocol Ġspecifies Ċ Ġ* Ġit Ġto Ġbe Ġa Ġ 3 2 - byte Ġarray , Ġwhich Ġis Ġexactly Ġwhat Ġwe Ġour ĠSh a 2 5 6 Hash Ġclass Ġrepresents . ĠSo , Ġwe Ġdo Ċ Ġ* Ġthis Ġf ug ly Ġalias Ġin Ġorder Ġto Ġsave Ġus Ġsome Ġcode Ġrepet ition . Ċ Ġ*/ Ċ type alias ĠPre image Ġ= ĠSh a 2 5 6 Hash Ċ Ċ class ĠSh a 2 5 6 Hash Ġprivate Ġconstructor ( private Ġval Ġhex : ĠString ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLEN GTH Ġ= Ġ 3 2 Ġ// Ġbytes ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Bytes ( bytes : ĠByteArray ): ĠSh a 2 5 6 Hash Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( bytes . size Ġ== ĠLEN GTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSh a 2 5 6 Hash ( En codings . bytes To Hex ( bytes )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom Hex ( hex : ĠString ): ĠSh a 2 5 6 Hash Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( En codings . hex ToBytes ( hex ). size Ġ== ĠLEN GTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSh a 2 5 6 Hash ( hex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Bytes () Ġ= ĊĠĠĠĠĠĠĠ ĠEn codings . hex ToBytes ( hex ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġhex Ġencoding Ġrepresentation Ġof Ġthis Ġhash . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= ĊĠĠĠĠĠĠĠ Ġhex ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġhex . hashCode () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠSh a 2 5 6 Hash ĊĊĠĠĠĠĠĠĠ Ġreturn Ġhex Ġ== Ġother . hex ĊĠĠĠ Ġ} Ċ }