diff --git a/public/include/classes/base.class.php b/public/include/classes/base.class.php index 836ee3b3..30a2b25e 100644 --- a/public/include/classes/base.class.php +++ b/public/include/classes/base.class.php @@ -30,6 +30,9 @@ class Base { public function setToken($token) { $this->token = $token; } + public function setBitcoin($bitcoin) { + $this->bitcoin = $bitcoin; + } public function setTokenType($tokentype) { $this->tokentype = $tokentype; } diff --git a/public/include/classes/user.class.php b/public/include/classes/user.class.php index 9d2807b4..e6fe2a5b 100644 --- a/public/include/classes/user.class.php +++ b/public/include/classes/user.class.php @@ -23,7 +23,10 @@ class User { $this->mail = $mail; } public function setToken($token) { - $this->token= $token; + $this->token = $token; + } + public function setBitcoin($bitcoin) { + $this->bitcoin = $bitcoin; } private function setErrorMessage($msg) { $this->sError = $msg; @@ -317,6 +320,21 @@ class User { $this->setErrorMessage('Invalid email address'); return false; } + if ($this->bitcoin->can_connect() === true && !empty($address)) { + try { + $aStatus = $this->bitcoin->validateaddress($address); + if (!$aStatus['isvalid']) { + $this->setErrorMessage('Invalid coin address'); + return false; + } + } catch (BitcoinClientException $e) { + $this->setErrorMessage('Unable to verify coin address'); + return false; + } + } else { + $this->setErrorMessage('Unable to connect to RPC server for coin address validation'); + return false; + } // Number sanitizer, just in case we fall through above $threshold = min($this->config['ap_threshold']['max'], max(0, floatval($threshold))); $donate = min(100, max(0, floatval($donate))); @@ -646,3 +664,4 @@ class User { $user = new User($debug, $mysqli, SALT, $config); $user->setMail($mail); $user->setToken($oToken); +$user->setBitcoin($bitcoin); diff --git a/public/templates/mmcFE/account/edit/default.tpl b/public/templates/mmcFE/account/edit/default.tpl index 71221f12..0a3e523d 100644 --- a/public/templates/mmcFE/account/edit/default.tpl +++ b/public/templates/mmcFE/account/edit/default.tpl @@ -12,6 +12,7 @@
: