package Ġorg . kin . stell ar fork Ċ Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . kin . stell ar fork . KeyPair . Companion . from AccountId Ċ import Ġorg . kin . stell ar fork . KeyPair . Companion . from Secret Seed Ċ import Ġorg . kin . stell ar fork . Memo . Companion . none Ċ import Ġorg . kin . stell ar fork . Memo . Companion . text Ċ import Ġorg . kin . stell ar fork . Network . Companion . public Network Ċ import Ġorg . kin . stell ar fork . Network . Companion . test Network Ċ import Ġorg . kin . stell ar fork . Transaction . Companion . from Envelope X dr Ċ import Ġorg . kin . stell ar fork . codec . Base 6 4 . Companion . decode Base 6 4 Ċ import Ġorg . kin . stell ar fork . xd r . X dr Data InputStream Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . security . Secure Random Ċ import Ġjava . util . Arrays Ċ Ċ class ĠTransaction Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class ) ĊĠĠĠ Ġfun Ġtest Builder Success Test net () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġval Ġsequence Number Ġ= Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġsequence Number ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Fee ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( source ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" AAAA AF 7 FI i D To W 1 f OY UF BC 0 d my uf Jb F TO a 2 GQ ES Gz + S 2 h 5 Vi AAAA Z AA KV a MA AA AB AAAAAAAA AAAAAA AB AAAAAAAAAAAAAAAA 7 e B SY bz cL 5 UK o 7 o XO 2 4 y 1 ck X + Xu C tk D sy N HO p 1 n 1 bx AAAA AAC + v C AAAAAAAA AA AB to e VY g AAA ED JH /+ 1 om zi H rt Lc D 1 EB aL Mg V pv jg 8 d + iv w 5 j N wt z J Vy IL NJ 2 9 LW ee 7 b J al N Pr V 3 aw MG 6 8 aC q br Of PK f 1 SSH xk E ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr Base 6 4 () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . source Account , Ġsource ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . sequence Number , Ġsequence Number Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . fee . to Long (), Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Envelope X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . source Account . accountId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction 2 . source Account . accountId ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . sequence Number , Ġtransaction 2 . sequence Number ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . fee . to Long (), Ġtransaction 2 . fee . to Long ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction 2 . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . signatures , Ġtransaction 2 . signatures ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class ) ĊĠĠĠ Ġfun Ġtest Builder Memo Text () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Memo ( text (" Hello Ġworld ! ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( source ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" AAAA AF 7 FI i D To W 1 f OY UF BC 0 d my uf Jb F TO a 2 GQ ES Gz + S 2 h 5 Vi AAAAAA AK Va MA AA AB AAAAAAAA AA E AAAA MSG V sb G 8 gd 2 9 yb GQ h AAAA AQ AAAAAAAA AAAAAA AO 3 g Um G 8 3 C + VC q O 6 F zt u Mt XJ F / l 7 gr ZA 7 Mj Rz qd Z 9 W 8 Q AAAAAA v rw g AAAAAAAA AAA ba Hl WI AA AB ATT u 4 1 3 J 3 c PY DD RQ jj Sh fv q Y zf R + KT 9 nh g kt Ze Dk Hj Wz 2 T 3 Tk TX DO 8 9 3 b Rf Ed p O / lt Sv K xd n D 6 Ij Qs Vj XT a Jb Aw ==", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr Base 6 4 () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Envelope X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . source Account . accountId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction 2 . source Account . accountId ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . sequence Number , Ġtransaction 2 . sequence Number ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . memo , Ġtransaction 2 . memo ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . fee . to Long (), Ġtransaction 2 . fee . to Long ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction 2 . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġtest Builder Time Bounds () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Time Bounds ( Time Bounds ( 4 2 , Ġ 1 3 3 7 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( source ) ĊĠĠĠĠĠĠĠ Ġ// ĠConvert Ġtransaction Ġto Ġbinary ĠX DR Ġand Ġback Ġagain Ġto Ġmake Ġsure Ġtime bounds Ġare Ġcorrectly Ġde / serialized . ĊĠĠĠĠĠĠĠ Ġval Ġ` is ` Ġ= ĠX dr Data InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArrayInputStream ( decode Base 6 4 ( transaction . to Envelope X dr Base 6 4 (). toByteArray ())) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdecoded Transaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg . kin . stell ar fork . xd r . Transaction . decode (` is `) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( decoded Transaction . time Bounds !!. min Time !!. uint 6 4 !!. to Long (), Ġ 4 2 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( decoded Transaction . time Bounds !!. max Time !!. uint 6 4 !!. to Long (), Ġ 1 3 3 7 ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Envelope X dr ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . source Account . accountId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction 2 . source Account . accountId ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . sequence Number , Ġtransaction 2 . sequence Number ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . time Bounds , Ġtransaction 2 . time Bounds ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( transaction . fee . to Long (), Ġtransaction 2 . fee . to Long ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( transaction 2 . operations [ 0 ] Ġas ĠCreate Account Operation ). starting Balance ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class ) ĊĠĠĠ Ġfun Ġtest Builder Success Public () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( source ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" AAAA AF 7 FI i D To W 1 f OY UF BC 0 d my uf Jb F TO a 2 GQ ES Gz + S 2 h 5 Vi AAAAAA AK Va MA AA AB AAAAAAAA AAAAAA AB AAAAAAAAAAAAAAAA 7 e B SY bz cL 5 UK o 7 o XO 2 4 y 1 ck X + Xu C tk D sy N HO p 1 n 1 bx AAAA AAC + v C AAAAAAAA AA AB to e VY g AAA ED 7 5 / T 9 5 Vj + Z 7 U ju Eq q S 1 FD 1 IV pf u 4 X 8 Bv BZ 3 a Y ks T 6 gi + sp MP + v yg za G 3 a 6 w SU X 4 w L Ma 8 r UL Ig mt 5 Ol H / T 2 h MC ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr Base 6 4 () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class ) ĊĠĠĠ Ġfun Ġtest Sha 2 5 6 Hash Signing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GB BM 6 BK Z PE HW YO 3 E 3 YK RED P QX MS 4 VK 3 5 YL NU 7 N FB RI 2 6 RAN 7 GI 5 PO F BB ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD JJ RR MB K 4 IW LE PJ G IE 6 SX D 2 LP 7 REG Z OD U 7 W DC 3 I 2 D 6 MR 3 7 F 4 X SH BK X 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠAccount ( source , Ġ 0 L ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPayment Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAsset Type Native , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġpre image Ġ= ĠByteArray ( 6 4 ) ĊĠĠĠĠĠĠĠ ĠSecure Random (). next Bytes ( pre image ) ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠUtil . hash ( pre image ) ĊĠĠĠĠĠĠĠ Ġtransaction . sign ( pre image ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . signatures [ 0 ]. signature !!. signature , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre image ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . equals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . signatures [ 0 ]. hint !!. signature Hint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . copyOf Range ( hash , Ġhash . size Ġ- Ġ 4 , Ġhash . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġtest To Base 6 4 Envelope X dr Builder No Signatures () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . to Envelope X dr Base 6 4 () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( exception . message !!. contains (" Transaction Ġmust Ġbe Ġsigned Ġby Ġat Ġleast Ġone Ġsigner .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġtest No Operations () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( exception . message !!. contains (" At Ġleast Ġone Ġoperation Ġrequired ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L , Ġaccount . sequence Number ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( FormatException :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġtest Trying ToAdd Memo Tw ice () Ġ{ Ġ// ĠGB PM K IRA 2 OQ W 2 X ZZ QU CQ ILI 5 TM V Z 6 J NR KM 4 2 3 B SA IS DM 7 Z FW Q 6 K WE BC 4 ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Secret Seed (" SCH 2 7 VU ZZ 6 U AK B 6 7 BD NF 6 FA 4 2 Y MB MQ CB KX W GM FD 5 TZ 6 S 5 ZZ CZ FL RX K HS ") ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom AccountId (" GD W 6 AUT BX TOC 7 FI K UO 5 BOO 3 O GL K 4 SF 7 Z PO BL MQ HM Z DI 4 5 J 2 Z 6 V XR B 5 NR ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( source , Ġ 2 9 0 8 9 0 8 3 3 5 1 3 6 7 6 8 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Network ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Account Operation . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdestination , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Memo ( none ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Memo ( none ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( exception . message !!. contains (" Memo Ġhas Ġbeen Ġalready Ġadded .")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ