MinerService.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Module\AppGame\Service;
  3. use App\Module\AppGame\Validations\BlockchainMinerValidation;
  4. use Uraus\App\RequestBlockchainMiner;
  5. class MinerService extends \App\Module\AppGame\UserService
  6. {
  7. public function calculate_miner_fee(RequestBlockchainMiner $blockchainMiner)
  8. {
  9. $va = BlockchainMinerValidation::makeByProrobuf($blockchainMiner);
  10. $va->validated();
  11. return $this->calculate_miner_fee2(
  12. $blockchainMiner->getAtype(),
  13. $blockchainMiner->getToAddress(),
  14. $blockchainMiner->getAmount()
  15. );
  16. }
  17. private function calculate_miner_fee2($atype, $to_address, $amount)
  18. {
  19. $feeTable = [
  20. 1 => [ 'amount' => '0.005', 'desc' => '普通交易矿工费' ],
  21. 2 => [ 'amount' => '0.008', 'desc' => '快速交易矿工费' ],
  22. 3 => [ 'amount' => '0.003', 'desc' => '慢速交易矿工费' ]
  23. ];
  24. // 开发环境固定返回类型1的费率
  25. if (!app()->isProduction()) {
  26. return $feeTable[1] ?? [ 'amount' => '0.005', 'desc' => '默认矿工费' ];
  27. }
  28. // 生产环境根据实际类型返回
  29. return $feeTable[$atype] ?? [
  30. 'amount' => '0.005',
  31. 'desc' => '未知交易类型矿工费'
  32. ];
  33. }
  34. }