package Ġcom . s ymb ios is . sdk Ċ Ċ import Ġcom . so y wiz . kb ignum . bi Ċ import Ġcom . so y wiz . kb ignum . bn Ċ import Ġcom . s ymb ios is . sdk . cross chain . A val an che Fu ji B sc Test net Ċ import Ġcom . s ymb ios is . sdk . cross chain . B sc Test net Eth R in ke by Ċ import Ġcom . s ymb ios is . sdk . currency . E rc 2 0 Token Ċ import Ġcom . s ymb ios is . sdk . currency . convert Integer To Real Ċ import Ġcom . s ymb ios is . sdk . currency . convert Real To Integer Ċ import Ġcom . s ymb ios is . sdk . internal . nonce . Nonce Controller Ċ import Ġcom . s ymb ios is . sdk . network . getToken Contract Ċ import Ġcom . s ymb ios is . sdk . network . send Transaction Ċ import Ġcom . s ymb ios is . sdk . swap . meta . Calculated Meta Swap Trade Ċ import Ġdev . icer ock . mo ko . web 3 . Contract Address Ċ import Ġdev . icer ock . mo ko . web 3 . hex . HexString Ċ import Ġdev . icer ock . mo ko . web 3 . requests . waitFor Transaction Receipt Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ // Ġfix me : Ġadd Ġmocked Ġtests Ċ class ĠMeta Swap Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsdk Ġ= ĠClients Manager () Ċ Ċ // ĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmeta Swap Calculation () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Token Ġ= Ġtest B SC . token . CA KE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Token Ġ= Ġtest ETH . token . UN I ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Swap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsdk . getC ross Chain Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross Chain Ġ= ĠB sc Test net Eth R in ke by ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb sc Test net Executor Ġ= Ġtest B SC . executor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeth R in ke by Executor Ġ= Ġtest ETH . executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Swap . find Best Trade Exact In ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Token Ġ= Ġfrom Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Token Ġ= Ġtarget Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount In Ġ= Ġ 1 _ 0 0 0 _ 0 0 0 _ 0 0 0 _ 0 0 0 _ 0 0 0 _ 0 0 0 . bi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġa lex Wallet Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Test ĊĠĠĠ Ġfun Ġmeta Swap Unified () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Token : ĠE rc 2 0 Token Ġ= Ġtest A val an che . token . US DT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Token : ĠE rc 2 0 Token Ġ= Ġtest B SC . token . CA KE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" balance Ġof Ġ${ from Token . token Address } Ġis Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest ETH . token . UN I . convert Integer To Real ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsdk . get Network Client ( test ETH ). getToken Contract ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). balanceOf ( den Wallet Address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Swap Ġ= Ġsdk . getC ross Chain Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcross Chain Ġ= ĠAval an che Fu ji B sc Test net ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaval an che Fu ji Executor Ġ= Ġtest A val an che . executor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb sc Test net Executor Ġ= Ġtest B SC . executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrade Ġ= Ġmeta Swap . find Best Trade Exact In ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Token Ġ= Ġfrom Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Token Ġ= Ġto Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount In Ġ= Ġtest A val an che . token . US DT . convert Real To Integer (" 1 2 ". bn ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġden Wallet Address ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠCalcul ated Meta Swap Trade . Exact In ? Ġ?: Ġerror (" Trade Ġwas Ġnot Ġfound ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" I Ġwill Ġget Ġ${ test B SC . token . CA KE . convert Integer To Real ( trade . target Value Min )} ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Hash Ġ= Ġmeta Swap . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġden Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrade Ġ= Ġtrade , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgas Provider Ġ= Ġtest A val an che . gas Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx Hash . waitFor Receipt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest N er ve Pool Execution () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnonce Controller Ġ= ĠN once Controller ( test B SC . executor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontract Address 1 Ġ= ĠContract Address (" 0 x 7 a 2 5 0 d 5 6 3 0 B 4 c F 5 3 9 7 3 9 d F 2 C 5 d Ac b 4 c 6 5 9 F 2 4 8 8 D ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall Data 1 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 x 3 8 ed 1 7 3 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 8 4 e 7 2 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aaf 6 2 9 1 1 ce 8 c 5 b 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 4 3 d 2 c 4 7 2 cf 8 8 2 e 0 b 1 9 0 0 6 3 d 6 6 ee 8 ce 7 8 bf 5 4 da 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 d 7 9 f 8 ace c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 b 5 9 8 4 f 4 5 afb 2 5 6 0 a 0 ed 7 2 bb 6 9 a 9 8 e 8 b 3 2 b 3 cca 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 a 0 1 bf 9 1 7 4 7 7 dd 9 f 5 d 7 1 5 d 1 8 8 6 1 8 fc 8 b 7 3 5 0 cd 2 2 ". let ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: HexString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Hash Ġ= Ġnonce Controller . with Nonce ( alex Wallet Address ) Ġ{ Ġnonce Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Ġ= Ġa lex Credentials . signer . sign Contract Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Ġ= Ġnonce , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Id Ġ= Ġtest B SC . chain Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Data Ġ= Ġcall Data 1 . prefix ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 . bi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgas Configuration Ġ= Ġtest B SC . gas Provider . get Gas Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġa lex Credentials . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Data Ġ= Ġcall Data 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Ġ= Ġtest B SC . executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest B SC . executor . send Transaction ( signed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest B SC . executor . waitFor Transaction Receipt ( tx Hash ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsdk . get Network Client ( test B SC ). also Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( client . getToken Contract ( test B SC . token . BU SD )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalance Of ( alex Wallet Address ). let (:: println ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Max ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġa lex Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ender Ġ= ĠContract Address (" 0 xD 9 9 D 1 c 3 3 F 9 f C 3 4 4 4 f 8 1 0 1 7 5 4 a BC 4 6 c 5 2 4 1 6 5 5 0 D 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 3 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall Data 2 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 x 9 1 6 9 5 5 8 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b 7 d 4 6 3 3 6 ee 9 c 6 d 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 d 7 9 f 8 bad 4 ". let ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: HexString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontract Address 2 Ġ= ĠContract Address (" 0 x 6 C 4 A 9 4 ba Dc 1 3 0 6 5 3 9 4 0 1 7 8 9 8 8 6 a 3 6 E 3 DB d 8 4 3 B 1 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsending Ġner ve Ġtransaction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Hash 2 Ġ= Ġnonce Controller . with Nonce ( alex Wallet Address ) Ġ{ Ġnonce Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Ġ= Ġa lex Credentials . signer . sign Contract Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Ġ= Ġnonce , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Id Ġ= Ġtest B SC . chain Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Data Ġ= Ġcall Data 2 . prefix ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 . bi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgas Configuration Ġ= Ġtest B SC . gas Provider . get Gas Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġa lex Credentials . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Data Ġ= Ġcall Data 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Ġ= Ġtest B SC . executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest B SC . executor . send Transaction ( signed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest B SC . executor . waitFor Transaction Receipt ( tx Hash 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( client . getToken Contract ( Contract Address (" 0 x 4 1 8 8 d 0 a 4 8 9 4 f 4 6 6 b 1 9 0 3 e 6 7 4 7 7 ddf 1 4 1 9 6 ea 3 9 d 4 "))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Max ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġa lex Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ender Ġ= ĠContract Address (" 0 x 3 D 1 a 0 8 5 E 5 7 5 f 0 7 9 C acc 8 8 Df 3 2 3 F CA 1 E AC 2 7 6 4 cc 9 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . synthesize . burn Syn th Tokens ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġa lex Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġbalance Of ( alex Wallet Address ). also (:: println ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsyn th Currency Address Ġ= ĠContract Address (" 0 x 4 1 8 8 D 0 A 4 8 9 4 F 4 6 6 B 1 9 0 3 E 6 7 4 7 7 ddf 1 4 1 9 6 ea 3 9 D 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Network Ġ= Ġtest ETH , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstable B rid ging Fee Ġ= Ġ 0 . bi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsdk . get Network Client ( test ETH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getToken Contract ( Contract Address (" 0 x 4 DBC d F 9 B 6 2 e 8 9 1 a 7 cec 5 A 2 5 6 8 C 3 F 4 FA F 9 E 8 A be 2 b ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Max ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġa lex Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ender Ġ= ĠContract Address (" 0 xD 9 9 D 1 c 3 3 F 9 f C 3 4 4 4 f 8 1 0 1 7 5 4 a BC 4 6 c 5 2 4 1 6 5 5 0 D 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalance Of ( alex Wallet Address ). also (:: println ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall Data 3 Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 x 3 8 ed 1 7 3 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 da 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 b 5 3 ce ba 0 ec 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 4 3 d 2 c 4 7 2 cf 8 8 2 e 0 b 1 9 0 0 6 3 d 6 6 ee 8 ce 7 8 bf 5 4 da 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 7 d 7 9 f 8 aced 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 dbc df 9 b 6 2 e 8 9 1 a 7 cec 5 a 2 5 6 8 c 3 f 4 faf 9 e 8 abe 2 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 7 7 8 4 1 7 e 0 6 3 1 4 1 1 3 9 fce 0 1 0 9 8 2 7 8 0 1 4 0 aa 0 cd 5 ab 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 f 9 8 4 0 a 8 5 d 5 af 5 bf 1 d 1 7 6 2 f 9 2 5 bd add c 4 2 0 1 f 9 8 4 ". let ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: HexString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontract Address 3 Ġ= ĠContract Address (" 0 x 7 a 2 5 0 d 5 6 3 0 B 4 c F 5 3 9 7 3 9 d F 2 C 5 d Ac b 4 c 6 5 9 F 2 4 8 8 D ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsending Ġun is wap Ġtransaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtx Hash 3 Ġ= Ġnonce Controller . with Nonce ( alex Wallet Address ) Ġ{ Ġnonce Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Ġ= Ġa lex Credentials . signer . sign Contract Transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnonce Ġ= Ġnonce , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Id Ġ= Ġtest ETH . chain Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract Data Ġ= Ġcall Data 3 . prefix ed , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 . bi , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgas Configuration Ġ= Ġtest ETH . gas Provider . get Gas Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġ= Ġa lex Credentials . address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġcontract Address 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Data Ġ= Ġcall Data 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Ġ= Ġtest B SC . executor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest B SC . executor . send Transaction ( signed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest ETH . executor . waitFor Transaction Receipt ( tx Hash 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ//@ Test ĊĠĠĠ Ġfun Ġtest Cross Chain Restrictions () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( min , Ġmax ) Ġ= Ġtest Sdk . b sc Test net Eth R in ke by Client . get Allowed Range For Input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Token Ġ= Ġtest Sdk . b sc Test net . token . BN B ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Min Ġallowed Ġinput : Ġ${ min . amount } ĠB NB Ġ($ Ġ${ test Sdk . b sc Test net Eth R in ke by Client . cross Chain . min Stable Tokens Amount Per Trade }) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Max Ġallowed Ġinput : Ġ${ max . amount } ĠB NB Ġ($ Ġ${ test Sdk . b sc Test net Eth R in ke by Client . cross Chain . max Stable Tokens Amount Per Trade }) ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount In Ġ= Ġ" 5 0 ". bn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Calculated Ġmeta Ġswap Ġtrade ĠB NB Ġ-> ĠETH Ġfor Ġ$ amount In ĠB NB :") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrade Ġ= Ġtest Sdk . b sc Test net Eth R in ke by Client . find Best Trade Exact In ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġ= Ġa lex Wallet Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Token Ġ= Ġtest Sdk . b sc Test net . token . BN B , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Token Ġ= Ġtest Sdk . eth R in ke by . token . ETH , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount In Ġ= Ġtest Sdk . b sc Test net . token . BN B . convert Real To Integer ( amount In ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( trade ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCalcul ated Meta Swap Trade . Stable Tokens GreaterThan Max Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ trade ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCalcul ated Meta Swap Trade . Stable Tokens LessThan Min Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ trade ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCalcul ated Meta Swap Trade . Exact In Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ trade ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Cannot Ġfind Ġa Ġtrade !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ