package Ġjp . co . sor am its u . feature _ c rowd loan _ impl . di . valid ations Ċ Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . mult ib ind ings . Into Set Ċ import Ġjp . co . sor am its u . common . di . scope . Feature Scope Ċ import Ġjp . co . sor am its u . common . validation . Composite Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ api . data . repository . C rowd loan Repository Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Cap Exceeded Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Contribut e En ough To Pay Fees Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Contribut e Exist ential Deposit Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Contribut e Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Contribut e Validation Failure Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Contribut e Validation System Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . C rowd loan Not Ended Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Min Contribution Validation Ċ import Ġjp . co . sor am its u . feature _ c rowd loan _ impl . domain . contribute . valid ations . Public C rowd loan Validation Ċ import Ġjp . co . sor am its u . feature _ wallet _ api . domain . interfaces . Wallet Constants Ċ import Ġjp . co . sor am its u . runtime . repository . Chain State Repository Ċ Ċ @ Module Ċ class ĠContribut e Valid ations Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Fees Validation (): ĠContribut e Validation Ġ= ĠContribut e En ough To Pay Fees Validation ( ĊĠĠĠĠĠĠĠ Ġfee Extractor Ġ= Ġ{ Ġit . fee Ġ}, ĊĠĠĠĠĠĠĠ Ġavailable Balance Producer Ġ= Ġ{ Ġit . asset . transfer able Ġ}, ĊĠĠĠĠĠĠĠ Ġextra Amount Extractor Ġ= Ġ{ Ġit . contribution Amount Ġ}, ĊĠĠĠĠĠĠĠ Ġerror Producer Ġ= Ġ{ ĠContribut e Validation Failure . Cannot Pay Fees Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Min Contribution Validation ( ĊĠĠĠĠĠĠĠ Ġc rowd loan Repository : ĠC rowd loan Repository , ĊĠĠĠ Ġ): ĠContribut e Validation Ġ= ĠMin Contribution Validation ( c rowd loan Repository ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Cap Exceeded Validation (): ĠContribut e Validation Ġ= ĠCap Exceeded Validation () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide C rowd loan Not Ended Validation ( ĊĠĠĠĠĠĠĠ Ġchain State Repository : ĠChain State Repository , ĊĠĠĠĠĠĠĠ Ġc rowd loan Repository : ĠC rowd loan Repository , ĊĠĠĠ Ġ): ĠContribut e Validation Ġ= ĠC rowd loan Not Ended Validation ( chain State Repository , Ġc rowd loan Repository ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Exist ential Warning Validation ( ĊĠĠĠĠĠĠĠ Ġwallet Constants : ĠWallet Constants , ĊĠĠĠ Ġ): ĠContribut e Validation Ġ= ĠContribut e Exist ential Deposit Validation ( ĊĠĠĠĠĠĠĠ Ġwallet Constants Ġ= Ġwallet Constants , ĊĠĠĠĠĠĠĠ Ġtotal Balance Producer Ġ= Ġ{ Ġit . asset . total Ġ}, ĊĠĠĠĠĠĠĠ Ġfee Producer Ġ= Ġ{ Ġit . fee Ġ}, ĊĠĠĠĠĠĠĠ Ġextra Amount Producer Ġ= Ġ{ Ġit . contribution Amount Ġ}, ĊĠĠĠĠĠĠĠ Ġtoken Producer Ġ= Ġ{ Ġit . asset . token Ġ}, ĊĠĠĠĠĠĠĠ Ġerror Producer Ġ= Ġ{ ĠContribut e Validation Failure . Exist ential Deposit C ros sed Ġ}, ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Into Set ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Public C rowd loan Validation (): ĠContribut e Validation Ġ= ĠPublic C rowd loan Validation () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġfun Ġprovide Validation System ( ĊĠĠĠĠĠĠĠ Ġcontribute Valid ations : Ġ@ Jvm Suppress W ild cards ĠSet < Contribut e Validation > ĊĠĠĠ Ġ) Ġ= ĠContribut e Validation System ( ĊĠĠĠĠĠĠĠ Ġvalidation Ġ= ĠComposite Validation ( contribute Valid ations . toList ()) ĊĠĠĠ Ġ) Ċ } Ċ