package Ġjp . co . sor am its u . feature _ staking _ impl . domain . valid ations Ċ Ċ import Ġjp . co . sor am its u . common . validation . Default Failure Level Ċ import Ġjp . co . sor am its u . common . validation . Validation Ċ import Ġjp . co . sor am its u . common . validation . Validation Status Ċ import Ġjp . co . sor am its u . feature _ staking _ impl . domain . valid ations . controller . Set Controller Validation Failure Ċ import Ġjp . co . sor am its u . feature _ staking _ impl . domain . valid ations . controller . Set Controller Validation Payload Ċ import Ġjp . co . sor am its u . feature _ wallet _ api . domain . interfaces . Wallet Repository Ċ import Ġjava . math . BigDecimal Ċ Ċ class ĠNot Zero Balance Validation ( ĊĠĠĠ Ġval Ġwallet Repository : ĠWallet Repository Ċ ) Ġ: ĠValidation < Set Controller Validation Payload , ĠSet Controller Validation Failure > Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġvalidate ( value : ĠSet Controller Validation Payload ): ĠValidation Status < Set Controller Validation Failure > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontroller Balance Ġ= Ġwallet Repository . get Account Free Balance ( value . controller Address ). to BigDecimal () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( controller Balance Ġ> ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Status . Valid () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Status . Not Valid ( Default Failure Level . WARNING , ĠSet Controller Validation Failure . ZERO _ CONTROLLER _ BAL ANCE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ