package Ġcom . then ew b oston . utils Ċ Ċ import Ġcom . then ew b oston . data . dto . bank api . account dto . response . Account Ċ import Ġcom . then ew b oston . data . dto . bank api . account dto . response . Account List Ċ import Ġcom . then ew b oston . data . dto . bank api . bank dto . response . Bank Ċ import Ġcom . then ew b oston . data . dto . bank api . bank dto . response . Bank List Ċ import Ġcom . then ew b oston . data . dto . bank api . bank dto . response . Bank Trust Response Ċ import Ġcom . then ew b oston . data . dto . bank api . bank transaction dto . Bank Transaction Ċ import Ġcom . then ew b oston . data . dto . bank api . bank transaction dto . Bank Transaction List Ċ import Ġcom . then ew b oston . data . dto . bank api . bank transaction dto . Block Ċ import Ġcom . then ew b oston . data . dto . bank api . bank transaction dto . Block List Ċ import Ġcom . then ew b oston . data . dto . bank api . common . request . Trust Message Ċ import Ġcom . then ew b oston . data . dto . bank api . common . request . Update Trust Request Ċ import Ġcom . then ew b oston . data . dto . bank api . config dto . Bank Details Ċ import Ġcom . then ew b oston . data . dto . bank api . invalid block dto . Invalid Block DTO Ċ import Ġcom . then ew b oston . data . dto . bank api . invalid block dto . Invalid Block List Ċ import Ġcom . then ew b oston . data . dto . bank api . valid at ord to . Validator Ċ import Ġcom . then ew b oston . data . dto . bank api . valid at ord to . Validator List Ċ import Ġkotlinx . datetime . LocalDateTime Ċ Ċ object ĠMock s Ġ{ ĊĊĠĠĠ Ġfun Ġb anks () Ġ= ĠBank List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġb anks Ġ= ĠlistOf ( bank (), Ġbank ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbank () Ġ= ĠBank ( ĊĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġ" 8 0 ", ĊĠĠĠĠĠĠĠ Ġ" http ", ĊĠĠĠĠĠĠĠ Ġ" v 1 ", ĊĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠ 1 0 0 . 0 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbank Details () Ġ= ĠBank Details ( ĊĠĠĠĠĠĠĠ Ġvalidator (), ĊĠĠĠĠĠĠĠ Ġ" 1 ", ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġ" 8 0 ", ĊĠĠĠĠĠĠĠ Ġ" http ", ĊĠĠĠĠĠĠĠ Ġ" v 1 ", ĊĠĠĠĠĠĠĠĠ 1 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġvalidators () Ġ= ĠValidator List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġresults Ġ= ĠlistOf ( validator (), Ġvalidator ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġvalidator () Ġ= ĠValidator ( ĊĠĠĠĠĠĠĠ Ġaccount Number Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠ Ġip Address Ġ= Ġ" 1 2 7 . 0 . 0 . 1 ", ĊĠĠĠĠĠĠĠ Ġnode Identifier Ġ= Ġ" 6 8 7 1 9 1 3 5 8 1 c 3 e 6 8 9 c 9 f 3 9 8 5 3 a 7 7 e 7 2 6 3 a 9 6 fd 3 8 5 9 6 e 9 1 3 9 f 4 0 a 3 6 7 e 2 8 3 6 4 da 5 3 ", ĊĠĠĠĠĠĠĠ Ġport Ġ= Ġ 8 0 , ĊĠĠĠĠĠĠĠ Ġprotocol Ġ= Ġ" http ", ĊĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠ Ġdefault Transaction Fee Ġ= Ġ 0 . 0 , ĊĠĠĠĠĠĠĠ Ġroot Account File Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġroot Account File Hash Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġseed Block Identifier Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġdaily Confirmation Rate Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtrust Ġ= Ġ 1 0 0 . 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġblock () Ġ= ĠBlock ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ" String ", ĊĠĠĠĠĠĠĠ Ġcreated Date Ġ= ĠLocalDateTime . parse (" 2 0 2 0 - 1 1 - 1 9 T 1 9 : 5 7 : 3 1 . 7 9 9 8 7 2 "), ĊĠĠĠĠĠĠĠ Ġmodified Date Ġ= ĠLocalDateTime . parse (" 2 0 2 0 - 1 1 - 1 9 T 1 9 : 5 7 : 3 1 . 7 9 9 8 7 2 "), ĊĠĠĠĠĠĠĠ Ġbalance Key Ġ= Ġ" String ", ĊĠĠĠĠĠĠĠ Ġsender Ġ= Ġ" String ", ĊĠĠĠĠĠĠĠ Ġsignature Ġ= Ġ" String " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġblocks () Ġ= ĠBlock List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġresults Ġ= ĠlistOf ( block (), Ġblock ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbank Transaction () Ġ= ĠBank Transaction ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ" String ", ĊĠĠĠĠĠĠĠ Ġblock Ġ= Ġblock (), ĊĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 5 . 0 , ĊĠĠĠĠĠĠĠ Ġrecipient Ġ= Ġ" String " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġbank Transactions () Ġ= ĠBank Transaction List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġbank Transactions Ġ= ĠlistOf ( bank Transaction (), Ġbank Transaction ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġaccounts () Ġ= ĠAccount List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġresults Ġ= ĠlistOf ( account (), Ġaccount ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġaccount ( trust : ĠDouble Ġ= Ġ 1 0 0 . 0 ) Ġ= ĠAccount ( ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠSome . id , ĊĠĠĠĠĠĠĠ Ġcreated Date Ġ= ĠLocalDateTime ( 2 0 2 0 , Ġ 8 , Ġ 8 , Ġ 1 2 , Ġ 1 2 , Ġ 2 3 ), ĊĠĠĠĠĠĠĠ Ġmodified Date Ġ= ĠLocalDateTime ( 2 0 2 0 , Ġ 8 , Ġ 8 , Ġ 1 2 , Ġ 1 3 , Ġ 2 3 ), ĊĠĠĠĠĠĠĠ Ġaccount Number Ġ= ĠSome . account Number , ĊĠĠĠĠĠĠĠ Ġtrust Ġ= Ġtrust ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġempty Account () Ġ= ĠAccount ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġcreated Date Ġ= ĠLocalDateTime ( 2 0 2 0 , Ġ 8 , Ġ 8 , Ġ 1 2 , Ġ 1 2 , Ġ 2 3 ), ĊĠĠĠĠĠĠĠ Ġmodified Date Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġaccount Number Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġtrust Ġ= Ġ 0 . 0 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġinvalid Block () Ġ= ĠInvalid Block DTO ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġ" 2 bcd 5 3 c 5 - 1 9 f 9 - 4 2 2 6 - ab 0 4 - 3 dfb 1 7 c 3 a 1 fe ", ĊĠĠĠĠĠĠĠ Ġcreated Date Ġ= ĠLocalDateTime . parse (" 2 0 2 0 - 1 1 - 1 9 T 1 9 : 5 7 : 3 1 . 7 9 9 8 7 2 "), ĊĠĠĠĠĠĠĠ Ġmodified Date Ġ= ĠLocalDateTime . parse (" 2 0 2 0 - 1 1 - 1 9 T 1 9 : 5 7 : 3 1 . 7 9 9 8 7 2 "), ĊĠĠĠĠĠĠĠ Ġblock Identifier Ġ= Ġ" 6 5 ae 2 6 1 9 2 dfb 9 ec 4 1 f 8 8 c 6 d 5 8 2 b 3 7 4 a 9 b 4 2 ab 5 8 8 3 3 e 1 6 1 2 4 5 2 d 7 a 8 f 6 8 5 dcd 4 d 5 ", ĊĠĠĠĠĠĠĠ Ġblock Ġ= Ġ" 3 ff 4 ebb 0 - 2 b 3 d - 4 2 9 b - ba 9 0 - 0 8 1 3 3 fc dee 4 e ", ĊĠĠĠĠĠĠĠ Ġconfirmation Validator Ġ= Ġ" fcd 2 dce 8 - 9 e 4 f - 4 bf 1 - 8 dac - cdb af 6 4 e 5 ce 8 ", ĊĠĠĠĠĠĠĠ Ġprimary Validator Ġ= Ġ" 5 1 4 6 1 a 7 5 - dd 8 d - 4 1 3 3 - 8 1 f 4 - 5 4 3 a 3 b 0 5 4 1 4 9 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġinvalid Blocks () Ġ= ĠInvalid Block List ( ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġprevious Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġresults Ġ= ĠlistOf ( invalid Block (), Ġinvalid Block ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġinternal ServerError () Ġ= ĠBank API Error ( 5 0 0 , Ġ" Internal ĠServer ĠError ") ĊĊĠĠĠ Ġfun Ġtrust Request ( trust : ĠDouble Ġ= ĠSome . trust ): ĠUpdate Trust Request Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsignature Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 9 3 9 5 2 df 2 9 ae 3 8 8 5 fd 9 c 9 f 8 8 7 2 1 3 1 4 2 3 6 bdb 5 3 ca 5 6 3 2 b 2 9 5 9 dcf 5 cf 3 c 3 8 cb 8 b 9 6 ca 5 7 ff 8 4 c 5 3 3 7 eb 1 6 4 f 8 0 3 2 3 7 f 9 0 1 ab cb 0 c 4 1 a 9 f 7 1 e 1 4 aa 2 fb 3 1 5 9 c 7 ad 7 a 7 5 0 9 " ĊĠĠĠĠĠĠĠ Ġval Ġnode Identifier Ġ= Ġ" 3 5 f 4 c 9 8 8 f 4 2 5 8 0 9 ca 7 f 5 d 0 b 3 1 9 cdf 8 f 7 d 7 aba 1 b 0 6 4 fd 0 efc 8 5 d 6 1 fa 0 f 4 d 0 5 1 4 5 " ĊĠĠĠĠĠĠĠ Ġreturn ĠUpdate Trust Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrust Message ( trust ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Identifier , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbank Trust Response ( trust : ĠDouble Ġ= ĠSome . trust ) Ġ= ĠBank Trust Response ( ĊĠĠĠĠĠĠĠ Ġ" df ddf 0 7 ec 1 5 cbf 3 6 3 ecb 5 2 eed d 7 1 3 3 b 7 0 b 3 ec 8 9 6 b 4 8 8 4 6 0 b cec aba 6 3 e 8 e 3 6 be 5 ", ĊĠĠĠĠĠĠĠ Ġ" 1 2 7 . 0 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠ 8 0 , ĊĠĠĠĠĠĠĠ Ġ" http ", ĊĠĠĠĠĠĠĠĠ 1 . 0 , ĊĠĠĠĠĠĠĠ Ġtrust ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġempty Bank Trust Response () Ġ= ĠBank Trust Response ( ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠ 0 . 0 , ĊĠĠĠĠĠĠĠĠ 0 . 0 ĊĠĠĠ Ġ) Ċ } Ċ Ċ // ĠSample Ġvalues Ġtaken Ġfrom Ġdocs , Ġsee Ġhttps :// then ew b oston . com / bank - api / Ċ object ĠSome Ġ{ ĊĠĠĠ Ġconst Ġval Ġid Ġ= Ġ" 6 4 4 2 6 fc 5 - b 3 ac - 4 2 fb - b 7 5 b - d 5 ccf cdc 6 8 7 2 " ĊĠĠĠ Ġconst Ġval Ġaccount Number Ġ= Ġ" 0 cdd 4 ba 0 4 4 5 6 ca 1 6 9 b aca 3 d 6 6 e ace 8 6 9 5 2 0 c 6 2 fe 8 4 4 2 1 3 2 9 0 8 6 e 0 3 d 9 1 a 6 8 ac db " ĊĠĠĠ Ġconst Ġval Ġnode Identifier Ġ= Ġ" d 5 3 5 6 8 8 8 dc 9 3 0 3 e 4 4 ce 5 2 b 1 e 0 6 c 3 1 6 5 a 7 7 5 9 b 9 df 1 e 6 a 6 df bd 3 3 ee 1 c 3 df 1 ab 4 d 1 " ĊĠĠĠ Ġconst Ġval Ġsignature Ġ= Ġ" f 4 1 7 8 8 fe 1 9 6 9 0 a 6 7 abe 3 3 3 6 d 4 ca 8 4 5 6 5 c 0 9 0 6 9 1 efa e 0 e 5 cdd 8 bf 0 2 e 1 2 6 8 4 2 2 1 5 0 8 0 4 0 5 0 1 3 b 8 4 6 1 f 7 3 4 d 0 9 1 e 6 7 3 e 9 e def ca 5 3 a 5 1 7 7 3 fda 5 9 b beb cef 7 7 ab 8 e 2 9 0 1 " ĊĠĠĠ Ġconst Ġval Ġtrust Ġ= Ġ 4 2 . 0 Ċ } Ċ