lomocoin wallet

draft: false date: 2017-12-13 17:15:49 cover: /images/avatar.jpeg tags: - bigzhu preview:


先实现 api

api 用于异步的调用钱包的 json-rpc, 真实的操作链

router

app/Http/routes.php

发送验证码

用了3家短信服务商

平台绑定用户钱包地址

发起转账

    Route::post('transfer', [
        'as'    => 'wallet.transfer',
        'uses'  => '[email protected]',
    ]);
            // 查找该币种合适的热节点。
            $hotnodes = NodeModel::getAllHotNode( $symbol );

找热点也还是从数据库中去找

找到后扔到 Redis 里去, 等待.

config/database.php 里配置了 Redis 连接的信息

php 的任务调度程序, app/Console/Commands/TransferConsumption.php app/Console/Commands/TransferFailConsumption.php 再来取Redis里的信息处理

调用 CoinFactory.php 取对应币种的 client

LMC 对应 BitcoinClient(继承自 jsonRPCClient.php), 定义在 bitcoin.php

用balance() 查出余额, 用了 php 的映射method, getbalance 直接对应 jsonRPC 的 getbalance 方法

先取 node 表的 hotnode 比如:

6    http    123.206.81.25   18332       2720    1   0   148191919   bitcoin local321    123.206.81.25:18332 userNode    BTC

测试环境一点钱都没有, 囧…

连本机查到 10244510

https://godoc.org/github.com/btcsuite/btcd/rpcclient 来调用 jsonRPC

调用自定义的 sendTransaction 方法, 里面是

      $this->settxfee( $params['fee'] );
      $txid =  $this->sendtoaddress( $params['to'] , floatval($params['coins']) );
      return $txid;

转账账单查询

    Route::get('wallet/transfer', [
        'as'    => 'wallet.transfer',
        'uses'  => '[email protected]',
    ]);

TransferModel::getList(

怎么也还是去数据库查的…

查询平台交易总和

钱包调用sdk的转账回调方法