From cc61c9745f1f361450b35aff3a44bb7d7e9f93b1 Mon Sep 17 00:00:00 2001 From: Ebenezer Date: Fri, 14 Dec 2018 20:11:45 -0500 Subject: [PATCH 1/2] restructure --- etherscan-sample/build.gradle | 3 +- .../helloetherescan/SampleActivity.kt | 20 +++++----- etherscanapi/build.gradle | 4 +- .../src/main/java/jfyg/data/Balance.kt | 4 +- .../src/main/java/jfyg/data/BlockAccount.kt | 6 +-- .../src/main/java/jfyg/data/BlockMined.kt | 8 ++-- .../src/main/java/jfyg/data/ERC20Token.kt | 38 +++++++++---------- .../src/main/java/jfyg/data/StatPrice.kt | 8 ++-- etherscanapi/src/main/java/jfyg/data/Tx.kt | 36 +++++++++--------- .../main/java/jfyg/data/TxExecutionStatus.kt | 5 ++- .../main/java/jfyg/data/TxReceiptStatus.kt | 2 +- .../src/main/java/jfyg/data/TxsInternal.kt | 28 +++++++------- etherscanapi/src/main/java/jfyg/data/Uncle.kt | 6 +-- .../account/{Accounts.kt => AccountsApi.kt} | 2 +- .../data/block/{Blocks.kt => BlocksApi.kt} | 2 +- .../{Contracts.kt => ContractsApi.kt} | 2 +- .../jfyg/data/stat/{Stats.kt => StatsApi.kt} | 2 +- .../{Transactions.kt => TransactionsApi.kt} | 2 +- .../{AccountsTest.kt => AccountsApiTest.kt} | 2 +- .../stat/{StatsTest.kt => StatsApiTest.kt} | 2 +- 20 files changed, 91 insertions(+), 91 deletions(-) rename etherscanapi/src/main/java/jfyg/data/account/{Accounts.kt => AccountsApi.kt} (98%) rename etherscanapi/src/main/java/jfyg/data/block/{Blocks.kt => BlocksApi.kt} (96%) rename etherscanapi/src/main/java/jfyg/data/contract/{Contracts.kt => ContractsApi.kt} (96%) rename etherscanapi/src/main/java/jfyg/data/stat/{Stats.kt => StatsApi.kt} (97%) rename etherscanapi/src/main/java/jfyg/data/transaction/{Transactions.kt => TransactionsApi.kt} (97%) rename etherscanapi/src/test/java/jfyg/data/account/{AccountsTest.kt => AccountsApiTest.kt} (99%) rename etherscanapi/src/test/java/jfyg/data/stat/{StatsTest.kt => StatsApiTest.kt} (98%) diff --git a/etherscan-sample/build.gradle b/etherscan-sample/build.gradle index 9d7150f..0567c64 100644 --- a/etherscan-sample/build.gradle +++ b/etherscan-sample/build.gradle @@ -25,7 +25,6 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - /** Because RxAndroid releases are few and far between, it is recommended you also explicitly depend on RxJava's latest version for bug fixes and new features. @@ -39,7 +38,7 @@ dependencies { // google implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:design:26.1.0' - implementation 'com.android.support.constraint:constraint-layout:1.0.2' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation project(':etherscanapi') } diff --git a/etherscan-sample/src/main/java/jfyg/etherscan/helloetherescan/SampleActivity.kt b/etherscan-sample/src/main/java/jfyg/etherscan/helloetherescan/SampleActivity.kt index 1ebba70..8418a1d 100644 --- a/etherscan-sample/src/main/java/jfyg/etherscan/helloetherescan/SampleActivity.kt +++ b/etherscan-sample/src/main/java/jfyg/etherscan/helloetherescan/SampleActivity.kt @@ -5,11 +5,11 @@ import android.support.v7.app.AppCompatActivity import android.util.Log import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.rxkotlin.subscribeBy -import jfyg.data.account.Accounts -import jfyg.data.block.Blocks -import jfyg.data.contract.Contracts -import jfyg.data.stat.Stats -import jfyg.data.transaction.Transactions +import jfyg.data.account.AccountsApi +import jfyg.data.block.BlocksApi +import jfyg.data.contract.ContractsApi +import jfyg.data.stat.StatsApi +import jfyg.data.transaction.TransactionsApi import kotlinx.android.synthetic.main.activity_main.* @@ -22,11 +22,11 @@ class SampleActivity : AppCompatActivity() { setSupportActionBar(toolbar) //************************************************ Used To Test Singles returned from etherscanapi Module - val stat = Stats() - val account = Accounts() - val contract = Contracts() - val tx = Transactions() - val blocks = Blocks() + val stat = StatsApi() + val account = AccountsApi() + val contract = ContractsApi() + val tx = TransactionsApi() + val blocks = BlocksApi() fab.setOnClickListener { diff --git a/etherscanapi/build.gradle b/etherscanapi/build.gradle index 630b1a5..af76b92 100644 --- a/etherscanapi/build.gradle +++ b/etherscanapi/build.gradle @@ -15,7 +15,7 @@ android { buildTypes { release { - minifyEnabled true + minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { @@ -30,7 +30,7 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') // kotlin - implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$project.kotlin_version" + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.10' // rx implementation "io.reactivex.rxjava2:rxkotlin:$project.reactivex_rxjava2_rxkotlin_version" diff --git a/etherscanapi/src/main/java/jfyg/data/Balance.kt b/etherscanapi/src/main/java/jfyg/data/Balance.kt index 2c36b7e..65739b6 100644 --- a/etherscanapi/src/main/java/jfyg/data/Balance.kt +++ b/etherscanapi/src/main/java/jfyg/data/Balance.kt @@ -1,5 +1,5 @@ package jfyg.data -data class Balance(val account: String? = null, +data class Balance(val account: String, - val balance: String? = null) \ No newline at end of file + val balance: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/BlockAccount.kt b/etherscanapi/src/main/java/jfyg/data/BlockAccount.kt index c19465a..85e3188 100644 --- a/etherscanapi/src/main/java/jfyg/data/BlockAccount.kt +++ b/etherscanapi/src/main/java/jfyg/data/BlockAccount.kt @@ -1,7 +1,7 @@ package jfyg.data -data class BlockAccount(val blockNumber: String? = null, +data class BlockAccount(val blockNumber: String, - val timeStamp: String? = null, + val timeStamp: String, - val blockReward: String? = null) \ No newline at end of file + val blockReward: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/BlockMined.kt b/etherscanapi/src/main/java/jfyg/data/BlockMined.kt index 0dc6246..15f147c 100644 --- a/etherscanapi/src/main/java/jfyg/data/BlockMined.kt +++ b/etherscanapi/src/main/java/jfyg/data/BlockMined.kt @@ -1,11 +1,11 @@ package jfyg.data -data class BlockMined(val blockNumber: String? = null, +data class BlockMined(val blockNumber: String, - val timeStamp: String? = null, + val timeStamp: String, - val blockMiner: String? = null, + val blockMiner: String, - val blockReward: String? = null, + val blockReward: String, val uncles: List = emptyList()) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/ERC20Token.kt b/etherscanapi/src/main/java/jfyg/data/ERC20Token.kt index 305ea80..dfb3737 100644 --- a/etherscanapi/src/main/java/jfyg/data/ERC20Token.kt +++ b/etherscanapi/src/main/java/jfyg/data/ERC20Token.kt @@ -2,42 +2,42 @@ package jfyg.data import com.google.gson.annotations.SerializedName -data class ERC20Token(val blockNumber: String? = null, +data class ERC20Token(val blockNumber: String, - val timeStamp: String? = null, + val timeStamp: String, - val hash: String? = null, + val hash: String, - val nonce: String? = null, + val nonce: String, - val blockHash: String? = null, + val blockHash: String, @SerializedName("from") - val transactionFrom: String? = null, + val transactionFrom: String, - val contractAddress: String? = null, + val contractAddress: String, @SerializedName("to") - val transactionTo: String? = null, + val transactionTo: String, - val value: String? = null, + val value: String, - val tokenName: String? = null, + val tokenName: String, - val tokenSymbol: String? = null, + val tokenSymbol: String, - val tokenDecimal: String? = null, + val tokenDecimal: String, - val transactionIndex: String? = null, + val transactionIndex: String, - val gas: String? = null, + val gas: String, - val gasPrice: String? = null, + val gasPrice: String, - val gasUsed: String? = null, + val gasUsed: String, - val cumulativeGasUsed: String? = null, + val cumulativeGasUsed: String, - val input: String? = null, + val input: String, - val confirmations: String? = null) \ No newline at end of file + val confirmations: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/StatPrice.kt b/etherscanapi/src/main/java/jfyg/data/StatPrice.kt index 493b2e3..00260e7 100644 --- a/etherscanapi/src/main/java/jfyg/data/StatPrice.kt +++ b/etherscanapi/src/main/java/jfyg/data/StatPrice.kt @@ -3,14 +3,14 @@ package jfyg.data import com.google.gson.annotations.SerializedName data class StatPrice(@SerializedName("ethbtc") - val ethBtc: String? = null, + val ethBtc: String, @SerializedName("ethbtc_timestamp") - val ethBtcTimestamp: String? = null, + val ethBtcTimestamp: String, @SerializedName("ethusd") - val ethUsd: String? = null, + val ethUsd: String, @SerializedName("ethusd_timestamp") - val ethUsdTimestamp: String? = null + val ethUsdTimestamp: String ) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/Tx.kt b/etherscanapi/src/main/java/jfyg/data/Tx.kt index 7c61bae..3e06da9 100644 --- a/etherscanapi/src/main/java/jfyg/data/Tx.kt +++ b/etherscanapi/src/main/java/jfyg/data/Tx.kt @@ -2,41 +2,41 @@ package jfyg.data import com.google.gson.annotations.SerializedName -data class Tx(val blockNumber: String? = null, +data class Tx(val blockNumber: String, - val timeStamp: String? = null, + val timeStamp: String, - val hash: String? = null, + val hash: String, - val nonce: String? = null, + val nonce: String, - val blockHash: String? = null, + val blockHash: String, - val transactionIndex: String? = null, + val transactionIndex: String, @SerializedName("from") - val transactionFrom: String? = null, + val transactionFrom: String, @SerializedName("to") - val transactionTo: String? = null, + val transactionTo: String, - val value: String? = null, + val value: String, - val gas: String? = null, + val gas: String, - val gasPrice: String? = null, + val gasPrice: String, - val isError: String? = null, + val isError: String, @SerializedName("txreceipt_status") - val receiptStatus: String? = null, + val receiptStatus: String, - val input: String? = null, + val input: String, - val contractAddress: String? = null, + val contractAddress: String, - val cumulativeGasUsed: String? = null, + val cumulativeGasUsed: String, - val gasUsed: String? = null, + val gasUsed: String, - val confirmations: String? = null) \ No newline at end of file + val confirmations: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/TxExecutionStatus.kt b/etherscanapi/src/main/java/jfyg/data/TxExecutionStatus.kt index e06161c..f22d350 100644 --- a/etherscanapi/src/main/java/jfyg/data/TxExecutionStatus.kt +++ b/etherscanapi/src/main/java/jfyg/data/TxExecutionStatus.kt @@ -1,5 +1,6 @@ package jfyg.data -data class TxExecutionStatus(val isError: String? = null, +data class TxExecutionStatus(val isError: String, - val errDescription: String? = null) \ No newline at end of file + val errDescription: String +) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/TxReceiptStatus.kt b/etherscanapi/src/main/java/jfyg/data/TxReceiptStatus.kt index 0054598..a6abd9d 100644 --- a/etherscanapi/src/main/java/jfyg/data/TxReceiptStatus.kt +++ b/etherscanapi/src/main/java/jfyg/data/TxReceiptStatus.kt @@ -1,3 +1,3 @@ package jfyg.data -data class TxReceiptStatus(val status: String? = null) \ No newline at end of file +data class TxReceiptStatus(val status: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/TxsInternal.kt b/etherscanapi/src/main/java/jfyg/data/TxsInternal.kt index 8dedeb6..68d30e2 100644 --- a/etherscanapi/src/main/java/jfyg/data/TxsInternal.kt +++ b/etherscanapi/src/main/java/jfyg/data/TxsInternal.kt @@ -2,32 +2,32 @@ package jfyg.data import com.google.gson.annotations.SerializedName -data class TxsInternal(val blockNumber: String? = null, +data class TxsInternal(val blockNumber: String, - val timeStamp: String? = null, + val timeStamp: String, - val hash: String? = null, + val hash: String, @SerializedName("from") - val transactionFrom: String? = null, + val transactionFrom: String, @SerializedName("to") - val transactionTo: String? = null, + val transactionTo: String, - val value: String? = null, + val value: String, - val contactAddress: String? = null, + val contactAddress: String, - val input: String? = null, + val input: String, - val type: String? = null, + val type: String, - val gas: String? = null, + val gas: String, - val gasUsed: String? = null, + val gasUsed: String, - val traceId: String? = null, + val traceId: String, - val isError: String? = null, + val isError: String, - val errCode: String? = null) \ No newline at end of file + val errCode: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/Uncle.kt b/etherscanapi/src/main/java/jfyg/data/Uncle.kt index 298a5e5..1562526 100644 --- a/etherscanapi/src/main/java/jfyg/data/Uncle.kt +++ b/etherscanapi/src/main/java/jfyg/data/Uncle.kt @@ -2,9 +2,9 @@ package jfyg.data import com.google.gson.annotations.SerializedName -data class Uncle(val miner: String? = null, +data class Uncle(val miner: String, - val unclePosition: String? = null, + val unclePosition: String, @SerializedName("blockreward") - val blockReward: String? = null) \ No newline at end of file + val blockReward: String) \ No newline at end of file diff --git a/etherscanapi/src/main/java/jfyg/data/account/Accounts.kt b/etherscanapi/src/main/java/jfyg/data/account/AccountsApi.kt similarity index 98% rename from etherscanapi/src/main/java/jfyg/data/account/Accounts.kt rename to etherscanapi/src/main/java/jfyg/data/account/AccountsApi.kt index c6988cd..612aa94 100644 --- a/etherscanapi/src/main/java/jfyg/data/account/Accounts.kt +++ b/etherscanapi/src/main/java/jfyg/data/account/AccountsApi.kt @@ -12,7 +12,7 @@ import jfyg.utils.* /** * https://etherscan.io/apis#accounts */ -class Accounts : AccountsContract { +class AccountsApi : AccountsContract { private val query = ApiQuery() private val genericNetworkQuery = query.accountBalance( diff --git a/etherscanapi/src/main/java/jfyg/data/block/Blocks.kt b/etherscanapi/src/main/java/jfyg/data/block/BlocksApi.kt similarity index 96% rename from etherscanapi/src/main/java/jfyg/data/block/Blocks.kt rename to etherscanapi/src/main/java/jfyg/data/block/BlocksApi.kt index f49690a..5b612f4 100644 --- a/etherscanapi/src/main/java/jfyg/data/block/Blocks.kt +++ b/etherscanapi/src/main/java/jfyg/data/block/BlocksApi.kt @@ -10,7 +10,7 @@ import jfyg.utils.GET_BLOCK_REWARD /** * https://etherscan.io/apis#blocks */ -class Blocks : BlocksContract { +class BlocksApi : BlocksContract { private val query = ApiQuery() private val genericNetworkQuery = query.blocksMined( BLOCK, diff --git a/etherscanapi/src/main/java/jfyg/data/contract/Contracts.kt b/etherscanapi/src/main/java/jfyg/data/contract/ContractsApi.kt similarity index 96% rename from etherscanapi/src/main/java/jfyg/data/contract/Contracts.kt rename to etherscanapi/src/main/java/jfyg/data/contract/ContractsApi.kt index 6447b02..88975a3 100644 --- a/etherscanapi/src/main/java/jfyg/data/contract/Contracts.kt +++ b/etherscanapi/src/main/java/jfyg/data/contract/ContractsApi.kt @@ -10,7 +10,7 @@ import jfyg.utils.GET_ABI * Newly verified Contracts are synced to the API servers within 5 minutes or less * https://etherscan.io/apis#contracts */ -class Contracts : ContractsContract { +class ContractsApi : ContractsContract { private val query = ApiQuery() private val abiQuery = query.contractABI( diff --git a/etherscanapi/src/main/java/jfyg/data/stat/Stats.kt b/etherscanapi/src/main/java/jfyg/data/stat/StatsApi.kt similarity index 97% rename from etherscanapi/src/main/java/jfyg/data/stat/Stats.kt rename to etherscanapi/src/main/java/jfyg/data/stat/StatsApi.kt index 933bf13..18bb260 100644 --- a/etherscanapi/src/main/java/jfyg/data/stat/Stats.kt +++ b/etherscanapi/src/main/java/jfyg/data/stat/StatsApi.kt @@ -10,7 +10,7 @@ import jfyg.utils.STATS /** * https://etherscan.io/apis#stats */ -class Stats : StatsContract { +class StatsApi : StatsContract { private val query = ApiQuery() private val supplyQuery = query.statSupply(STATS, ETH_SUPPLY) diff --git a/etherscanapi/src/main/java/jfyg/data/transaction/Transactions.kt b/etherscanapi/src/main/java/jfyg/data/transaction/TransactionsApi.kt similarity index 97% rename from etherscanapi/src/main/java/jfyg/data/transaction/Transactions.kt rename to etherscanapi/src/main/java/jfyg/data/transaction/TransactionsApi.kt index 19a6e7b..4a5365d 100644 --- a/etherscanapi/src/main/java/jfyg/data/transaction/Transactions.kt +++ b/etherscanapi/src/main/java/jfyg/data/transaction/TransactionsApi.kt @@ -12,7 +12,7 @@ import jfyg.utils.TRANSACTION_PUBLIC_ADDRESS /** * https://etherscan.io/apis#transactions */ -class Transactions : TransactionsContract { +class TransactionsApi : TransactionsContract { private val query = ApiQuery() private val genericNetworkQuery = query.txReceiptStatus( diff --git a/etherscanapi/src/test/java/jfyg/data/account/AccountsTest.kt b/etherscanapi/src/test/java/jfyg/data/account/AccountsApiTest.kt similarity index 99% rename from etherscanapi/src/test/java/jfyg/data/account/AccountsTest.kt rename to etherscanapi/src/test/java/jfyg/data/account/AccountsApiTest.kt index 5aae1ef..0d059af 100644 --- a/etherscanapi/src/test/java/jfyg/data/account/AccountsTest.kt +++ b/etherscanapi/src/test/java/jfyg/data/account/AccountsApiTest.kt @@ -17,7 +17,7 @@ import org.junit.Test /** * https://etherscan.io/apis#accounts */ -internal class AccountsTest { +internal class AccountsApiTest { lateinit var gson: Gson private val accountBalance = """ diff --git a/etherscanapi/src/test/java/jfyg/data/stat/StatsTest.kt b/etherscanapi/src/test/java/jfyg/data/stat/StatsApiTest.kt similarity index 98% rename from etherscanapi/src/test/java/jfyg/data/stat/StatsTest.kt rename to etherscanapi/src/test/java/jfyg/data/stat/StatsApiTest.kt index c80509c..e46dce9 100644 --- a/etherscanapi/src/test/java/jfyg/data/stat/StatsTest.kt +++ b/etherscanapi/src/test/java/jfyg/data/stat/StatsApiTest.kt @@ -12,7 +12,7 @@ import org.junit.Assert.assertEquals /** * https://etherscan.io/apis#stats */ -internal class StatsTest { +internal class StatsApiTest { lateinit var gson: Gson private val inputSupply = """ From 382dd137321df9b801a16bf4b6120e85a36fb82f Mon Sep 17 00:00:00 2001 From: Ebenezer Date: Fri, 14 Dec 2018 20:16:52 -0500 Subject: [PATCH 2/2] update version --- README.md | 6 ++++-- versions.gradle | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5f74195..9ba4135 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ etherscan android api is an android wrapper for the [etherscan api](https://ethe There are only a few [features](https://github.com/EbenezerGH/hello_etherscan/issues) left to add, however this version is completely safe to use. +##### Note: For RxJava Implementation use master branch [etherscan-coroutines](https://github.com/EbenezerGH/etherscan-android-api + ## Getting Started Add JitPack to your root build.gradle at the end of repositories @@ -27,7 +29,7 @@ Add the dependency ``` dependencies { - implementation 'com.github.EbenezerGH:etherscan-android-api:v1.0.3' + implementation 'com.github.EbenezerGH:etherscan-android-api:v1.4.0' } ``` @@ -39,7 +41,7 @@ ApiKey.takeOff.setApiKey("1I7CRNU2QIU253UBPFVB5UV2C2PBDURAIYZ") Create an Instance of one of the reactive singles and access values by specifying thread and subscribing. [see [example implementation](https://github.com/EbenezerGH/etherscan-android-api/blob/master/etherscan-sample/src/main/java/jfyg/etherscan/helloetherescan/SampleActivity.kt)] -Currently Available: ``[accounts, contracts, transactions, blocks, stat]`` +Currently Available: ``[accountsApi, contractsApi, transactionsApi, blocksApi, statApi]`` Coming Soon: ``[eventLogs, geth, websockets, tokens]`` diff --git a/versions.gradle b/versions.gradle index 742f148..3c29240 100644 --- a/versions.gradle +++ b/versions.gradle @@ -3,8 +3,8 @@ ext { target_sdk_version = 26 compile_sdk_version = 26 build_tools_version = "27.0.3" - version_code= 3 - version_name = "1.1.0" + version_code= 4 + version_name = "1.4.0" // plugins