├── bitcoin ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── ztuo │ │ │ └── bc │ │ │ └── wallet │ │ │ ├── WalletBtcApplication.java │ │ │ ├── component │ │ │ └── BitcoinWatcher.java │ │ │ ├── config │ │ │ └── RpcClientConfig.java │ │ │ ├── controller │ │ │ └── WalletController.java │ │ │ ├── entity │ │ │ └── TransactionDto.java │ │ │ ├── job │ │ │ ├── CreateBtcAddressJob.java │ │ │ ├── SyncAddressBalanceJob.java │ │ │ └── TransactionJob.java │ │ │ └── service │ │ │ ├── BitcoinRPCClientExtend.java │ │ │ └── BitcoinUtilExtend.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ ├── SimpleTest.java │ └── com │ └── ztuo │ └── bc │ └── wallet │ ├── controller │ └── WalletControllerTest.java │ └── service │ └── BitcoinUtilExtendTest.java ├── btc-support ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── ztuo │ └── bc │ └── wallet │ ├── entity │ └── BtcTransactionDto.java │ ├── service │ ├── BtcAccountService.java │ └── impl │ │ ├── BtcAccountServiceImpl.java │ │ └── BtcTransactionServiceImpl.java │ └── util │ └── AddressAssert.java ├── config ├── application-dev.properties ├── application-prod.properties └── application-test.properties ├── doc ├── 搭建BTC钱包.md ├── 搭建ETH钱包.md └── 搭建USDT钱包.md ├── erc-token ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── ztuo │ │ └── bc │ │ └── wallet │ │ ├── ErcTokenApplication.java │ │ ├── component │ │ ├── EnventWatcher.java │ │ ├── TokenWatcher.java │ │ └── test.java │ │ ├── config │ │ └── RestTemplateConfig.java │ │ ├── controller │ │ └── WalletController.java │ │ └── job │ │ ├── CoinCollectJob.java │ │ └── RechargeJob.java │ └── resources │ ├── application.properties │ ├── google-10000-english-no-swears.txt │ └── logback-spring.xml ├── eth-support ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── ztuo │ └── bc │ └── wallet │ ├── config │ └── EthConfig.java │ ├── entity │ ├── EthTransactionDto.java │ └── Payment.java │ ├── service │ ├── Dto2Payment.java │ ├── EthService.java │ ├── EtherscanApi.java │ └── PaymentHandler.java │ └── web3j │ ├── FileUtility.java │ ├── HtmlUtility.java │ ├── PassPhraseUtility.java │ ├── QrCodeUtility.java │ ├── TetherUSDT.java │ └── WalletPageUtility.java ├── eth ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── ztuo │ │ │ └── bc │ │ │ └── wallet │ │ │ ├── WalletEthApplication.java │ │ │ ├── component │ │ │ └── EthWatcher.java │ │ │ ├── controller │ │ │ └── WalletController.java │ │ │ └── job │ │ │ ├── CoinCollectJob.java │ │ │ ├── CreateGethAddressJob.java │ │ │ └── QueryBalanceFromGeth.java │ └── resources │ │ ├── application.properties │ │ ├── google-10000-english-no-swears.txt │ │ └── logback-spring.xml │ └── test │ └── java │ └── com │ └── ztuo │ └── bc │ └── wallet │ ├── AddressTest.java │ └── BaseTest.java ├── jar ├── allatori-annotations.jar ├── allatori.jar └── bitcoin-rpc-1.2.0.jar ├── pom.xml ├── readme.md ├── rpc-common ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── ztuo │ └── bc │ └── wallet │ ├── aes │ ├── AESUtils.java │ └── RandomNumUtil.java │ ├── component │ ├── RpcController.java │ ├── SysCode.java │ ├── WatchListener.java │ └── Watcher.java │ ├── config │ ├── CoinConfig.java │ ├── ContractConfig.java │ ├── KafkaConfiguration.java │ ├── MongodbConfig.java │ ├── MyBatisConfig.java │ ├── RedisConfig.java │ ├── RpcEnvironmentConfig.java │ ├── Swagger2Config.java │ └── WatchConfig.java │ ├── constants │ ├── AdminModule.java │ ├── SysConstant.java │ └── SystemId.java │ ├── converter │ ├── BigDecimalToDecimal128Converter.java │ └── Decimal128ToBigDecimalConverter.java │ ├── entity │ ├── Account.java │ ├── BalanceSum.java │ ├── Coin.java │ ├── Contract.java │ ├── Deposit.java │ ├── GrinDeposit.java │ ├── WatcherLog.java │ └── WatcherSetting.java │ ├── event │ ├── ApplicationEvent.java │ ├── DepositEvent.java │ └── Erc20TokenWrapper.java │ ├── interceptor │ ├── GlobalExceptionHandler.java │ ├── ParamsCheckException.java │ ├── SignCheckException.java │ ├── SignFailException.java │ └── SystemLog.java │ ├── service │ ├── AccountService.java │ ├── DepositService.java │ ├── EnventService.java │ ├── GrinChargeService.java │ ├── TxidService.java │ └── WatcherLogService.java │ └── util │ ├── AccountReplay.java │ ├── AccountReplayListener.java │ ├── BindingResultUtil.java │ ├── CaptchaUtil.java │ ├── CodeMsg.java │ ├── CommonPage.java │ ├── Convert.java │ ├── Encrypt.java │ ├── EthConvert.java │ ├── HttpClientUtil.java │ ├── HttpUtil.java │ ├── MessageResult.java │ ├── RedisUtil.java │ ├── RequestUtil.java │ ├── RsaKeyUtil.java │ ├── SSLClient.java │ └── WalletOperationUtil.java ├── sql └── ztuo_wallet.sql ├── usdt ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── ztuo │ │ │ └── bc │ │ │ └── wallet │ │ │ ├── WalletRpcApplication.java │ │ │ ├── component │ │ │ └── UsdtWatcher.java │ │ │ ├── config │ │ │ ├── Constant.java │ │ │ ├── JsonrpcClient.java │ │ │ └── RpcClientConfig.java │ │ │ ├── controller │ │ │ └── WalletController.java │ │ │ ├── job │ │ │ ├── CoinCollectJob.java │ │ │ ├── CreateUsdtOmniAddressJob.java │ │ │ └── TransactionJob.java │ │ │ └── service │ │ │ ├── UsdtOmniAccountService.java │ │ │ ├── UsdtServiceimpl.java │ │ │ ├── UsdtTransactionService.java │ │ │ └── impl │ │ │ └── UsdtOmniAccountServiceImpl.java │ └── resources │ │ ├── application.properties │ │ └── logback-spring.xml │ └── test │ └── java │ └── SimpleTest.java └── wallet-mbg ├── mvnw.cmd ├── pom.xml └── src └── main ├── java └── com │ └── ztuo │ └── bc │ └── wallet │ ├── base │ └── BaseMapper.java │ ├── components │ ├── MapperPlugin.java │ └── SimpleSelectInLangDriver.java │ ├── mapper │ ├── AddressBtcMapper.java │ ├── AddressEthMapper.java │ ├── AddressUsdtOmniMapper.java │ ├── BalanceBtcMapper.java │ ├── BalanceEthMapper.java │ ├── BalanceUsdtOmniMapper.java │ ├── BlockRecordBtcMapper.java │ └── BlockRecordEthMapper.java │ ├── mapperextend │ ├── AddressBtcMapperExtend.java │ ├── AddressEthMapperExtend.java │ ├── AddressUsdtOmniMapperExtend.java │ ├── BalanceBtcMapperExtend.java │ ├── BalanceEthMapperExtend.java │ └── BalanceUsdtOmniMapperExtend.java │ └── model │ ├── AddressBtc.java │ ├── AddressBtcExample.java │ ├── AddressEth.java │ ├── AddressEthExample.java │ ├── AddressUsdtOmni.java │ ├── AddressUsdtOmniExample.java │ ├── BalanceBtc.java │ ├── BalanceBtcExample.java │ ├── BalanceEth.java │ ├── BalanceEthExample.java │ ├── BalanceUsdtOmni.java │ ├── BalanceUsdtOmniExample.java │ ├── BlockRecordBtc.java │ ├── BlockRecordBtcExample.java │ ├── BlockRecordEth.java │ └── BlockRecordEthExample.java └── resources ├── com └── ztuo │ └── bc │ └── wallet │ └── mapperextend │ ├── AddressBtcMapperExtend.xml │ └── BalanceBtcMapperExtend.xml ├── comment.ftl ├── generator.properties └── generatorConfig.xml /bitcoin/src/main/java/com/ztuo/bc/wallet/WalletBtcApplication.java: -------------------------------------------------------------------------------- 1 | package com.ztuo.bc.wallet; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; 6 | import org.springframework.scheduling.annotation.EnableScheduling; 7 | import springfox.documentation.swagger2.annotations.EnableSwagger2; 8 | 9 | @EnableEurekaClient 10 | @EnableSwagger2 11 | @SpringBootApplication 12 | @EnableScheduling 13 | public class WalletBtcApplication { 14 | public static void main(String[] args){ 15 | SpringApplication.run(WalletBtcApplication.class,args); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bitcoin/src/main/java/com/ztuo/bc/wallet/config/RpcClientConfig.java: -------------------------------------------------------------------------------- 1 | package com.ztuo.bc.wallet.config; 2 | 3 | import com.spark.blockchain.rpcclient.BitcoinException; 4 | import com.ztuo.bc.wallet.service.BitcoinRPCClientExtend; 5 | import org.bitcoinj.core.NetworkParameters; 6 | import org.bitcoinj.params.MainNetParams; 7 | import org.bitcoinj.params.TestNet3Params; 8 | import org.slf4j.Logger; 9 | import org.slf4j.LoggerFactory; 10 | import org.springframework.beans.factory.annotation.Value; 11 | import org.springframework.context.annotation.Bean; 12 | import org.springframework.context.annotation.Configuration; 13 | 14 | import java.net.MalformedURLException; 15 | 16 | /** 17 | * 初始化RPC客户端 18 | */ 19 | @Configuration 20 | public class RpcClientConfig { 21 | private Logger logger = LoggerFactory.getLogger(RpcClientConfig.class); 22 | 23 | 24 | @Bean 25 | public BitcoinRPCClientExtend setClient(@Value("${coin.rpc}") String uri){ 26 | try { 27 | logger.info("uri={}",uri); 28 | BitcoinRPCClientExtend client = new BitcoinRPCClientExtend(uri); 29 | int blockCount = client.getBlockCount(); 30 | logger.info("blockHeight={}",blockCount); 31 | return client; 32 | } catch (MalformedURLException e) { 33 | logger.info("init wallet failed"); 34 | e.printStackTrace(); 35 | return null; 36 | } catch (BitcoinException e) { 37 | logger.info("BitcoinException"); 38 | e.printStackTrace(); 39 | return null; 40 | } 41 | } 42 | @Bean 43 | public NetworkParameters setParameters(@Value("${rpc.environment.istest}") String isTest){ 44 | try { 45 | logger.info("isTest={}",isTest); 46 | NetworkParameters parameters = "true".equals(isTest) ? TestNet3Params.get() : MainNetParams.get(); 47 | return parameters; 48 | } catch (Exception e) { 49 | logger.info("init parameters failed"); 50 | e.printStackTrace(); 51 | return null; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /bitcoin/src/main/java/com/ztuo/bc/wallet/entity/TransactionDto.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C), 2016-2019, XXX有限公司 3 | * FileName: TransactionDto 4 | * Author: Administrator 5 | * Date: 2019/12/6/006 13:25 6 | * Description: 交易类 7 | * History: 8 | *