├── .gitignore ├── Readme.txt ├── deploy-eclipse.bat ├── inchain-client ├── .gitignore ├── Readme.txt ├── assembly.xml ├── package.bat ├── pom.xml ├── scripts │ ├── 1.bat │ ├── inchain │ ├── inchain.bat │ ├── inchain2 │ ├── inchain_cli │ ├── inchain_cli.bat │ ├── inchain_gui │ └── setclasspath.sh └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── inchain │ │ │ ├── kit │ │ │ ├── InchainInstance.java │ │ │ └── InchainKit.java │ │ │ └── wallet │ │ │ ├── Constant.java │ │ │ ├── Context.java │ │ │ ├── Decoration.java │ │ │ ├── Main.java │ │ │ ├── controllers │ │ │ ├── AccountInfoController.java │ │ │ ├── AntiCounterfeitingController.java │ │ │ ├── AntifakeController.java │ │ │ ├── ApplicationListController.java │ │ │ ├── BusinessRecordController.java │ │ │ ├── ChangeCertAccountPasswordController.java │ │ │ ├── ChangeWalletPasswordController.java │ │ │ ├── ConsensusController.java │ │ │ ├── ConsoleController.java │ │ │ ├── DailogController.java │ │ │ ├── DailogDecorationController.java │ │ │ ├── DecorationController.java │ │ │ ├── DecryptWalletController.java │ │ │ ├── EncryptWalletController.java │ │ │ ├── FlowController.java │ │ │ ├── LockMoneyController.java │ │ │ ├── MainController.java │ │ │ ├── MyProductListController.java │ │ │ ├── NodeInfoController.java │ │ │ ├── SendAmountController.java │ │ │ ├── SetAliasController.java │ │ │ ├── StartPageController.java │ │ │ ├── StartupFailedController.java │ │ │ ├── SubPageController.java │ │ │ ├── SystemInfoController.java │ │ │ ├── SystemSettingsController.java │ │ │ ├── TransactionRecordController.java │ │ │ ├── TransferController.java │ │ │ ├── UpdateAliasController.java │ │ │ ├── UpdateController.java │ │ │ └── WeChatCodeController.java │ │ │ ├── entity │ │ │ ├── BusinessEntity.java │ │ │ ├── ConensusEntity.java │ │ │ ├── DetailValue.java │ │ │ ├── DetailValueCell.java │ │ │ ├── HashValueCell.java │ │ │ ├── MyProductListEntity.java │ │ │ ├── NodeInfoEntity.java │ │ │ ├── Point.java │ │ │ └── TransactionEntity.java │ │ │ ├── listener │ │ │ ├── AccountInfoListener.java │ │ │ ├── StartupListener.java │ │ │ └── WindowCloseEvent.java │ │ │ └── utils │ │ │ ├── Callback.java │ │ │ ├── ConfirmDailog.java │ │ │ ├── DailogUtil.java │ │ │ ├── QRcodeUtil.java │ │ │ └── TipsWindows.java │ └── resources │ │ ├── applicationContext-mainnet.xml │ │ ├── applicationContext-testnet.xml │ │ ├── applicationContext-unit.xml │ │ ├── applicationContext.xml │ │ ├── config.properties │ │ ├── css │ │ └── main.css │ │ ├── images │ │ ├── Dailogclose.png │ │ ├── accountInfo_icon.png │ │ ├── antifake_icon.png │ │ ├── backupWallet_icon.png │ │ ├── block_icon.png │ │ ├── button_bgHL.png │ │ ├── cancelH_icon.png │ │ ├── cancel_icon.png │ │ ├── changepasswordH_icon.png │ │ ├── changepassword_icon.png │ │ ├── close.png │ │ ├── closeHL_bg.png │ │ ├── confirmed.png │ │ ├── consensusRecord_icon.png │ │ ├── console.png │ │ ├── console_bg.png │ │ ├── dailogCloseHL_bg.png │ │ ├── dailog_bg.png │ │ ├── date_icon.png │ │ ├── default_bg.png │ │ ├── encryptWallet_icon.png │ │ ├── icon.png │ │ ├── icon_encrypt.png │ │ ├── icon_encrypt_hover.png │ │ ├── icon_lock_money.png │ │ ├── icon_lock_money_hover.png │ │ ├── iconified.png │ │ ├── iconifiedH.png │ │ ├── importWallet_icon.png │ │ ├── loading.gif │ │ ├── menu_bg.png │ │ ├── network_icon.png │ │ ├── popup_bg.png │ │ ├── refimg.gif │ │ ├── reset_icon.png │ │ ├── saveH_icon.png │ │ ├── save_icon.png │ │ ├── sellerRecord_icon.png │ │ ├── sendAmount_icon.png │ │ ├── send_icon.png │ │ ├── settings_icon.png │ │ ├── start_bg.png │ │ ├── transactionRecord_icon.png │ │ ├── unconfirmed.png │ │ ├── verify_icon.png │ │ ├── wallet_logo.png │ │ └── wechat_icon.png │ │ ├── log4j.xml │ │ └── resources │ │ ├── css │ │ ├── Settings.css │ │ ├── accountInfo.css │ │ ├── antiCounterfeiting.css │ │ ├── changeWalletPassword.css │ │ ├── confirmDailog.css │ │ ├── consensus.css │ │ ├── console.css │ │ ├── dailogDecoration.css │ │ ├── decoration.css │ │ ├── sendAmount.css │ │ ├── startPage.css │ │ ├── tableView.css │ │ ├── tipWindows.css │ │ ├── transfer.css │ │ └── wallet.css │ │ └── template │ │ ├── accountInfo.fxml │ │ ├── antiCounterfeiting.fxml │ │ ├── antifake.fxml │ │ ├── applicationList.fxml │ │ ├── businessRecord.fxml │ │ ├── changeCertAccountPassword.fxml │ │ ├── changeWalletPassword.fxml │ │ ├── consensus.fxml │ │ ├── console.fxml │ │ ├── dailogDecoration.fxml │ │ ├── decoration.fxml │ │ ├── decryptWallet.fxml │ │ ├── encryptWallet.fxml │ │ ├── flow.fxml │ │ ├── lockMoney.fxml │ │ ├── main.fxml │ │ ├── myProductList.fxml │ │ ├── nodeInfo.fxml │ │ ├── sendAmount.fxml │ │ ├── setAlias.fxml │ │ ├── startPage.fxml │ │ ├── startupFailed.fxml │ │ ├── systemInfo.fxml │ │ ├── systemSettings.fxml │ │ ├── transactionRecord.fxml │ │ ├── transfer.fxml │ │ ├── updateAlias.fxml │ │ ├── updateVersion.fxml │ │ ├── verifyResult.fxml │ │ └── weChatCode.fxml │ └── test │ ├── java │ └── org │ │ └── inchain │ │ └── client │ │ └── Daemon.java │ └── resources │ ├── config.properties │ └── log4j.xml ├── inchain-core ├── .gitignore ├── Readme.txt ├── install.bat ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── inchain │ │ │ ├── Configure.java │ │ │ ├── NativeSecp256k1.java │ │ │ ├── NativeSecp256k1Util.java │ │ │ ├── Secp256k1Context.java │ │ │ ├── SpringContextUtils.java │ │ │ ├── account │ │ │ ├── Account.java │ │ │ ├── AccountBody.java │ │ │ ├── AccountTool.java │ │ │ ├── Address.java │ │ │ └── RedeemData.java │ │ │ ├── consensus │ │ │ ├── CarditConsensusMeeting.java │ │ │ ├── CarditConsensusMeeting2.java │ │ │ ├── CarditConsensusMeeting3.java │ │ │ ├── ConsensusAccount.java │ │ │ ├── ConsensusInfos.java │ │ │ ├── ConsensusMeeting.java │ │ │ ├── ConsensusModel.java │ │ │ ├── ConsensusPool.java │ │ │ ├── ConsensusPoolCacher.java │ │ │ ├── MeetingItem.java │ │ │ ├── Mining.java │ │ │ ├── MiningInfos.java │ │ │ ├── MiningService.java │ │ │ └── TimeoutConsensusViolation.java │ │ │ ├── core │ │ │ ├── AccountKeyValue.java │ │ │ ├── AntifakeCode.java │ │ │ ├── AntifakeInfosResult.java │ │ │ ├── Assets.java │ │ │ ├── BroadcastContext.java │ │ │ ├── BroadcastMakeAntifakeCodeResult.java │ │ │ ├── BroadcastResult.java │ │ │ ├── Broadcaster.java │ │ │ ├── BroadcasterComponent.java │ │ │ ├── ByteHash.java │ │ │ ├── Coin.java │ │ │ ├── DataSynchronizeHandler.java │ │ │ ├── Definition.java │ │ │ ├── GetDataResult.java │ │ │ ├── KeyValue.java │ │ │ ├── KeyValuePair.java │ │ │ ├── NotBroadcastBlockViolationEvidence.java │ │ │ ├── Peer.java │ │ │ ├── PeerAddress.java │ │ │ ├── PeerSocketHandler.java │ │ │ ├── Product.java │ │ │ ├── ProductKeyValue.java │ │ │ ├── RepeatBlockViolationEvidence.java │ │ │ ├── Result.java │ │ │ ├── ThreadNameDefinition.java │ │ │ ├── ThreadServer.java │ │ │ ├── TimeService.java │ │ │ ├── UnsafeByteArrayOutputStream.java │ │ │ ├── VarInt.java │ │ │ ├── VerifyAntifakeCodeResult.java │ │ │ ├── ViolationEvidence.java │ │ │ └── exception │ │ │ │ ├── AccountEncryptedException.java │ │ │ │ ├── AddressFormatException.java │ │ │ │ ├── CertAcountStateException.java │ │ │ │ ├── ContentErrorExcetption.java │ │ │ │ ├── MoneyNotEnoughException.java │ │ │ │ ├── ProductStateException.java │ │ │ │ ├── ProtocolException.java │ │ │ │ ├── ScriptException.java │ │ │ │ ├── StateException.java │ │ │ │ ├── VerificationException.java │ │ │ │ └── WrongNetworkException.java │ │ │ ├── crypto │ │ │ ├── AESEncrypt.java │ │ │ ├── ECKey.java │ │ │ ├── EncryptableItem.java │ │ │ ├── EncryptedData.java │ │ │ ├── KeyCrypterException.java │ │ │ ├── LazyECPoint.java │ │ │ ├── LinuxSecureRandom.java │ │ │ ├── Sha256Hash.java │ │ │ ├── Sha512Hash.java │ │ │ └── TransactionSignature.java │ │ │ ├── db │ │ │ ├── Db.java │ │ │ └── LevelDB.java │ │ │ ├── filter │ │ │ ├── BloomFilter.java │ │ │ └── InventoryFilter.java │ │ │ ├── kits │ │ │ ├── AccountKit.java │ │ │ ├── AppKit.java │ │ │ └── PeerKit.java │ │ │ ├── listener │ │ │ ├── BlockChangedListener.java │ │ │ ├── BlockDownendListener.java │ │ │ ├── ConnectionChangedListener.java │ │ │ ├── EnoughAvailablePeersListener.java │ │ │ ├── Listener.java │ │ │ ├── NewInConnectionListener.java │ │ │ ├── NoticeListener.java │ │ │ ├── TransactionListener.java │ │ │ └── VersionUpdateListener.java │ │ │ ├── mempool │ │ │ ├── Mempool.java │ │ │ └── MempoolContainer.java │ │ │ ├── message │ │ │ ├── AddressMessage.java │ │ │ ├── Block.java │ │ │ ├── BlockHeader.java │ │ │ ├── ConsensusMessage.java │ │ │ ├── DataNotFoundMessage.java │ │ │ ├── DefaultMessageSerializer.java │ │ │ ├── EmptyMessage.java │ │ │ ├── GetAddressMessage.java │ │ │ ├── GetBlocksMessage.java │ │ │ ├── GetDatasMessage.java │ │ │ ├── InventoryItem.java │ │ │ ├── InventoryMessage.java │ │ │ ├── Message.java │ │ │ ├── MessageSerializer.java │ │ │ ├── NewBlockMessage.java │ │ │ ├── PingMessage.java │ │ │ ├── PongMessage.java │ │ │ ├── RejectMessage.java │ │ │ ├── UnknownMessage.java │ │ │ ├── VerackMessage.java │ │ │ └── VersionMessage.java │ │ │ ├── msgprocess │ │ │ ├── AddressMessageProcess.java │ │ │ ├── BlockMessageProcess.java │ │ │ ├── ConsensusMessageProcess.java │ │ │ ├── DataNotFoundMessageProcess.java │ │ │ ├── DefaultMessageProcessFactory.java │ │ │ ├── GetBlocksMessageProcess.java │ │ │ ├── GetDatasMessageProcess.java │ │ │ ├── InventoryMessageProcess.java │ │ │ ├── MessageProcess.java │ │ │ ├── MessageProcessFactory.java │ │ │ ├── MessageProcessResult.java │ │ │ ├── NewBlockMessageProcess.java │ │ │ ├── PingMessageProcess.java │ │ │ ├── PongMessageProcess.java │ │ │ ├── TransactionMessageProcess.java │ │ │ ├── UnknownMessageProcess.java │ │ │ ├── VerackMessageProcess.java │ │ │ └── VersionMessageProcess.java │ │ │ ├── net │ │ │ ├── AbstractTimeoutHandler.java │ │ │ ├── ClientConnectionManager.java │ │ │ ├── ConnectionHandler.java │ │ │ ├── MessageWriteTarget.java │ │ │ ├── NioClientManager.java │ │ │ ├── StreamConnection.java │ │ │ └── StreamConnectionFactory.java │ │ │ ├── network │ │ │ ├── MainNetworkParams.java │ │ │ ├── NetworkParams.java │ │ │ ├── Networks.java │ │ │ ├── NodeSeedManager.java │ │ │ ├── PeerAddressStore.java │ │ │ ├── PeerDiscovery.java │ │ │ ├── PeerDiscoveryService.java │ │ │ ├── RemoteSeedManager.java │ │ │ ├── Seed.java │ │ │ ├── SeedManager.java │ │ │ ├── TestNetworkParams.java │ │ │ └── UnitNetworkParams.java │ │ │ ├── rpc │ │ │ ├── RPCClient.java │ │ │ ├── RPCHanlder.java │ │ │ ├── RPCServer.java │ │ │ ├── RPCService.java │ │ │ ├── RPCServiceImpl.java │ │ │ └── Server.java │ │ │ ├── rule │ │ │ └── SystemRule.java │ │ │ ├── script │ │ │ ├── Script.java │ │ │ ├── ScriptBuilder.java │ │ │ ├── ScriptChunk.java │ │ │ └── ScriptOpCodes.java │ │ │ ├── service │ │ │ ├── BlockForkService.java │ │ │ ├── CreditCollectionService.java │ │ │ ├── SystemStatusService.java │ │ │ └── impl │ │ │ │ ├── BlockForkServiceImpl.java │ │ │ │ ├── CreditCollectionServiceImpl.java │ │ │ │ ├── SystemStatusServiceImpl.java │ │ │ │ └── VersionService.java │ │ │ ├── signers │ │ │ ├── LocalTransactionSigner.java │ │ │ └── TransactionSigner.java │ │ │ ├── store │ │ │ ├── AccountStore.java │ │ │ ├── BaseStoreProvider.java │ │ │ ├── BlockForkStore.java │ │ │ ├── BlockHeaderStore.java │ │ │ ├── BlockStore.java │ │ │ ├── BlockStoreProvider.java │ │ │ ├── ChainstateStoreProvider.java │ │ │ ├── Store.java │ │ │ ├── StoreProvider.java │ │ │ ├── TransactionStore.java │ │ │ └── TransactionStoreProvider.java │ │ │ ├── transaction │ │ │ ├── Input.java │ │ │ ├── Output.java │ │ │ ├── Transaction.java │ │ │ ├── TransactionInput.java │ │ │ ├── TransactionOutput.java │ │ │ └── business │ │ │ │ ├── AntifakeCodeBindTransaction.java │ │ │ │ ├── AntifakeCodeMakeTransaction.java │ │ │ │ ├── AntifakeCodeVerifyTransaction.java │ │ │ │ ├── AntifakeTransferTransaction.java │ │ │ │ ├── AssetsIssuedTransaction.java │ │ │ │ ├── AssetsRegisterTransaction.java │ │ │ │ ├── AssetsTransferTransaction.java │ │ │ │ ├── BaseCommonlyTransaction.java │ │ │ │ ├── CertAccountRegisterTransaction.java │ │ │ │ ├── CertAccountRevokeTransaction.java │ │ │ │ ├── CertAccountTransaction.java │ │ │ │ ├── CertAccountUpdateTransaction.java │ │ │ │ ├── CirculationTransaction.java │ │ │ │ ├── CommonlyTransaction.java │ │ │ │ ├── CreditTransaction.java │ │ │ │ ├── GeneralAntifakeTransaction.java │ │ │ │ ├── ProductTransaction.java │ │ │ │ ├── RegAliasTransaction.java │ │ │ │ ├── RegConsensusTransaction.java │ │ │ │ ├── RelevanceSubAccountTransaction.java │ │ │ │ ├── RemConsensusTransaction.java │ │ │ │ ├── RemoveSubAccountTransaction.java │ │ │ │ ├── UnkonwTransaction.java │ │ │ │ ├── UpdateAliasTransaction.java │ │ │ │ └── ViolationTransaction.java │ │ │ ├── utils │ │ │ ├── Base58.java │ │ │ ├── BaseEncoding.java │ │ │ ├── ByteArrayTool.java │ │ │ ├── ByteStreams.java │ │ │ ├── ConsensusCalculationUtil.java │ │ │ ├── ContextPropagatingThreadFactory.java │ │ │ ├── DateUtil.java │ │ │ ├── Hex.java │ │ │ ├── Ints.java │ │ │ ├── IpUtil.java │ │ │ ├── RandomUtil.java │ │ │ ├── RequestUtil.java │ │ │ ├── StringUtil.java │ │ │ ├── ToStringHelper.java │ │ │ └── Utils.java │ │ │ └── validator │ │ │ ├── BlockValidator.java │ │ │ ├── RuleValidator.java │ │ │ ├── TransactionValidator.java │ │ │ ├── TransactionValidatorResult.java │ │ │ ├── Validator.java │ │ │ └── ValidatorResult.java │ └── resources │ │ └── placeholder │ └── test │ ├── java │ └── org │ │ └── inchain │ │ ├── TestNetBaseTestCase.java │ │ ├── UnitBaseTestCase.java │ │ ├── account │ │ └── AccountTest.java │ │ ├── core │ │ ├── AccountTest.java │ │ ├── AppKitTest.java │ │ ├── MainServer.java │ │ ├── MakeUnitGengsisBlock.java │ │ └── SignTest.java │ │ ├── db │ │ └── LevelDBTest.java │ │ ├── net │ │ ├── PeerGroupTest.java │ │ └── PeerGroupTest2.java │ │ ├── network │ │ └── SeedManagerTest.java │ │ ├── rpc │ │ ├── RPCTest.java │ │ ├── RpcClientTest.java │ │ └── ServerTest.java │ │ ├── store │ │ ├── BlockStoreProvderTest.java │ │ └── ChainstateStoreProviderTest.java │ │ ├── test │ │ ├── Base16Test.java │ │ ├── Base58Test.java │ │ ├── ECkeyTest.java │ │ ├── MessageTest.java │ │ ├── SHA256Test.java │ │ ├── SpringTest.java │ │ ├── Test.java │ │ └── ThreadLockTest.java │ │ └── transaction │ │ ├── AntifakeCodeMakeTransactionTest.java │ │ ├── AntifakeCodeVerifyTransactionTest.java │ │ ├── CertAccountRegisterTransactionTest.java │ │ ├── CertAccountRegisterTransactionTest2.java │ │ ├── CertAccountRegisterTransactionTest3.java │ │ ├── CertAccountRegisterTransactionTest5.java │ │ ├── GeneralAntifakeTransactionTest.java │ │ ├── ProductTransactionTest.java │ │ ├── RegConsensusTranslationTest.java │ │ └── TranslationTest.java │ └── resources │ ├── applicationContext-mainnet.xml │ ├── applicationContext-testnet.xml │ ├── applicationContext-unit.xml │ ├── applicationContext.xml │ ├── config.properties │ └── log4j.xml ├── inchain-tools ├── .gitignore ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── inchain │ │ │ ├── account │ │ │ └── RegisterAccount.java │ │ │ ├── block │ │ │ └── MakeTestNetGengsisBlock.java │ │ │ ├── kit │ │ │ ├── AppKitDemo.java │ │ │ └── MainServer.java │ │ │ └── transaction │ │ │ └── MakeCertAccountRegisterTransaction.java │ └── resources │ │ ├── applicationContext-mainnet.xml │ │ ├── applicationContext-testnet.xml │ │ ├── applicationContext-unit.xml │ │ ├── applicationContext.xml │ │ ├── config.properties │ │ └── log4j.xml │ └── test │ ├── java │ └── org │ │ └── inchain │ │ ├── TestNetBaseTestCase.java │ │ └── UnitBaseTestCase.java │ └── resources │ └── log4j.xml ├── pom.xml └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | /data 2 | /logs 3 | /.idea 4 | /target 5 | *.class 6 | *.classpath 7 | *.iml 8 | *.log 9 | *.logs 10 | -------------------------------------------------------------------------------- /Readme.txt: -------------------------------------------------------------------------------- 1 | 部署流程: 2 | 1 安装jdk , 版本需 >= 1.8 3 | 2 安装maven,并设置好环境变量,在cmd里输入mvn -version验证是否安装正确 4 | 3 在cmd里进入inchain-core目录,运行install.bat 5 | 4 在cmd里进入inchain(父级目录),运行命令 mvn eclipse:eclipse 6 | 5 导入项目到eclipse里 7 | 6 设置M2_REPO 8 | 9 | 注:3-4步也可运行deploy-eclipse.bat代替 10 | 11 | 更多资料请到 http://bbs.inchain.org/forumdisplay.php?fid=7 查阅 -------------------------------------------------------------------------------- /deploy-eclipse.bat: -------------------------------------------------------------------------------- 1 | echo into core dir ............... 2 | cd inchain-core 3 | 4 | echo install core jar to maven ............... 5 | call install.bat 6 | 7 | cd ../ 8 | 9 | mvn clean install -Dmaven.test.skip=true 10 | mvn eclipse:eclipse -------------------------------------------------------------------------------- /inchain-client/.gitignore: -------------------------------------------------------------------------------- 1 | /data 2 | /logs 3 | /.idea 4 | /target 5 | *.class 6 | *.classpath 7 | *.iml 8 | *.log 9 | *.logs -------------------------------------------------------------------------------- /inchain-client/Readme.txt: -------------------------------------------------------------------------------- 1 | 要打包程序,运行package.bat命令 -------------------------------------------------------------------------------- /inchain-client/assembly.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | ${inchain.version}-bin 6 | 7 | 8 | 9 | tar.gz 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | false 19 | lib 20 | runtime 21 | 22 | 23 | 24 | 25 | 26 | 27 | ${basedir}/scripts 28 | bin 29 | 755 30 | 755 31 | 32 | 33 | ${basedir}/src/main/resources 34 | 35 | 36 | 37 | conf 38 | 39 | 40 | ${basedir}/src/test/resources 41 | conf 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | ${basedir}/target/inchain-client-${inchain.version}.jar 50 | lib 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /inchain-client/package.bat: -------------------------------------------------------------------------------- 1 | echo goto core dir .............. 2 | cd ../inchain-core 3 | 4 | echo install core ............... 5 | call install.bat 6 | 7 | echo back client dir ............... 8 | cd ../inchain-client/ 9 | 10 | echo package ............... 11 | mvn clean package -Dmaven.test.skip=true -------------------------------------------------------------------------------- /inchain-client/scripts/1.bat: -------------------------------------------------------------------------------- 1 | cmd -------------------------------------------------------------------------------- /inchain-client/scripts/inchain_cli: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PRG="$0" 3 | 4 | while [ -h "$PRG" ]; do 5 | ls=`ls -ld "$PRG"` 6 | link=`expr "$ls" : '.*-> \(.*\)$'` 7 | if expr "$link" : '.*/.*' > /dev/null; then 8 | PRG="$link" 9 | else 10 | PRG=`dirname "$PRG"`/"$link" 11 | fi 12 | done 13 | 14 | # Get standard environment variables 15 | 16 | PRGDIR=`dirname "$PRG"` 17 | SERVER_HOME=`cd "$PRGDIR/.." ; pwd` 18 | 19 | if [ -z "$JAVA_HOME" ]; then 20 | JAVA_HOME=$SERVER_HOME/jre 21 | fi 22 | 23 | # Get standard Java environment variables 24 | if [ -r "$SERVER_HOME"/bin/setclasspath.sh ]; then 25 | BASEDIR="$SERVER_HOME" 26 | . "$SERVER_HOME"/bin/setclasspath.sh 27 | else 28 | echo "Cannot find $SERVER_HOME/bin/setclasspath.sh" 29 | echo "This file is needed to run this program" 30 | exit 1 31 | fi 32 | 33 | for f in $SERVER_HOME/lib/*.jar; do 34 | CLASSPATH=${CLASSPATH}:$f; 35 | done 36 | 37 | if [ -d "$SERVER_HOME/conf" ]; then 38 | CLASSPATH=${CLASSPATH}:$SERVER_HOME/conf 39 | fi 40 | 41 | if [ "$1" = "" ] ; then 42 | exec "Usage: inchain_cli ( commands ... )" 43 | fi 44 | 45 | if [ "$1" != "" ] ; then 46 | exec "$_RUNJAVA" $JAVA_OPTS -DserverHome=$SERVER_HOME -cp "$CLASSPATH" org.inchain.rpc.RPCClient "$@" 47 | fi 48 | -------------------------------------------------------------------------------- /inchain-client/scripts/inchain_gui: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PRG="$0" 3 | 4 | while [ -h "$PRG" ]; do 5 | ls=`ls -ld "$PRG"` 6 | link=`expr "$ls" : '.*-> \(.*\)$'` 7 | if expr "$link" : '.*/.*' > /dev/null; then 8 | PRG="$link" 9 | else 10 | PRG=`dirname "$PRG"`/"$link" 11 | fi 12 | done 13 | 14 | # Get standard environment variables 15 | JAVA_OPTS="-server -Xms512m -Xmx1024m" 16 | 17 | PRGDIR=`dirname "$PRG"` 18 | SERVER_HOME=`cd "$PRGDIR/.." ; pwd` 19 | 20 | if [ -z "$JAVA_HOME" ]; then 21 | JAVA_HOME=$SERVER_HOME/jre 22 | fi 23 | 24 | # Get standard Java environment variables 25 | if [ -r "$SERVER_HOME"/bin/setclasspath.sh ]; then 26 | BASEDIR="$SERVER_HOME" 27 | . "$SERVER_HOME"/bin/setclasspath.sh 28 | else 29 | echo "Cannot find $SERVER_HOME/bin/setclasspath.sh" 30 | echo "This file is needed to run this program" 31 | exit 1 32 | fi 33 | 34 | # add conf to classpath 35 | if [ -d "$SERVER_HOME/conf" ]; then 36 | CLASSPATH=${CLASSPATH}:$SERVER_HOME/conf 37 | fi 38 | 39 | # add jar to CLASSPATH 40 | for f in $SERVER_HOME/*.jar; do 41 | CLASSPATH=${CLASSPATH}:$f; 42 | done 43 | 44 | 45 | # add libs to CLASSPATH 46 | for f in $SERVER_HOME/lib/*.jar; do 47 | CLASSPATH=${CLASSPATH}:$f; 48 | done 49 | 50 | # ----- Execute The Requested Command ----------------------------------------- 51 | echo "Using SERVER_HOME: $SERVER_HOME" 52 | echo "Using JAVA_HOME: $JAVA_HOME" 53 | 54 | if [ "$1" = "" ] ; then 55 | exec "Usage: inchain ( commands ... )" 56 | fi 57 | 58 | if [ "$1" != "" ] ; then 59 | exec "$_RUNJAVA" $JAVA_OPTS -cp "$CLASSPATH" org.inchain.wallet.Main start & 60 | fi 61 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/Constant.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet; 2 | 3 | /** 4 | * 常量 5 | * @author ln 6 | * 7 | */ 8 | public final class Constant { 9 | 10 | /** 11 | * 程序标题 12 | */ 13 | public static final String APP_TITLE = "Inchain-印证一切、链接所有"; 14 | 15 | /** 16 | * 托盘描述 17 | */ 18 | public static final String TRAY_DESC = "印链\r\n印证一切\r\n链接所有"; 19 | 20 | /** 21 | * 图标 22 | */ 23 | public static final String APP_ICON = "/images/icon.png"; 24 | 25 | /** 26 | * 交易确认数 27 | * */ 28 | public static final long CONFIRM_NUMBER = 6; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/Context.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import javafx.stage.Stage; 7 | 8 | /** 9 | * 全局环境变量 10 | * @author ln 11 | * 12 | */ 13 | public class Context { 14 | private static Map stages = new HashMap(); 15 | 16 | public static boolean addStage(String name, Stage stage) { 17 | return stages.put(name, stage) != null; 18 | } 19 | 20 | public static Stage getStage(String name) { 21 | return stages.get(name); 22 | } 23 | 24 | public static Stage deleteStage(String name) { 25 | return stages.remove(name); 26 | } 27 | 28 | public static Stage getMainStage() { 29 | return stages.get("main"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/ApplicationListController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | import java.io.IOException; 4 | import javafx.fxml.FXMLLoader; 5 | import javafx.scene.control.Button; 6 | import javafx.scene.layout.AnchorPane; 7 | import javafx.scene.layout.Pane; 8 | import javafx.scene.layout.StackPane; 9 | 10 | public class ApplicationListController implements SubPageController{ 11 | 12 | public Button antiCounterfeitingId; //防伪溯源 13 | public AnchorPane antiCounterfeitingBodyId; 14 | 15 | public StackPane contentId; //子页面内容控件 16 | 17 | /** 18 | * FXMLLoader 调用的初始化 19 | */ 20 | public void initialize() { 21 | antiCounterfeitingId.setOnAction(e->antiCounterfeiting()); 22 | } 23 | 24 | @Override 25 | public void initDatas() { 26 | 27 | } 28 | 29 | private void antiCounterfeiting() { 30 | Pane page = null; 31 | FXMLLoader loader = new FXMLLoader(getClass().getResource("/resources/template/antiCounterfeiting.fxml")); 32 | try { 33 | page = loader.load(); 34 | } catch (IOException e) { 35 | e.printStackTrace(); 36 | } 37 | if(page != null) { 38 | contentId = (StackPane) antiCounterfeitingBodyId.getParent(); 39 | contentId.getChildren().clear(); 40 | contentId.getChildren().add(page); 41 | } 42 | } 43 | @Override 44 | public void onShow() { 45 | 46 | } 47 | 48 | @Override 49 | public void onHide() { 50 | 51 | } 52 | 53 | @Override 54 | public boolean refreshData() { 55 | return false; 56 | } 57 | 58 | @Override 59 | public boolean startupInit() { 60 | return false; 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/DailogController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | import org.inchain.wallet.Context; 4 | import org.inchain.wallet.utils.Callback; 5 | import org.slf4j.Logger; 6 | import org.slf4j.LoggerFactory; 7 | import org.springframework.util.StringUtils; 8 | 9 | import javafx.stage.Stage; 10 | 11 | /** 12 | * 弹出页面控制器 13 | * @author ln 14 | * 15 | */ 16 | public abstract class DailogController { 17 | 18 | protected final Logger log = LoggerFactory.getLogger(getClass()); 19 | 20 | protected Callback callback; 21 | protected String pageId; 22 | 23 | /** 24 | * 校验密码难度 25 | * @param password 26 | * @return boolean 27 | */ 28 | protected static boolean validPassword(String password) { 29 | if(StringUtils.isEmpty(password)){ 30 | return false; 31 | } 32 | if(password.length() < 6){ 33 | return false; 34 | } 35 | if(password.matches("(.*)[a-zA-z](.*)") && password.matches("(.*)\\d+(.*)")){ 36 | return true; 37 | } else { 38 | return false; 39 | } 40 | } 41 | 42 | protected void close() { 43 | Stage window = getThisStage(); 44 | if(window != null) { 45 | window.close(); 46 | } 47 | } 48 | 49 | protected Stage getThisStage() { 50 | return Context.getStage(pageId); 51 | } 52 | 53 | public Callback getCallback() { 54 | return callback; 55 | } 56 | 57 | public void setCallback(Callback callback) { 58 | this.callback = callback; 59 | } 60 | 61 | public String getPageId() { 62 | return pageId; 63 | } 64 | 65 | public void setPageId(String pageId) { 66 | this.pageId = pageId; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/StartupFailedController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | import javafx.event.Event; 4 | import javafx.event.EventHandler; 5 | import javafx.scene.control.Button; 6 | 7 | public class StartupFailedController extends DailogController{ 8 | 9 | public Button defineId; 10 | 11 | public void initialize() { 12 | defineId.setOnMouseClicked(new EventHandler() { 13 | public void handle(Event event) { 14 | System.exit(0); 15 | } 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/SubPageController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | /** 4 | * 子页面接口 5 | * @author ln 6 | * 7 | */ 8 | public interface SubPageController { 9 | 10 | /** 11 | * 初始化页面所需数据 12 | */ 13 | void initDatas(); 14 | 15 | /** 16 | * 页面显示事件 17 | */ 18 | void onShow(); 19 | 20 | /** 21 | * 页面隐藏/关闭事件 22 | */ 23 | void onHide(); 24 | 25 | /** 26 | * 当处于该页面时,是否动态刷新该页面的数据 27 | * @return boolean 28 | */ 29 | boolean refreshData(); 30 | 31 | /** 32 | * 启动的时候是否初始化数据 33 | * @return boolean 34 | */ 35 | boolean startupInit(); 36 | } 37 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/TransferController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import org.inchain.Configure; 7 | import org.inchain.utils.StringUtil; 8 | import org.inchain.wallet.utils.DailogUtil; 9 | import org.slf4j.Logger; 10 | import org.slf4j.LoggerFactory; 11 | 12 | import javafx.scene.control.Button; 13 | import javafx.scene.control.Label; 14 | import javafx.scene.control.TextArea; 15 | import javafx.scene.control.TextField; 16 | import javafx.scene.paint.Paint; 17 | 18 | public class TransferController extends DailogController{ 19 | 20 | private static final Logger log = LoggerFactory.getLogger(TransferController.class); 21 | 22 | public Label tips; 23 | public Button transferId; 24 | public TextArea remarkId; 25 | public TextField receiverId; 26 | 27 | public void initialize() { 28 | 29 | tips.setText("转让商品会消耗" + Math.abs(Configure.TRANSFER_ANTIFAKECODE_SUB_CREDIT) + "点信用值!"); 30 | 31 | transferId.setOnAction(e-> transfer()); 32 | } 33 | 34 | private void transfer() { 35 | if(StringUtil.isEmpty(receiverId.getText().trim())) { 36 | receiverId.requestFocus(); 37 | DailogUtil.showTipDailogCenter("请输入接收人的地址/别名!",getThisStage()); 38 | return; 39 | } 40 | if(StringUtil.isEmpty(remarkId.getText().trim())) { 41 | remarkId.requestFocus(); 42 | DailogUtil.showTipDailogCenter("请输入转让备注!",getThisStage()); 43 | return; 44 | } 45 | 46 | Map map = new HashMap(); 47 | 48 | map.put("controller", this); 49 | map.put("receiver", receiverId.getText().trim()); 50 | map.put("remark", remarkId.getText().trim()); 51 | 52 | callback.ok(map); 53 | } 54 | 55 | /* 56 | * 取消 57 | */ 58 | public void resetAndclose() { 59 | remarkId.setText(""); 60 | receiverId.setText(""); 61 | close(); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/controllers/WeChatCodeController.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.controllers; 2 | 3 | import javafx.scene.image.Image; 4 | import javafx.scene.image.ImageView; 5 | import org.inchain.account.Account; 6 | import org.inchain.kit.InchainInstance; 7 | import org.inchain.kits.AccountKit; 8 | import org.inchain.utils.Base58; 9 | import org.inchain.wallet.utils.QRcodeUtil; 10 | 11 | import java.io.ByteArrayInputStream; 12 | import java.io.ByteArrayOutputStream; 13 | import java.io.InputStream; 14 | 15 | 16 | /** 17 | * 解密钱包 18 | * @author ln 19 | * 20 | */ 21 | public class WeChatCodeController extends DailogController { 22 | 23 | public ImageView codeImage; 24 | 25 | 26 | public void initialize() { 27 | Account account = null; 28 | try { 29 | AccountKit accountKit = InchainInstance.getInstance().getAccountKit(); 30 | account = accountKit.getDefaultAccount(); 31 | byte[] prikeyByte = account.getEcKey().getPrivKeyBytes(); 32 | byte[] newprikeyByte = new byte[prikeyByte.length+1]; 33 | if(account.isEncrypted()) { 34 | newprikeyByte[0]= "_".getBytes()[0]; 35 | }else { 36 | newprikeyByte[0]= "-".getBytes()[0]; 37 | } 38 | System.arraycopy(prikeyByte,0,newprikeyByte,1,prikeyByte.length); 39 | String content = Base58.encode(newprikeyByte); 40 | ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 41 | QRcodeUtil.genQrcodeToStream(content, outputStream, 220, 220); 42 | InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); 43 | Image image = new Image(inputStream); 44 | codeImage.setImage(image); 45 | }finally { 46 | if(account != null) { 47 | account.resetKey(); 48 | } 49 | } 50 | } 51 | 52 | /* 53 | * 取消 54 | */ 55 | private void resetAndclose() { 56 | close(); 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/BusinessEntity.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import org.inchain.core.AccountKeyValue; 7 | 8 | /** 9 | * 商家(认证账户) 10 | * @author ln 11 | * 12 | */ 13 | public class BusinessEntity { 14 | 15 | private int status; 16 | private byte[] logo; 17 | private String name; 18 | private List details; 19 | private long time; 20 | 21 | public BusinessEntity(int status, byte[] logo, String name, List details, long time) { 22 | super(); 23 | this.status = status; 24 | this.logo = logo; 25 | this.name = name; 26 | this.details = details; 27 | this.time = time; 28 | } 29 | public BusinessEntity() { 30 | } 31 | public int getStatus() { 32 | return status; 33 | } 34 | public void setStatus(int status) { 35 | this.status = status; 36 | } 37 | public byte[] getLogo() { 38 | return logo; 39 | } 40 | public void setLogo(byte[] logo) { 41 | this.logo = logo; 42 | } 43 | public String getName() { 44 | return name; 45 | } 46 | public void setName(String name) { 47 | this.name = name; 48 | } 49 | public List getDetails() { 50 | return details; 51 | } 52 | public void setDetails(List details) { 53 | this.details = details; 54 | } 55 | public long getTime() { 56 | return time; 57 | } 58 | public void setTime(long time) { 59 | this.time = time; 60 | } 61 | public void addDetail(AccountKeyValue keyValuePair) { 62 | if(details == null) { 63 | details = new ArrayList(); 64 | } 65 | details.add(keyValuePair); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/ConensusEntity.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | /** 4 | * 共识节点信息 5 | * @author ln 6 | * 7 | */ 8 | public class ConensusEntity { 9 | 10 | private int status; 11 | private String address; 12 | private long cert; 13 | private long time; 14 | 15 | public ConensusEntity() { 16 | } 17 | 18 | public ConensusEntity(int status, String address, long cert, long time) { 19 | super(); 20 | this.status = status; 21 | this.address = address; 22 | this.cert = cert; 23 | this.time = time; 24 | } 25 | public int getStatus() { 26 | return status; 27 | } 28 | public void setStatus(int status) { 29 | this.status = status; 30 | } 31 | public String getAddress() { 32 | return address; 33 | } 34 | public void setAddress(String address) { 35 | this.address = address; 36 | } 37 | public long getCert() { 38 | return cert; 39 | } 40 | public void setCert(long cert) { 41 | this.cert = cert; 42 | } 43 | public long getTime() { 44 | return time; 45 | } 46 | public void setTime(long time) { 47 | this.time = time; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/DetailValue.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | import java.util.Arrays; 4 | 5 | /** 6 | * 列表详情数据实体 7 | * @author ln 8 | * 9 | */ 10 | public class DetailValue { 11 | 12 | private String value; 13 | private byte[] img; 14 | 15 | public DetailValue() { 16 | } 17 | public DetailValue(String value, byte[] img) { 18 | super(); 19 | this.value = value; 20 | this.img = img; 21 | } 22 | 23 | public String getValue() { 24 | return value; 25 | } 26 | public void setValue(String value) { 27 | this.value = value; 28 | } 29 | public byte[] getImg() { 30 | return img; 31 | } 32 | public void setImg(byte[] img) { 33 | this.img = img; 34 | } 35 | @Override 36 | public String toString() { 37 | return "DetailValue [value=" + value + ", img=" + Arrays.toString(img) + "]"; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/MyProductListEntity.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | /** 4 | * 我的商品列表 5 | * */ 6 | public class MyProductListEntity { 7 | 8 | private String name; //名称 9 | private String business; //商家 10 | private String verifyCode; //防伪码 11 | private String result; //验证结果 12 | private String time; //时间 13 | private String operating; //操作 14 | 15 | public String getName() { 16 | return name; 17 | } 18 | 19 | public void setName(String name) { 20 | this.name = name; 21 | } 22 | 23 | public String getBusiness() { 24 | return business; 25 | } 26 | 27 | public void setBusiness(String business) { 28 | this.business = business; 29 | } 30 | 31 | public String getVerifyCode() { 32 | return verifyCode; 33 | } 34 | 35 | public void setVerifyCode(String verifyCode) { 36 | this.verifyCode = verifyCode; 37 | } 38 | 39 | public String getResult() { 40 | return result; 41 | } 42 | 43 | public void setResult(String result) { 44 | this.result = result; 45 | } 46 | 47 | public String getTime() { 48 | return time; 49 | } 50 | 51 | public void setTime(String time) { 52 | this.time = time; 53 | } 54 | 55 | public String getOperating() { 56 | return operating; 57 | } 58 | 59 | public void setOperating(String operating) { 60 | this.operating = operating; 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/NodeInfoEntity.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | public class NodeInfoEntity { 4 | 5 | private String ip; 6 | private String version; 7 | private String sort; 8 | private String time; 9 | private String offsetTime; 10 | private String duration; 11 | private String types; 12 | 13 | public NodeInfoEntity(String ip,String version,String sort,String time,String offsetTime,String duration,String types) { 14 | this.ip = ip; 15 | this.version = version; 16 | this.sort = sort; 17 | this.time = time; 18 | this.offsetTime = offsetTime; 19 | this.duration = duration; 20 | this.types = types; 21 | } 22 | public String getIp() { 23 | return ip; 24 | } 25 | public void setIp(String ip) { 26 | this.ip = ip; 27 | } 28 | public String getVersion() { 29 | return version; 30 | } 31 | public void setVersion(String version) { 32 | this.version = version; 33 | } 34 | public String getSort() { 35 | return sort; 36 | } 37 | public void setSort(String sort) { 38 | this.sort = sort; 39 | } 40 | public String getTime() { 41 | return time; 42 | } 43 | public void setTime(String time) { 44 | this.time = time; 45 | } 46 | public String getOffsetTime() { 47 | return offsetTime; 48 | } 49 | public void setOffsetTime(String offsetTime) { 50 | this.offsetTime = offsetTime; 51 | } 52 | public String getDuration() { 53 | return duration; 54 | } 55 | public void setDuration(String duration) { 56 | this.duration = duration; 57 | } 58 | public String getTypes() { 59 | return types; 60 | } 61 | public void setTypes(String types) { 62 | this.types = types; 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/entity/Point.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.entity; 2 | 3 | public class Point { 4 | 5 | private double x; 6 | private double y; 7 | 8 | public Point(double x, double y) { 9 | this.x = x; 10 | this.y = y; 11 | } 12 | public double getX() { 13 | return x; 14 | } 15 | public void setX(double x) { 16 | this.x = x; 17 | } 18 | public double getY() { 19 | return y; 20 | } 21 | public void setY(double y) { 22 | this.y = y; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/listener/AccountInfoListener.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.listener; 2 | 3 | import org.inchain.account.Account; 4 | 5 | /** 6 | * 账户信息监听器 7 | * @author ln 8 | * 9 | */ 10 | public interface AccountInfoListener { 11 | 12 | /** 13 | * 加载完成 14 | * @param account 账户 15 | */ 16 | void onLoad(Account account); 17 | } 18 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/listener/StartupListener.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.listener; 2 | 3 | /** 4 | * 程序启动监听 5 | * @author ln 6 | * 7 | */ 8 | public interface StartupListener { 9 | 10 | /** 11 | * 启动状态变化 12 | * @param tip 当前加载的项目 13 | */ 14 | void onChange(String tip); 15 | 16 | /** 17 | * 启动完成 18 | */ 19 | void onComplete(); 20 | 21 | /** 22 | * 获取进度 23 | * @return int 24 | */ 25 | int getCompletionRate(); 26 | 27 | /** 28 | * 设置进度 29 | * @param completionRate 加载完成率 30 | */ 31 | void setCompletionRate(int completionRate); 32 | } 33 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/listener/WindowCloseEvent.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.listener; 2 | 3 | import javafx.event.ActionEvent; 4 | 5 | /** 6 | * 窗口关闭按钮事件 7 | * @author ln 8 | * 9 | */ 10 | public class WindowCloseEvent extends ActionEvent { 11 | 12 | private static final long serialVersionUID = -9068803516227503080L; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /inchain-client/src/main/java/org/inchain/wallet/utils/Callback.java: -------------------------------------------------------------------------------- 1 | package org.inchain.wallet.utils; 2 | 3 | public abstract class Callback { 4 | public abstract void ok(Object param); 5 | public void cancel(Object param) {} 6 | } 7 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/applicationContext-mainnet.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/applicationContext-testnet.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/applicationContext-unit.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/applicationContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/config.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/config.properties -------------------------------------------------------------------------------- /inchain-client/src/main/resources/css/main.css: -------------------------------------------------------------------------------- 1 | 2 | .root{ 3 | -fx-background-repeat: repeat; 4 | -fx-background-size: cover; 5 | } 6 | #loginPane{ 7 | -fx-background-radius:7; 8 | -fx-padding:10,10,20,10; 9 | -fx-background-color:white; 10 | 11 | } 12 | CheckBox{ 13 | -fx-text-fill:#fff; 14 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/Dailogclose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/Dailogclose.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/accountInfo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/accountInfo_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/antifake_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/antifake_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/backupWallet_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/backupWallet_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/block_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/block_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/button_bgHL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/button_bgHL.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/cancelH_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/cancelH_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/cancel_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/cancel_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/changepasswordH_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/changepasswordH_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/changepassword_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/changepassword_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/close.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/closeHL_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/closeHL_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/confirmed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/confirmed.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/consensusRecord_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/consensusRecord_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/console.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/console_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/console_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/dailogCloseHL_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/dailogCloseHL_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/dailog_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/dailog_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/date_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/date_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/default_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/default_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/encryptWallet_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/encryptWallet_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/icon_encrypt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/icon_encrypt.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/icon_encrypt_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/icon_encrypt_hover.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/icon_lock_money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/icon_lock_money.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/icon_lock_money_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/icon_lock_money_hover.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/iconified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/iconified.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/iconifiedH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/iconifiedH.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/importWallet_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/importWallet_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/loading.gif -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/menu_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/menu_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/network_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/network_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/popup_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/popup_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/refimg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/refimg.gif -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/reset_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/reset_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/saveH_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/saveH_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/save_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/save_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/sellerRecord_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/sellerRecord_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/sendAmount_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/sendAmount_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/send_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/send_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/settings_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/settings_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/start_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/start_bg.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/transactionRecord_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/transactionRecord_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/unconfirmed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/unconfirmed.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/verify_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/verify_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/wallet_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/wallet_logo.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/images/wechat_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inchaincodes/inchain/f39b21c6729f363b4011a937ddf47ec94c423f56/inchain-client/src/main/resources/images/wechat_icon.png -------------------------------------------------------------------------------- /inchain-client/src/main/resources/log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/Settings.css: -------------------------------------------------------------------------------- 1 | Button{ 2 | -fx-background-radius: 2; 3 | -fx-border-style: null; 4 | -fx-border-color: #6585dc; 5 | -fx-background-color: #4b6bc1; 6 | -fx-text-fill:WHITE; 7 | -fx-font-name:Microsoft YaHei; 8 | -fx-font-size:14; 9 | -fx-alignment:BASELINE_CENTER; 10 | } 11 | 12 | Button:hover{ 13 | -fx-border-color:#506fc3; 14 | -fx-background-color: #3b5aac; 15 | } 16 | .systemInfoButtonId { 17 | -fx-background-radius: 5 0 0 5; 18 | -fx-border-radius: 5 0 0 5; 19 | } 20 | .nodeInfoButtonId { 21 | -fx-background-radius: 0 5 5 0; 22 | -fx-border-radius: 0 5 5 0; 23 | } 24 | 25 | .consoleId { 26 | -fx-background-radius: 5; 27 | -fx-border-radius: 5; 28 | } 29 | 30 | .table-row-cell { 31 | -fx-cell-size: 50px; 32 | } 33 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/antiCounterfeiting.css: -------------------------------------------------------------------------------- 1 | Button{ 2 | -fx-background-radius: 2; 3 | -fx-border-radius: 2; 4 | -fx-border-color:#6585dc; 5 | -fx-background-color: #4b6bc1; 6 | -fx-text-fill:WHITE; 7 | -fx-font-name:Microsoft YaHei; 8 | -fx-font-size:14; 9 | -fx-alignment:BASELINE_CENTER; 10 | } 11 | 12 | Button:hover{ 13 | -fx-border-color:#506fc3; 14 | -fx-background-color: #3b5aac; 15 | } 16 | 17 | .table-row-cell { 18 | -fx-cell-size: 50px; 19 | } 20 | .antifakeBut { 21 | -fx-background-radius: 5 0 0 5; 22 | -fx-border-radius: 5 0 0 5; 23 | } 24 | .flowBut { 25 | -fx-background-radius: 0 5 5 0; 26 | -fx-border-radius: 0 5 5 0; 27 | } 28 | .myProductBut { 29 | -fx-background-radius: 0; 30 | -fx-border-radius: 0; 31 | } 32 | .customize { 33 | -fx-text-fill: #fff; 34 | -fx-font-name:Microsoft YaHei; 35 | -fx-font-size:16; 36 | -fx-background-color: transparent; 37 | -fx-border-color: transparent; 38 | } 39 | .choiceBox { 40 | -fx-background-color: rgb(40,65,123); 41 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/changeWalletPassword.css: -------------------------------------------------------------------------------- 1 | 2 | #sure{ 3 | -fx-border-color:#6585dc; 4 | -fx-border-radius: 2; 5 | -fx-background-color:#4b6bc1; 6 | } 7 | #sure:hover{ 8 | -fx-border-color:#506fc3; 9 | -fx-background-color:#3b5aac; 10 | } 11 | #cancel{ 12 | -fx-border-color:#6585dc; 13 | -fx-border-radius: 2; 14 | -fx-background-color:#4b6bc1; 15 | } 16 | #cancel:hover{ 17 | -fx-border-color:#506fc3; 18 | -fx-background-color:#3b5aac; 19 | } 20 | PasswordField{ 21 | -fx-background-radius: 0; 22 | -fx-border-style: null; 23 | -fx-background-color: null; 24 | -fx-text-fill:WHITE; 25 | -fx-font-name:Microsoft YaHei; 26 | } 27 | #Passworditem{ 28 | -fx-border-color: transparent transparent #6da9e9 transparent; 29 | } 30 | .radio-button > .radio{ 31 | -fx-background-color: #6b82a1,#fff, #6b82a1,#6b82a1; 32 | -fx-padding: 0.2em; 33 | } 34 | .button:focused, 35 | .toggle-button:focused, 36 | .radio-button:focused > .radio { 37 | -fx-background-color:#fff,#6b82a1; 38 | } 39 | .radio-button:selected > .radio > .dot{ 40 | -fx-background-color:#6b82a1,#fff, #6b82a1,#fff; 41 | } 42 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/confirmDailog.css: -------------------------------------------------------------------------------- 1 | .root { 2 | -fx-background-image:url("/images/dailog_bg.png"); 3 | -fx-background-repeat: no-repeat; 4 | -fx-background-position: center; 5 | -fx-background-size: cover; 6 | } 7 | 8 | Button{ 9 | -fx-background-radius: 2; 10 | -fx-border-color:#6585dc; 11 | -fx-background-color: #4b6bc1; 12 | -fx-text-fill:WHITE; 13 | -fx-font-name:Microsoft YaHei; 14 | -fx-font-size:14; 15 | -fx-alignment:BASELINE_CENTER; 16 | } 17 | 18 | Button:hover{ 19 | -fx-border-color:#506fc3; 20 | -fx-background-color: #3b5aac; 21 | } 22 | 23 | Label{ 24 | -fx-text-fill:WHITE; 25 | -fx-font-name:Microsoft YaHei; 26 | -fx-font-size:14; 27 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/consensus.css: -------------------------------------------------------------------------------- 1 | .table-row-cell { 2 | -fx-cell-size: 48px; 3 | } 4 | Button{ 5 | -fx-background-radius: 2; 6 | -fx-border-color:#6585dc; 7 | -fx-background-color: #4b6bc1; 8 | -fx-text-fill:WHITE; 9 | -fx-font-name:Microsoft YaHei; 10 | -fx-font-size:14; 11 | -fx-alignment:BASELINE_CENTER; 12 | } 13 | 14 | Button:hover{ 15 | -fx-border-color:#506fc3; 16 | -fx-background-color: #3b5aac; 17 | } 18 | 19 | .textField { 20 | -fx-text-fill: #fff; 21 | -fx-background-color: transparent; 22 | -fx-border-color: #6da9e9; 23 | -fx-border-radius: 3; 24 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/dailogDecoration.css: -------------------------------------------------------------------------------- 1 | .Dailogdecoration{ 2 | -fx-background-image: url("/images/dailog_bg.png"); 3 | -fx-background-repeat: no-repeat; 4 | -fx-background-position: center; 5 | -fx-background-size: cover; 6 | } 7 | 8 | #close { 9 | -fx-background-radius: 0; 10 | -fx-border-style: null; 11 | -fx-background-color: null; 12 | -fx-background-image: url("/images/Dailogclose.png"); 13 | -fx-background-repeat: no-repeat; 14 | -fx-background-position: center; 15 | } 16 | 17 | #close:hover { 18 | -fx-background-color: null; 19 | -fx-background-image: url("/images/dailogCloseHL_bg.png"); 20 | -fx-background-repeat: no-repeat; 21 | } 22 | Label{ 23 | -fx-text-fill:WHITE; 24 | -fx-font-name:Microsoft YaHei; 25 | -fx-font-size:14; 26 | } 27 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/sendAmount.css: -------------------------------------------------------------------------------- 1 | #infoItem { 2 | -fx-border-color: transparent transparent #6da9e9 transparent; 3 | } 4 | 5 | Button { 6 | -fx-background-radius: 2; 7 | -fx-border-color: #6585dc; 8 | -fx-background-color: #4b6bc1; 9 | -fx-text-fill: WHITE; 10 | -fx-font-name: Microsoft YaHei; 11 | -fx-font-size: 14; 12 | -fx-alignment: BASELINE_CENTER; 13 | } 14 | 15 | Button:hover { 16 | -fx-border-color: #506fc3; 17 | -fx-background-color: #3b5aac; 18 | } 19 | 20 | TextField { 21 | -fx-background-radius: 0; 22 | -fx-border-style: null; 23 | -fx-background-color: null; 24 | -fx-text-fill: WHITE; 25 | -fx-font-name: Microsoft YaHei; 26 | -fx-font-size: 14; 27 | } 28 | 29 | .remark { 30 | -fx-background-radius: 0; 31 | -fx-border-style: none; 32 | -fx-background-color: null; 33 | -fx-text-fill: WHITE; 34 | -fx-font-name: Microsoft YaHei; 35 | -fx-font-size: 14; 36 | -fx-alignment: BASELINE_CENTER; 37 | } 38 | 39 | Label { 40 | -fx-text-fill: WHITE; 41 | -fx-font-name: Microsoft YaHei; 42 | -fx-font-size: 14; 43 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/startPage.css: -------------------------------------------------------------------------------- 1 | .root-pane { 2 | -fx-background-image: url("/images/start_bg.png"); 3 | -fx-background-repeat: repeat; 4 | -fx-background-size: cover; 5 | -fx-background-radius: 5.0; 6 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/css/tipWindows.css: -------------------------------------------------------------------------------- 1 | .root { 2 | -fx-background-color: rgba(63,63,63,0.8); 3 | } 4 | 5 | Label{ 6 | -fx-text-fill: #fff; 7 | -fx-font-name:Microsoft YaHei; 8 | -fx-font-size:16; 9 | } -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/template/antiCounterfeiting.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/template/applicationList.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/template/businessRecord.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /inchain-client/src/main/resources/resources/template/console.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |