# tokencore **Repository Path**: galaxyzxcv/tokencore ## Basic Information - **Project Name**: tokencore - **Description**: The core components of the blockchain wallet backend, support a variety of blockchain address generation and offline signatures - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: http://galaxyzxcv.xyz/ - **GVP Project**: No ## Statistics - **Stars**: 50 - **Forks**: 28 - **Created**: 2020-08-11 - **Last Updated**: 2023-04-14 ## Categories & Tags **Categories**: blockchain **Tags**: None ## README

tokencore

# 联系方式 - [我的Telegram](https://t.me/xzadcx) / @Telegram # 语言选择 - en [English](README.md) - zh_CN [简体中文](README_zh_CN.md) # 使用案例 交易所钱包后台 https://github.com/galaxyzxcv/java-wallet # tokencore介绍 ##### 区块链钱包后台核心组件,支持BTC,OMNI,ETH,ERC20,TRX,TRC20,BCH,BSV,DOGE,DASH,LTC,FILECOIN # tokencore使用方式 #### 引入本库 - gradle方式 在你的build.gradle里面 ``` repositories { maven { url 'https://jitpack.io' } } dependencies { compile 'com.github.galaxyzxcv:tokencore:1.2.7' } ``` - maven方式 ``` bintray https://dl.bintray.com/tronj/tronj jitpack.io https://jitpack.io com.github.galaxyzxcv tokencore 1.2.7 ``` #### 测试样例 [https://github.com/paipaipaipai/tokencore/blob/master/src/test/java/org/consenlabs/tokencore/Test.java](https://github.com/paipaipaipai/tokencore/blob/master/src/test/java/org/consenlabs/tokencore/Test.java) #### 初始化身份 ```java try{ Files.createDirectories(Paths.get("${keyStoreProperties.dir}/wallets")) }catch(Throwable ignored){ } //KeystoreStorage是接口,实现它的getdir方法 WalletManager.storage=KeystoreStorage(); WalletManager.scanWallets(); String password="123456"; Identity identity=Identity.getCurrentIdentity(); if(identity==null){ Identity.createIdentity( "token", password, "", Network.MAINNET, Metadata.P2WPKH ); } ``` #### 生成钱包 ```java Identity identity = Identity.getCurrentIdentity(); String password = "123456"; Wallet wallet = identity.deriveWalletByMnemonics( ChainType.BITCOIN, password, MnemonicUtil.randomMnemonicCodes() ); System.out.println(wallet.getAddress()); ``` #### 离线签名 - 比特币 ```java String password = "123456"; String toAddress = "33sXfhCBPyHqeVsVthmyYonCBshw5XJZn9"; int changeIdx = 0; long amount = 1000L; long fee = 555L; //utxos需要去节点或者外部api获取 ArrayList utxos = new ArrayList(); BitcoinTransaction bitcoinTransaction = new BitcoinTransaction( toAddress, changeIdx, amount, fee, utxos ); Wallet wallet = WalletManager.findWalletByAddress(ChainType.BITCOIN, "33sXfhCBPyHqeVsVthmyYonCBshw5XJZn9"); TxSignResult txSignResult = bitcoinTransaction.signTransaction( String.valueOf(ChainId.BITCOIN_MAINNET), password, wallet ); System.out.println(txSignResult); ``` - 波场 ```java String from = "TJRabPrwbZy45sbavfcjinPJC18kjpRTv8"; String to = "TF17BgPaZYbz8oxbjhriubPDsA7ArKoLX3"; long amount = 1; String password = "123456"; Wallet wallet = WalletManager.findWalletByAddress(ChainType.BITCOIN, "TJRabPrwbZy45sbavfcjinPJC18kjpRTv8"); TronTransaction transaction = new TronTransaction(from, to, amount); //离线签名,不建议签名和广播放一块 TxSignResult txSignResult = transaction.signTransaction(String.valueOf(ChainId.BITCOIN_MAINNET), password, wallet); System.out.println(txSignResult); ``` #### 注意:这只是一个数字货币的功能组件!!!只供学习使用,不提供完整的区块链业务功能