package Ġio . nova foundation . nova . feature _ staking _ impl . di . valid ations Ċ Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . nova foundation . nova . common . di . scope . Feature Scope Ċ import Ġio . nova foundation . nova . common . validation . Composite Validation Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . valid ations . re bond . En ough To Re bond Validation Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . valid ations . re bond . Not Zero Re bond Validation Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . valid ations . re bond . Re bond Fee Validation Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . valid ations . re bond . Re bond Validation Failure Ċ import Ġio . nova foundation . nova . feature _ staking _ impl . domain . valid ations . re bond . Re bond Validation System Ċ Ċ @ Module Ċ class ĠRe bond Valid ations Module Ġ{ ĊĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Fee Validation () Ġ= ĠRe bond Fee Validation ( ĊĠĠĠĠĠĠĠ Ġfee Extractor Ġ= Ġ{ Ġit . fee Ġ}, ĊĠĠĠĠĠĠĠ Ġavailable Balance Producer Ġ= Ġ{ Ġit . controller Asset . transfer able Ġ}, ĊĠĠĠĠĠĠĠ Ġerror Producer Ġ= Ġ{ ĠRe bond Validation Failure . CAN NOT _ PAY _ F EE Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Not Zero Un bond Validation () Ġ= ĠNot Zero Re bond Validation ( ĊĠĠĠĠĠĠĠ Ġamount Extractor Ġ= Ġ{ Ġit . re bond Amount Ġ}, ĊĠĠĠĠĠĠĠ Ġerror Provider Ġ= Ġ{ ĠRe bond Validation Failure . ZERO _ AMOUNT Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide En ough To Re bond Validation () Ġ= ĠEn ough To Re bond Validation () ĊĊĠĠĠ Ġ@ Feature Scope ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Re bond Validation System ( ĊĠĠĠĠĠĠĠ Ġre bond Fee Validation : ĠRe bond Fee Validation , ĊĠĠĠĠĠĠĠ Ġnot Zero Re bond Validation : ĠNot Zero Re bond Validation , ĊĠĠĠĠĠĠĠ Ġenough To Re bond Validation : ĠEn ough To Re bond Validation , ĊĠĠĠ Ġ) Ġ= ĠRe bond Validation System ( ĊĠĠĠĠĠĠĠ ĠComposite Validation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidations Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre bond Fee Validation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Zero Re bond Validation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenough To Re bond Validation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ