Skip to content

Commit

Permalink
Start Release 0.1
Browse files Browse the repository at this point in the history
Start Release 0.1
  • Loading branch information
theotniel authored Apr 19, 2018
2 parents 2db8498 + 81b65b6 commit 1f82d61
Show file tree
Hide file tree
Showing 179 changed files with 7,006 additions and 374 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
/build
/pack
/mod/updated
/out

#IDE
*.iml
Expand Down
115 changes: 94 additions & 21 deletions build.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="aion boot"
<project basedir="." default="build_standalone" name="aion ui"
xmlns:if="ant:if" xmlns:unless="ant:unless">
<property name="parent.mod" value="../mod"/>
<property name="project.name" value="aion_ui"/>
<property name="dir.lib" value="./lib"/>
<property name="dir.mod" value="./mod"/>
<property name="dir.pack" value="./pack"/>
<property name="dir.script" value="./scripts"/>
<property name="dir.main" value="./src/main"/>
<property name="src.main" value="${dir.main}/java"/>
<property name="res.main" value="${dir.main}/resources"/>
Expand All @@ -15,32 +17,46 @@
<property name="out.test" value="./build/test"/>
<property name="test.report.dir" value="./build/report"/>

<macrodef name="git">
<attribute name="command"/>
<attribute name="dir" default=""/>
<attribute name="output" default=""/>
<element name="args" optional="true"/>
<sequential>
<echo message="git @{command}"/>
<exec executable="git" dir="@{dir}" outputproperty="@{output}">
<arg value="@{command}" />
<args/>
</exec>
<echo message="${@{output}}"/>
</sequential>
</macrodef>

<path id="classpath.dependency">
<pathelement location="${dir.mod}/modAionBase.jar"/>
</path>

<path id="classpath.test">
</path>

<target name="clean_build" depends="clean">
<antcall target="build">
<param name="compile.debug" value="${compile.debug}"/>
</antcall>
<target name="get_version_from_git">
<git command="tag" output="git.version"/>
<condition property="suffix" value="" else="-${git.version}" >
<equals arg1="${git.version}" arg2=""/>
</condition>
</target>


<target name="clean">
<delete dir="${out.main}" includeEmptyDirs="true" includes="**/*/"/>
<delete dir="${out.test}" includeEmptyDirs="true" includes="**/*/"/>
<delete dir="${test.report.dir}"/>
<delete file="${dir.mod}/*.jar"/>
<delete file="${dir.mod}/updated/*.jar"/>
<delete dir="${dir.pack}"/>
<delete dir="${dir.mod}/updated/"/>
</target>

<target name="test_build" depends="build">
<target name="test_build" depends="build_standalone">
<mkdir dir="${out.test}"/>
<javac
debug="on"
debuglevel="source,lines,vars"
includeantruntime="false"
release="9"
Expand Down Expand Up @@ -71,31 +87,29 @@
</junit>
</target>

<target name="build">
<target name="build_submodule">
<mkdir dir="${out.main}"/>
<mkdir dir="${dir.pack}"/>
<condition property="parent.exists">
<available file="${parent.mod}" type="dir"/>
</condition>
<echo unless:set="parent.exists">standaloneMode</echo>
<echo if:set="parent.exists">submoduleMode</echo>
<mkdir if:set="parent.exists" dir="${dir.mod}/updated" />
<copy if:set="parent.exists" todir="${dir.mod}/updated">
<fileset dir="${parent.mod}" includes="mod*.jar" />

<mkdir dir="${dir.mod}/updated"/>
<copy todir="${dir.mod}/updated">
<fileset dir="${parent.mod}" includes="mod*.jar"/>
</copy>
<javac
debug="${compile.debug}"
debuglevel="source,lines,vars"
includeantruntime="false"
release="9"
srcdir="./"
destdir="${out.main}"
includes="src/**/*.java,module-info.java"
excludes="src/main/java/org/aion/connector/api/**/*.java"
includes="src/main/java/**/*.java,module-info.java"
>
<modulepath>
<fileset dir="${dir.lib}" includes="*.jar"/>
<fileset if:set="parent.exists" dir="${dir.mod}" includes="*updated/*.jar"/>
<fileset unless:set="parent.exists" dir="${dir.mod}" includes="*.jar"/>
<fileset dir="${dir.lib}" excludes="*AionApi*.jar,libRlp.jar" includes="*.jar"/>
<fileset dir="${dir.mod}" includes="*updated/*.jar"/>
</modulepath>
</javac>
<copy includeemptydirs="false" todir="${out.main}">
Expand All @@ -109,6 +123,65 @@
<move includeemptydirs="false" todir="${dir.pack}">
<file file="modWallet.jar"/>
</move>
<delete dir="${dir.mod}/updated"/>
</target>

<target name="build_standalone" depends="get_version_from_git">
<mkdir dir="${out.main}"/>
<mkdir dir="${dir.pack}"/>
<condition property="parent.exists">
<available file="${parent.mod}" type="dir"/>
</condition>
<javac
debuglevel="source,lines,vars"
includeantruntime="false"
release="9"
srcdir="./"
destdir="${out.main}"
excludes="src/main/java/org/aion/connector/core/**/*.java"
includes="src/main/java/**/*.java"
>
<modulepath>
<fileset dir="${dir.lib}" includes="*.jar"/>
<fileset dir="${dir.mod}" includes="*.jar"/>
</modulepath>
</javac>
<copy includeemptydirs="false" todir="${out.main}">
<fileset dir="${res.main}" id="**"/>
</copy>
<jar
destfile="aion_ui${suffix}.jar"
filesetmanifest="mergewithoutmain"
basedir="${out.main}"
excludes="native/">
<manifest>
<attribute name="Main-Class" value="org.aion.wallet.WalletApplication"/>
<attribute name="Version" value="${git.version}"/>
</manifest>
</jar>
<move includeemptydirs="false" todir="${dir.pack}">
<file file="aion_ui${suffix}.jar"/>
</move>
</target>

<target name="pack" depends="build_standalone">
<mkdir dir="${dir.pack}"/>
<delete file="${dir.pack}/aion_ui*.tar.gz"/>
<tar destfile="${dir.pack}/aion_ui${suffix}.tar.gz" longfile="gnu" compression="gzip">
<tarfileset dir="${dir.lib}" filemode="755" prefix="${project.name}/lib">
<include name="*.jar"/>
</tarfileset>
<tarfileset dir="${dir.mod}" filemode="755" prefix="${project.name}/mod">
<include name="*.jar"/>
</tarfileset>
<tarfileset dir="${dir.pack}" filemode="755" prefix="${project.name}/mod">
<include name="aion_ui${suffix}.jar"/>
</tarfileset>
<tarfileset dir="${res.main}/native" filemode="755" prefix="${project.name}/native"/>
<tarfileset dir="${dir.script}" filemode="755" prefix="${project.name}">
<include name="aion_ui.sh"/>
</tarfileset>
</tar>
</target>

</project>
Binary file added lib/commons-collections4-4.0.jar
Binary file not shown.
Binary file added lib/gson-2.7.jar
Binary file not shown.
Binary file added lib/hamcrest-all-1.3.jar
Binary file not shown.
Binary file added lib/junit-4.12.jar
Binary file not shown.
Binary file added lib/libRlp.jar
Binary file not shown.
Binary file added lib/libnsc.jar
Binary file not shown.
Binary file added lib/libnzmq.jar
Binary file not shown.
Binary file added lib/logback-classic-1.2.3.jar
Binary file not shown.
Binary file added lib/logback-core-1.2.3.jar
Binary file not shown.
Binary file added lib/modAionApi-v0.1.5.7095c5f-2018-04-16.jar
Binary file not shown.
Binary file added lib/protobuf-java-3.5.0.jar
Binary file not shown.
Binary file added mod/modAion.jar
Binary file not shown.
Binary file modified mod/modApiServer.jar
Binary file not shown.
Binary file added mod/modCrypto.jar
Binary file not shown.
3 changes: 3 additions & 0 deletions module-info.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module aion.wallet{

requires aion.apiserver;
requires aion.crypto;
requires aion.zero;
requires aion.zero.impl;
requires aion.log;
requires aion.base;
Expand All @@ -12,6 +14,7 @@
requires javafx.controls;
requires java.desktop;
requires slf4j.api;
requires guava;

exports org.aion.wallet;
exports org.aion.wallet.ui;
Expand Down
9 changes: 9 additions & 0 deletions scripts/aion_ui.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

SCRIPT_PATH=$(dirname $(realpath $0))

pushd ${SCRIPT_PATH}

java -cp "${SCRIPT_PATH}/mod/*:${SCRIPT_PATH}/lib/*" org.aion.wallet.WalletApplication

popd
12 changes: 12 additions & 0 deletions src/main/java/org/aion/wallet/WalletApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package org.aion.wallet;

import org.aion.wallet.connector.BlockchainConnector;
import org.aion.wallet.ui.MainWindow;
import org.aion.wallet.util.ConfigUtils;

public class WalletApplication {
public static void main(String args[]) {
System.setProperty(ConfigUtils.WALLET_API_ENABLED_FLAG, "true");
javafx.application.Application.launch(MainWindow.class, args);
}
}
81 changes: 81 additions & 0 deletions src/main/java/org/aion/wallet/connector/BlockchainConnector.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package org.aion.wallet.connector;

import org.aion.wallet.connector.api.ApiBlockchainConnector;
import org.aion.wallet.connector.core.CoreBlockchainConnector;
import org.aion.wallet.connector.dto.SendRequestDTO;
import org.aion.wallet.connector.dto.SyncInfoDTO;
import org.aion.wallet.connector.dto.TransactionDTO;
import org.aion.wallet.dto.AccountDTO;
import org.aion.wallet.exception.NotFoundException;
import org.aion.wallet.exception.ValidationException;
import org.aion.wallet.storage.WalletStorage;
import org.aion.wallet.util.ConfigUtils;

import java.math.BigInteger;
import java.util.List;

public abstract class BlockchainConnector {

private static BlockchainConnector INST;

private final WalletStorage walletStorage = WalletStorage.getInstance();

public static BlockchainConnector getInstance() {
if (INST != null) {
return INST;
}
if (ConfigUtils.isEmbedded()) {
INST = new CoreBlockchainConnector();
} else {
INST = new ApiBlockchainConnector();
}
return INST;
}

public abstract void createAccount(final String password, final String name);

public abstract AccountDTO getAccount(final String address);

public String sendTransaction(final SendRequestDTO dto) throws ValidationException {
if (dto == null || !dto.validate()) {
throw new ValidationException("Invalid transaction request data");
}
if (dto.estimateValue().compareTo(getBalance(dto.getFrom())) >= 0) {
throw new ValidationException("Insufficient funds");
}
return sendTransactionInternal(dto);
}

protected abstract String sendTransactionInternal(final SendRequestDTO dto) throws ValidationException;

public abstract List<AccountDTO> getAccounts();

public abstract TransactionDTO getTransaction(final String txHash) throws NotFoundException;

public abstract List<TransactionDTO> getLatestTransactions(final String address);

public abstract boolean getConnectionStatusByConnectedPeers();

public abstract SyncInfoDTO getSyncInfo();

public abstract BigInteger getBalance(final String address);

public abstract AccountDTO addKeystoreUTCFile(final byte[] file, final String password) throws ValidationException;

public abstract int getPeerCount();

// todo: Add balances with different currencies in AccountDTO
public abstract String getCurrency();

public void close() {
walletStorage.save();
}

protected String getStoredAccountName(final String publicAddress) {
return walletStorage.getAccountName(publicAddress);
}

protected void storeAccountName(final String address, final String name) {
walletStorage.setAccountName(address, name);
}
}
Loading

0 comments on commit 1f82d61

Please sign in to comment.