[ADDED] Address validation script

Will allow admins to run a validateaddress check via RPC calls against
the coind for all currently available users in the accounts table.

* UNSET for users without a coin_address
* INVALID for addresses not validated against the RPC
* VALID for addresses that validated fine

Just to give people a small tool at hands. Usually addresses are already
validated during account edit, so this script is mostly for those pools
that have not had that change yet and wish to notify their users.

Addresses #1177
This commit is contained in:
Sebastian Grewe 2014-01-07 09:40:18 +01:00
parent ef28547940
commit 7a49969896
2 changed files with 99 additions and 0 deletions

47
scripts/shared.inc.php Normal file
View File

@ -0,0 +1,47 @@
<?php
/*
Copyright:: 2013, Sebastian Grewe
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// MODIFY THIS
// We need to find our include files so set this properly
define("BASEPATH", "../public/");
/*****************************************************
* No need to change beyond this point *
*****************************************************/
// Our security check
define("SECURITY", 1);
// Include our configuration (holding defines for the requires)
require_once(BASEPATH . 'include/config/global.inc.php');
// We include all needed files here, even though our templates could load them themself
require_once(INCLUDE_DIR . '/autoloader.inc.php');
/**
* Not used as of yet, may be added later
**/
// Command line switches
// array_shift($argv);
// foreach ($argv as $option) {
// switch ($option) {
// }
// }
?>

52
scripts/validate_addresses.php Executable file
View File

@ -0,0 +1,52 @@
#!/usr/bin/php
<?php
/*
Copyright:: 2013, Sebastian Grewe
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* Simple script to fetch all user accounts and their coin addresses, then runs
* them against the RPC to validate. Will allow admins to find users with invalid addresses.
**/
// Change to working directory
chdir(dirname(__FILE__));
// Include all settings and classes
require_once('shared.inc.php');
// Fetch all users
$users = $user->getAllAssoc();
// Table mask
$mask = "| %-35.35s | %-35.35s | %-40.40s | %-7.7s |\n";
echo 'Validating all coin addresses. This may take some time.' . PHP_EOL . PHP_EOL;
printf($mask, 'Username', 'E-Mail', 'Address', 'Status');
foreach ($users as $aData) {
if (empty($aData['coin_address'])) {
$status = 'UNSET';
}
$ret = $bitcoin->validateaddress($aData['coin_address']);
if ($ret['isvalid']) {
$status = 'VALID';
} else {
$status = 'INVALID';
}
printf($mask, $aData['username'], $aData['email'], $aData['coin_address'], $status);
}