2019-09-06 23:53:10 +08:00

184 lines
4.3 KiB
PHP
Executable File

<?php
namespace wstmart\home\controller;
Vendor('web3.vendor.autoload');
use \PHPUnit\Framework\TestCase as BaseTestCase;
use Web3\Web3;
/**
* ============================================================================
* 默认控制器
*/
class Tmp extends Base{
/**
* web3
*
* @var \Web3\Web3
*/
protected $web3;
/**
* testRinkebyHost
*
* @var string
*/
protected $testRinkebyHost = 'http://localhost';
/**
* testHost
*
* @var string
*/
protected $testHost = 'http://localhost:8545';
/**
* coinbase
*
* @var string
*/
protected $coinbase;
/**
* setUp
*
* @return void
*/
public function index(){
//Loader::import('web3.src.Web3');
$web3 = new Web3($this->testHost);
$this->web3 = $web3;
$personal = $web3->personal;
// $personal->batch(true);
// $personal->listAccounts();
// $personal->newAccount('123456');
// $personal->provider->execute(function ($err, $data) {
// if ($err !== null) {
// // do something
// return;
// }
// // do something
// });
//dump($personal);
$web3->eth->coinbase(function ($err, $coinbase) {
if ($err !== null) {
dump($this->fail($err->getMessage()));
}
$this->coinbase = $coinbase;
});
$eth = $web3->eth;
$eth->accounts(function ($err, $accounts) use ($eth) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
dump($accounts);
});
// $personal->unlockAccount($this->coinbase, '123456', function ($err, $unlocked) {
// if ($err !== null) {
// echo 'Error: ' . $err->getMessage();
// return;
// }
// if ($unlocked) {
// echo 'New account is unlocked!' . PHP_EOL;
// } else {
// echo 'New account isn\'t unlocked' . PHP_EOL;
// }
// });
$web3->eth->getBalance( $this->coinbase , function ($err, $balance) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
echo 'Balance: ' . $balance->toString() . PHP_EOL;
});
$newAccount = '';
$web3->personal->newAccount('123456', function ($err, $account) use (&$newAccount) {
dump($err);
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
$newAccount = $account;
echo 'New account: ' . $account . PHP_EOL;
});
dump($this->coinbase);
// $web3->eth->getWork(function ($err, $coinbase) {
// if ($err !== null) {
// dump($this->fail($err->getMessage()));
// }
// dump($coinbase);
// });
// $web3->clientVersion(function ($err, $version) {
// if ($err !== null) {
// // do something
// return;
// }
// dump($version);die;
// if (isset($client)) {
// echo 'Client version: ' . $version;
// }
// });
die;
$web3 = new Web3('http://localhost:8545');
//$getPersonal = $web3->getEth;
$personal = $web3->personal;
$newAccount = '';
echo 'Personal Create Account and Unlock Account' . PHP_EOL;
// create account
$personal->newAccount('123456', function ($err, $account) use (&$newAccount) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
$newAccount = $account;
echo 'New account: ' . $account . PHP_EOL;
});
$personal->unlockAccount($newAccount, '123456', function ($err, $unlocked) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
if ($unlocked) {
echo 'New account is unlocked!' . PHP_EOL;
} else {
echo 'New account isn\'t unlocked' . PHP_EOL;
}
});
// get balance
$web3->eth->getBalance($newAccount, function ($err, $balance) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
echo 'Balance: ' . $balance->toString() . PHP_EOL;
});
die;
}
}