package Ġio . nova foundation . nova . feature _ nft _ impl . data . source . providers . rm rk V 2 Ċ Ċ import Ġio . nova foundation . nova . common . utils . flow Of Ċ import Ġio . nova foundation . nova . core _ db . dao . N ft Dao Ċ import Ġio . nova foundation . nova . core _ db . model . N ft Local Ċ import Ġio . nova foundation . nova . feature _ account _ api . domain . interfaces . Account Repository Ċ import Ġio . nova foundation . nova . feature _ account _ api . domain . model . Meta Account Ċ import Ġio . nova foundation . nova . feature _ account _ api . domain . model . accountId In Ċ import Ġio . nova foundation . nova . feature _ account _ api . domain . model . address In Ċ import Ġio . nova foundation . nova . feature _ nft _ api . data . model . N ft Ċ import Ġio . nova foundation . nova . feature _ nft _ api . data . model . N ft Details Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . map pers . nft Iss u ance Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . map pers . nft Price Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . network . distributed . File Storage Adapter . ad opt File Storage Link To Https Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . source . N ft Provider Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . source . providers . rm rk V 2 . network . kan aria . K an aria Api Ċ import Ġio . nova foundation . nova . feature _ nft _ impl . data . source . providers . rm rk V 2 . network . singular . Sing ular V 2 Api Ċ import Ġio . nova foundation . nova . runtime . ext . accountId Of Ċ import Ġio . nova foundation . nova . runtime . multi Network . Chain Registry Ċ import Ġio . nova foundation . nova . runtime . multi Network . chain . model . Chain Ċ import Ġio . nova foundation . nova . runtime . multi Network . chain . model . Chain Id Ċ import Ġkotlinx . coroutines . flow . Flow Ċ Ċ class ĠR mr k V 2 N ft Provider ( ĊĠĠĠ Ġprivate Ġval Ġchain Registry : ĠChain Registry , ĊĠĠĠ Ġprivate Ġval Ġaccount Repository : ĠAccount Repository , ĊĠĠĠ Ġprivate Ġval Ġkan aria Api : ĠK an aria Api , ĊĠĠĠ Ġprivate Ġval Ġsingular V 2 Api : ĠSing ular V 2 Api , ĊĠĠĠ Ġprivate Ġval Ġn ft Dao : ĠN ft Dao Ċ ) Ġ: ĠN ft Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinitial N fts Sync ( chain : ĠChain , Ġmeta Account : ĠMeta Account , Ġforce Overwrite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġmeta Account . address In ( chain ) !! ĊĠĠĠĠĠĠĠ Ġval Ġn fts Ġ= Ġkan aria Api . getB ir ds ( address ) Ġ+ Ġkan aria Api . getItems ( address ) ĊĊĠĠĠĠĠĠĠ Ġval Ġto Save Ġ= Ġn fts . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN ft Local ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= Ġlocal Identifier ( chain . id , Ġit . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Id Ġ= Ġmeta Account . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Id Ġ= Ġchain . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Id Ġ= Ġit . collection Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Id Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġit . metadata . encode To ByteArray (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġit . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Ġ= Ġit . image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġit . price , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠN ft Local . Type . R MR K 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiss u ance Total Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiss u ance My Edition Ġ= Ġit . edition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhole Details Loaded Ġ= Ġit . image Ġ!= Ġnull Ġ// Ġnull Ġin Ġcase Ġof Ġitems , Ġwill Ġrequire Ġmetadata Ġfetch Ġfrom Ġip fs Ġon Ġfull Ġsync ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġn ft Dao . insert N fts Diff ( N ft Local . Type . R MR K 2 , Ġmeta Account . id , Ġto Save , Ġforce Overwrite ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġn ft Full Sync ( nft : ĠN ft ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Link Ġ= Ġn ft . metadata Raw !!. decode ToString (). ad opt File Storage Link To Https () ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Ġ= Ġkan aria Api . get Ip fs Metadata ( metadata Link ) ĊĊĠĠĠĠĠĠĠ Ġn ft Dao . update N ft ( nft . identifier ) Ġ{ Ġlocal Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Ġ= Ġmetadata . image . ad opt File Storage Link To Https (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhole Details Loaded Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġn ft Details Flow ( nft Identifier : ĠString ): ĠFlow < N ft Details > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Of Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn ft Local Ġ= Ġn ft Dao . getN ft ( nft Identifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( nft Local . whole Details Loaded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cannot Ġload Ġdetails Ġof Ġnon Ġfully - sync ed ĠN FT " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchain Ġ= Ġchain Registry . get Chain ( nft Local . chain Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Account Ġ= Ġaccount Repository . get Meta Account ( nft Local . meta Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġsingular V 2 Api . get Collection ( nft Local . collection Id ). first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollection Metadata Ġ= Ġcollection . metadata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingular V 2 Api . get Ip fs Metadata ( it . ad opt File Storage Link To Https ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠN ft Details ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġidentifier Ġ= Ġn ft Local . identifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain Ġ= Ġchain , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= Ġmeta Account . accountId In ( chain ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreator Ġ= Ġchain . accountId Of ( collection . issuer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Ġ= Ġn ft Local . media , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġn ft Local . name !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġn ft Local . label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiss u ance Ġ= Ġn ft Iss u ance ( nft Local ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġn ft Price ( nft Local ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Ġ= ĠN ft Details . Collection ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġn ft Local . collection Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġcollection Metadata ?. name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Ġ= Ġcollection Metadata ?. image ?. ad opt File Storage Link To Https () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlocal Identifier ( chain Id : ĠChain Id , Ġremote Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ chain Id -$ remote Id " ĊĠĠĠ Ġ} Ċ } Ċ