Commit 2bba72dd authored by shajiaiming's avatar shajiaiming

Merge branch 'feature/issue_coin' into develop

parents 63b1149c 1d33f3e2
......@@ -2,6 +2,7 @@
namespace api\controllers;
use common\service\chain33\Chain33Service;
use Yii;
use yii\data\Pagination;
use api\base\BaseController;
......@@ -11,6 +12,24 @@ use common\models\psources\CoinIssueChainRecord;
class IssueCoinController extends BaseController
{
public function actionIsManager()
{
$node = [
'scheme' => 'https',
'host' => 'jiedian1.bityuan.com',
'port' => 8801,
];
// $node = [
// 'scheme' => 'http',
// 'host' => '47.97.193.201',
// 'port' => 8901,
// ];
$chain_service = new Chain33Service($node);
$result = $chain_service->query();
echo json_encode($result);exit;
}
/**
* 发行申请
* @return array
......
......@@ -14,13 +14,15 @@ class CoinIssueCoin extends CommonActiveRecord
const ALLOW_PAY = 1;
const SUCCESS_PAY =2;
const UN_AUDIT = 0;
const ALLOW_ISSUE = 1;
const REFUSE_ISSUE = 2;
const SUCCESS_ISSUE = 3;
const FAIL_ISSUE = 4;
const CANCEL_ISSUE = 5;
const ALLOWED_ISSUE = 6;
const UN_AUDIT = 0; //允许发行(管理员)
const ALLOW_ISSUE = 1; //允许发行(管理员)
const REFUSE_ISSUE = 2; //拒绝发行
const SUCCESS_ISSUE = 3; //发行成功
const FAIL_ISSUE = 4; //发行失败
const CANCEL_ISSUE = 5; //已撤消
const ALLOWED_ISSUE = 6; //允许发行(申请者)
const CANCEL_SUCCESS = 7; //撤消成功
const CANCEL_FAIL = 8; //撤消失败
//定义场景
const SCENARIOS_CREATE = 'create';
......
......@@ -246,6 +246,16 @@ class Chain33Service
return $this->send($params, 'Chain33.QueryTransaction');
}
public function query()
{
$params = [
"execer" => 'manage',
"funcName" => "GetConfigItem",
"payload" => ['data' => 'token-finisher']
];
return $this->send($params, 'Chain33.Query');
}
public function getBalance($address, $execer)
{
$params = [
......@@ -312,6 +322,15 @@ class Chain33Service
return $this->send($params, 'token.CreateRawTokenFinishTx');
}
public function createRawTokenRevokeTx($symbol, $owner)
{
$params = [
'symbol' => $symbol,
'owner' => $owner
];
return $this->send($params, 'token.CreateRawTokenRevokeTx');
}
public function getBlock2MainInfo($start, $end)
{
$params = [
......
......@@ -82,8 +82,8 @@ class IssueChainTransferController extends Controller
}
$txHex = $result['result'];
#$privkey = '72c3879f1f9b523f266a9545b69bd41c0251483a93e21e348e85118afe17a5e21';
$privkey = $val->coin->chain->private_key;
$privkey = '8ac19c0b8858ccd6ed34e2bce0f11be2fc696e658d0b98fb1d3ef85ec5a3992c';
#$privkey = $val->coin->chain->private_key;
$expire = '1m';
//执行1.2签名
$signRawTx = $chain_service->signRawTx($privkey, $txHex, $expire);
......@@ -215,6 +215,47 @@ class IssueChainTransferController extends Controller
return 0;
}
public function actionCancel()
{
$issue_coin_model = CoinIssueCoin::find()->where(['status' => CoinIssueCoin::CANCEL_ISSUE])->all();
if (false == $issue_coin_model) {
echo date('Y-m-d H:i:s') . '暂无需要撤消的发行' . PHP_EOL;
return 0;
}
$node = Yii::$app->params['chain_nodes']['STO'];
$chain_service = new Chain33Service($node);
foreach ($issue_coin_model as $val) {
$data = [];
$result = $chain_service->createRawTokenRevokeTx($val->symbol, $val->owner);
if (null == $val->transfer) {
$status = CoinIssueCoin::CANCEL_FAIL;
goto doEnd;
}
if (null != $result['error']) {
$status = CoinIssueCoin::CANCEL_FAIL;
$data = [
'pre_query_transaction' => $result['error']
];
goto doEnd;
}
$status = CoinIssueCoin::CANCEL_SUCCESS;
$data = [
'pre_query_transaction' => $result['result']
];
doEnd :
CoinIssueCoin::updateAll(['status' => $status], [
'id' => $val->id,
]);
if (false != $data) {
CoinIssueChainRecord::updateAll($data, [
'issue_coin_id' => $val->id,
]);
}
}
echo date('Y-m-d H:i:s') . '已撤消' . PHP_EOL;
return 0;
}
public function syncCoin($params = [])
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment