/**
  * @param  Wallet                    $wallet
  * @throws \InvalidArgumentException If $wallet is not valid
  */
 public function __construct(Wallet $wallet)
 {
     if ($wallet->isValid() === false) {
         throw new \InvalidArgumentException("Wallet::isValid() returned false");
     }
     $this->setModel($wallet);
 }