├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── pom.xml
└── src
├── main
└── java
│ └── de
│ └── elbatya
│ └── cryptocoins
│ └── bittrexclient
│ ├── BittrexClient.java
│ ├── api
│ ├── BittrexAccountApi.java
│ ├── BittrexMarketApi.java
│ ├── BittrexPublicApi.java
│ └── model
│ │ ├── accountapi
│ │ ├── Balance.java
│ │ ├── DepositAddress.java
│ │ ├── DepositHistoryEntry.java
│ │ ├── Order.java
│ │ ├── OrderHistoryEntry.java
│ │ ├── WithdrawalHistoryEntry.java
│ │ └── WithdrawalRequested.java
│ │ ├── common
│ │ ├── ApiResult.java
│ │ └── BittrexApiException.java
│ │ ├── marketapi
│ │ ├── OpenOrder.java
│ │ └── OrderCreated.java
│ │ └── publicapi
│ │ ├── Currency.java
│ │ ├── Market.java
│ │ ├── MarketHistoryEntry.java
│ │ ├── MarketSummary.java
│ │ ├── OrderBook.java
│ │ ├── OrderBookEntry.java
│ │ └── Ticker.java
│ ├── config
│ ├── ApiBuilderFactory.java
│ ├── ApiCredentials.java
│ └── ObjectMapperConfigurer.java
│ └── util
│ └── ApiKeySigningUtil.java
└── test
├── java
└── de
│ └── elbatya
│ └── cryptocoins
│ └── bittrexclient
│ ├── api
│ ├── BittrexAccountApiTest.java
│ ├── BittrexMarketApiTest.java
│ └── BittrexPublicApiTest.java
│ └── util
│ └── ApiKeySigningUtilTest.java
└── resources
├── accountapi
├── getbalance.json
├── getbalances.json
├── getdepositaddress.json
├── getdeposithistory.json
├── getorder.json
├── getorderhistory.json
├── getorderhistoryformarket.json
├── getwithdrawalhistory.json
└── withdraw.json
├── log4j.properties
├── marketapi
├── buylimit.json
├── cancelorder.json
├── getopenorders.json
└── selllimit.json
└── publicapi
├── getcurrencies.json
├── getmarkethistory.json
├── getmarkets.json
├── getmarketsummaries.json
├── getmarketsummary.json
├── getorderbookboth.json
├── getorderbookbuy.json
├── getorderbooksell.json
└── getticker.json
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | target/
3 | *.iml
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 | jdk:
3 | - oraclejdk8
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Mohammed El Batya
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | !!! ***This library has been discontinued and archived*** !!!
2 |
3 |
4 | [](https://travis-ci.org/forgemo/bittrex-java-client)
5 |
6 | # bittrex-java-client
7 |
8 | Java client for the bittrex.com api.
9 | It uses the api version 1.1.
10 |
11 | ApiSpec: https://bittrex.com/home/api
12 |
13 | Warning! This library is fairly young and **not considered stable**.
14 | Use it with caution ... especially the market api.
15 |
16 | ## Breaking change in 2.0
17 | For greater precision, double values have been replaced by BigDecimal.
18 |
19 | ## Getting started
20 |
21 | ### Building from code with Maven (preferred)
22 | 1. Clone this repository
23 | 2. Execute 'mvn install' to build the library and install it to your local maven repo
24 | 3. Add the following dependency to your projects pom.xml
25 |
26 | ```xml
27 |
28 | de.elbatya.cryptocoins
29 | bittrex-client
30 | 2.0
31 |
32 | ```
33 | ### Prebuild binaries via JitPack
34 | Note: Using JitPack is more convenient but less secure. There is no mechanism in place to ensure the authenticity of a downloaded artifact.
35 |
36 | #### Maven via JitPack
37 | 1. Add the JitPack repository to your build file.
38 |
39 | ```xml
40 |
41 |
42 | jitpack.io
43 | https://jitpack.io
44 |
45 |
46 | ```
47 |
48 | 2. Add the dependency
49 |
50 | ```xml
51 |
52 | com.github.forgemo
53 | bittrex-java-client
54 | v2.0
55 |
56 | ```
57 |
58 |
59 |
60 | #### Gradle via JitPack
61 | 1. Add the JitPack repository to your build file. Add it in your root build.gradle at the end of repositories:
62 |
63 | ```groovy
64 | allprojects {
65 | repositories {
66 | ...
67 | maven { url 'https://jitpack.io' }
68 | }
69 | }
70 | ```
71 |
72 | 2. Add the dependency
73 |
74 | ```groovy
75 | dependencies {
76 | compile 'com.github.forgemo:bittrex-java-client:v2.0'
77 | }
78 | ```
79 |
80 | #### Others via JitPack
81 | https://jitpack.io/#forgemo/bittrex-java-client/v2.0
82 |
83 |
84 | ## Examples
85 |
86 | ### List all markets without credentials
87 |
88 | ```java
89 |
90 | // Create a BittrexClient
91 | BittrexClient bittrexClient = new BittrexClient();
92 |
93 | // Perform a getMarkets request on the public api
94 | ApiResult> apiResult = bittrexClient.getPublicApi().getMarkets();
95 |
96 | // Unwrap the results
97 | List markets = apiResult.unwrap();
98 | ```
99 |
100 |
101 | ### List all your open orders using credentials
102 |
103 | ```java
104 |
105 | // Ceate ApiCredentials with ApiKey and Secret from bittrex.com
106 | ApiCredentials credentials = new ApiCredentials(
107 | "YourApiKeyFromBittrex.com",
108 | "YourApiKeySecretFromBittrex.com"
109 | );
110 |
111 | // Create a BittrexClient with the ApiCredentials
112 | BittrexClient bittrexClient = new BittrexClient(credentials);
113 |
114 | // Perform a getOpenOrders request on the market api
115 | ApiResult> apiResult = bittrexClient.getMarketApi().getOpenOrders();
116 |
117 | // Unwrap the results
118 | List openOrders = apiResult.unwrap();
119 | ```
120 |
121 |
122 | ## How to get credentials for the non-public Bittrex api
123 |
124 | 1. Create an account at bittrex.com
125 | 2. Enable Two-Factor-Authentication in your account settings
126 | 3. Create an api key with the required permissions in your account settings
127 | 4. Use the api key and secret like shown in the examples
128 | 4. Read https://bittrex.com/home/api for more infos
129 |
130 |
131 | ## Implementation Status
132 |
133 | ### Public Api
134 | - [X] /public/getmarkets
135 | - [X] /public/getcurrencies
136 | - [X] /public/getticker
137 | - [X] /public/getmarketsummaries
138 | - [X] /public/getmarketsummary
139 | - [X] /public/getorderbook
140 | - [X] /public/getmarkethistory
141 |
142 | ### Market Api (Credentials required)
143 | - [X] /market/buylimit
144 | - [X] /market/selllimit
145 | - [X] /market/cancel
146 | - [X] /market/getopenorders
147 |
148 | ### Account Api (Credentials required)
149 | - [X] /account/getbalances
150 | - [X] /account/getbalance
151 | - [X] /account/getdepositaddress
152 | - [X] /account/withdraw
153 | - [X] /account/getorder
154 | - [X] /account/getorderhistory
155 | - [X] /account/getwithdrawalhistory
156 | - [X] /account/getdeposithistory
157 |
158 | ### Stability
159 | - [X] Public Api - Basic Unit Tests
160 | - [X] Market Api - Basic Unit Tests
161 | - [X] Account Api - Basic Unit Tests
162 | - [ ] Public Api - Advanced Unit Tests
163 | - [ ] Market Api - Advanced Unit Tests
164 | - [ ] Account Api - Advanced Unit Tests
165 | - [X] Public Api - Tested with production backend
166 | - [X] Market Api - Tested with production backend
167 | - [X] Account Api - Tested with production backend
168 | - [X] Used in low budget / low risk real world applications
169 | - [ ] Used in real world applications
170 |
171 | ## Do you like this library?
172 | ### Donate Bitcoins to [18rdYGVpG5BZ7EFRie65E9pfvMSE47EEfV](https://blockexplorer.com/address/18rdYGVpG5BZ7EFRie65E9pfvMSE47EEfV)
173 | ### Donate Ether to [0x10dcd290c3aa2393c005E981DED566C8fB75C182](https://etherscan.io/address/0x10dcd290c3aa2393c005E981DED566C8fB75C182)
174 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | de.elbatya.cryptocoins
8 | bittrex-client
9 | 2.0
10 |
11 |
12 |
13 |
14 |
15 | org.apache.maven.plugins
16 | maven-compiler-plugin
17 | 3.5.1
18 |
19 | 1.8
20 | 1.8
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | io.github.openfeign
29 | feign-core
30 | 9.5.1
31 |
32 |
33 | io.github.openfeign
34 | feign-jackson
35 | 9.5.1
36 |
37 |
38 | com.fasterxml.jackson.core
39 | jackson-databind
40 | 2.8.6
41 |
42 |
43 | com.fasterxml.jackson.module
44 | jackson-module-parameter-names
45 | 2.8.4
46 |
47 |
48 | com.fasterxml.jackson.datatype
49 | jackson-datatype-jdk8
50 | 2.8.4
51 |
52 |
53 | com.fasterxml.jackson.datatype
54 | jackson-datatype-jsr310
55 | 2.8.4
56 |
57 |
58 | io.github.openfeign
59 | feign-slf4j
60 | 9.5.1
61 |
62 |
63 | com.google.code.findbugs
64 | jsr305
65 | 3.0.2
66 |
67 |
68 |
69 |
70 |
71 | org.slf4j
72 | slf4j-log4j12
73 | 1.8.0-alpha2
74 | test
75 |
76 |
77 | junit
78 | junit
79 | 4.12
80 | test
81 |
82 |
83 | org.assertj
84 | assertj-core-java8
85 | 1.0.0m1
86 | test
87 |
88 |
89 | com.marvinformatics.feign
90 | feign-mock
91 | 0.6
92 | test
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/BittrexClient.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient;
2 |
3 |
4 | import de.elbatya.cryptocoins.bittrexclient.api.BittrexAccountApi;
5 | import de.elbatya.cryptocoins.bittrexclient.api.BittrexMarketApi;
6 | import de.elbatya.cryptocoins.bittrexclient.api.BittrexPublicApi;
7 | import de.elbatya.cryptocoins.bittrexclient.config.ApiBuilderFactory;
8 | import de.elbatya.cryptocoins.bittrexclient.config.ApiCredentials;
9 | import feign.Feign;
10 | import feign.Logger;
11 | import feign.Util;
12 | import feign.slf4j.Slf4jLogger;
13 |
14 | import javax.annotation.Nullable;
15 |
16 | /**
17 | * @author contact@elbatya.de
18 | */
19 | public class BittrexClient {
20 |
21 | public static final String DEFAULT_BASE_URL = "https://bittrex.com/api/v1.1";
22 |
23 | private BittrexPublicApi publicApi;
24 | private BittrexMarketApi marketApi;
25 | private BittrexAccountApi accountApi;
26 |
27 | private boolean credentialsAvailable = true;
28 |
29 | public BittrexClient() {
30 | this(DEFAULT_BASE_URL, null, null);
31 | }
32 |
33 | public BittrexClient(@Nullable Logger.Level logLevel) {
34 | this(DEFAULT_BASE_URL, null, logLevel);
35 | }
36 |
37 | public BittrexClient(@Nullable ApiCredentials credentials) {
38 | this(DEFAULT_BASE_URL, credentials, null);
39 | }
40 |
41 | public BittrexClient(@Nullable ApiCredentials credentials, @Nullable Logger.Level logLevel) {
42 | this(DEFAULT_BASE_URL, credentials, logLevel);
43 | }
44 |
45 |
46 | public BittrexClient(
47 | String baseUrl,
48 | @Nullable ApiCredentials credentials,
49 | @Nullable Logger.Level logLevel)
50 | {
51 | Util.checkNotNull(baseUrl, "The baseUrl must not be null!");
52 |
53 | ApiBuilderFactory apiBuilderFactory = new ApiBuilderFactory(baseUrl);
54 |
55 | Feign.Builder apiBuilder = apiBuilderFactory.createApiBuilder(credentials);
56 |
57 | if (logLevel != null) {
58 | apiBuilder
59 | .logger(new Slf4jLogger(BittrexClient.class))
60 | .logLevel(logLevel);
61 | }
62 |
63 | publicApi = apiBuilder.target(BittrexPublicApi.class, baseUrl);
64 |
65 | credentialsAvailable = credentials != null;
66 |
67 | if(credentialsAvailable) {
68 | marketApi = apiBuilder.target(BittrexMarketApi.class, baseUrl);
69 | accountApi = apiBuilder.target(BittrexAccountApi.class, baseUrl);
70 | }
71 | }
72 |
73 | public BittrexPublicApi getPublicApi() {
74 | return publicApi;
75 | }
76 | public BittrexMarketApi getMarketApi() {
77 | failIfNoCredentials("You can't use the MarketAPI without credentials.");
78 | return marketApi;
79 | }
80 | public BittrexAccountApi getAccountApi() {
81 | failIfNoCredentials("You can't use the AccountAPI without credentials.");
82 | return accountApi;
83 | }
84 |
85 | private void failIfNoCredentials(String message){
86 | if(!credentialsAvailable){
87 | throw new RuntimeException(message);
88 | }
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexAccountApi.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import de.elbatya.cryptocoins.bittrexclient.api.model.accountapi.*;
4 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
5 | import feign.Param;
6 | import feign.RequestLine;
7 |
8 | import java.math.BigDecimal;
9 | import java.util.List;
10 |
11 | /**
12 | * @author contact@elbatya.de
13 | */
14 | public interface BittrexAccountApi {
15 |
16 | @RequestLine("GET /account/getbalances")
17 | ApiResult> getBalances();
18 |
19 | @RequestLine("GET /account/getbalance?currency={currency}")
20 | ApiResult getBalance(@Param("currency") String currency);
21 |
22 | @RequestLine("GET /account/getdepositaddress?currency={currency}")
23 | ApiResult getDepositAddress(@Param("currency") String currency);
24 |
25 | @RequestLine("GET /account/withdraw?currency={currency}&quantity={quantity}&address={address}&paymentid={paymentid}")
26 | ApiResult withdraw(
27 | @Param("currency") String currency,
28 | @Param("quantity") BigDecimal quantity,
29 | @Param("address") String address,
30 | @Param("paymentid") String paymentId
31 | );
32 |
33 | @RequestLine("GET /account/withdraw?currency={currency}&quantity={quantity}&address={address}")
34 | ApiResult withdraw(
35 | @Param("currency") String currency,
36 | @Param("quantity") BigDecimal quantity,
37 | @Param("address") String address
38 | );
39 |
40 | @RequestLine("GET /account/getorder?uuid={uuid}")
41 | ApiResult getOrder(@Param("uuid") String uuid);
42 |
43 | @RequestLine("GET /account/getorderhistory?market={market}")
44 | ApiResult> getOrderHistory(@Param("market") String market);
45 |
46 | @RequestLine("GET /account/getorderhistory")
47 | ApiResult> getOrderHistory();
48 |
49 | @RequestLine("GET /account/getwithdrawalhistory?currency={currency}")
50 | ApiResult> getWithdrawalHistory(@Param("currency") String currency);
51 |
52 | @RequestLine("GET /account/getwithdrawalhistory")
53 | ApiResult> getWithdrawalHistory();
54 |
55 | @RequestLine("GET /account/getdeposithistory?currency={currency}")
56 | ApiResult> getDepositHistory(@Param("currency") String currency);
57 |
58 | @RequestLine("GET /account/getdeposithistory")
59 | ApiResult> getDepositHistory();
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexMarketApi.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
4 | import de.elbatya.cryptocoins.bittrexclient.api.model.marketapi.OpenOrder;
5 | import de.elbatya.cryptocoins.bittrexclient.api.model.marketapi.OrderCreated;
6 | import feign.Param;
7 | import feign.RequestLine;
8 |
9 | import java.math.BigDecimal;
10 | import java.util.List;
11 |
12 | /**
13 | * @author contact@elbatya.de
14 | */
15 | public interface BittrexMarketApi {
16 |
17 | @RequestLine("GET /market/getopenorders")
18 | ApiResult> getOpenOrders();
19 |
20 | @RequestLine("GET /market/getopenorders?market={market}")
21 | ApiResult> getOpenOrders(@Param("market") String market);
22 |
23 | @RequestLine("GET /market/cancel?uuid={orderUuid}")
24 | ApiResult cancelOrder(@Param("orderUuid") String orderUuid);
25 |
26 | @RequestLine("GET /market/selllimit?market={market}&quantity={quantity}&rate={rate}")
27 | ApiResult sellLimit(
28 | @Param("market") String market,
29 | @Param("quantity") BigDecimal quantity,
30 | @Param("rate") BigDecimal rate
31 | );
32 |
33 | @RequestLine("GET /market/buylimit?market={market}&quantity={quantity}&rate={rate}")
34 | ApiResult buyLimit(
35 | @Param("market") String market,
36 | @Param("quantity") BigDecimal quantity,
37 | @Param("rate") BigDecimal rate
38 | );
39 |
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexPublicApi.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
4 | import de.elbatya.cryptocoins.bittrexclient.api.model.publicapi.*;
5 | import feign.Param;
6 | import feign.RequestLine;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @author contact@elbatya.de
12 | */
13 | public interface BittrexPublicApi {
14 |
15 | @RequestLine("GET /public/getmarkets")
16 | ApiResult> getMarkets();
17 |
18 | @RequestLine("GET /public/getcurrencies ")
19 | ApiResult> getCurrencies();
20 |
21 | @RequestLine("GET /public/getticker?market={market}")
22 | ApiResult getTicker(@Param("market") String market);
23 |
24 | @RequestLine("GET /public/getmarketsummaries")
25 | ApiResult> getMarketSummaries();
26 |
27 | @RequestLine("GET /public/getmarketsummary?market={market}")
28 | ApiResult> getMarketSummary(@Param("market") String market);
29 |
30 | @RequestLine("GET /public/getorderbook?type=both&market={market}&depth={depth}")
31 | ApiResult getOrderBook(
32 | @Param("market") String market,
33 | @Param("depth") int depth
34 | );
35 |
36 | @RequestLine("GET /public/getorderbook?type=both&market={market}")
37 | ApiResult getOrderBook(
38 | @Param("market") String market
39 | );
40 |
41 | @RequestLine("GET /public/getorderbook?type=sell&market={market}&depth={depth}")
42 | ApiResult> getOrderBookForSell(
43 | @Param("market") String market,
44 | @Param("depth") int depth
45 | );
46 |
47 | @RequestLine("GET /public/getorderbook?type=sell&market={market}")
48 | ApiResult> getOrderBookForSell(
49 | @Param("market") String market
50 | );
51 |
52 | @RequestLine("GET /public/getorderbook?type=buy&market={market}&depth={depth}")
53 | ApiResult> getOrderBookForBuy(
54 | @Param("market") String market,
55 | @Param("depth") int depth
56 | );
57 |
58 | @RequestLine("GET /public/getorderbook?type=buy&market={market}")
59 | ApiResult> getOrderBookForBuy(
60 | @Param("market") String market
61 | );
62 |
63 |
64 | @RequestLine("GET /public/getmarkethistory?market={market}")
65 | ApiResult> getMarketHistory(@Param("market") String market);
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/Balance.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | import java.math.BigDecimal;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class Balance {
9 |
10 | private String currency;
11 | private BigDecimal balance;
12 | private BigDecimal available;
13 | private BigDecimal pending;
14 | private String cryptoAddress;
15 | private Boolean requested;
16 | private String uuid;
17 |
18 | public String getCurrency() {
19 | return currency;
20 | }
21 |
22 | public void setCurrency(String currency) {
23 | this.currency = currency;
24 | }
25 |
26 | public BigDecimal getBalance() {
27 | return balance;
28 | }
29 |
30 | public void setBalance(BigDecimal balance) {
31 | this.balance = balance;
32 | }
33 |
34 | public BigDecimal getAvailable() {
35 | return available;
36 | }
37 |
38 | public void setAvailable(BigDecimal available) {
39 | this.available = available;
40 | }
41 |
42 | public BigDecimal getPending() {
43 | return pending;
44 | }
45 |
46 | public void setPending(BigDecimal pending) {
47 | this.pending = pending;
48 | }
49 |
50 | public String getCryptoAddress() {
51 | return cryptoAddress;
52 | }
53 |
54 | public void setCryptoAddress(String cryptoAddress) {
55 | this.cryptoAddress = cryptoAddress;
56 | }
57 |
58 | public Boolean getRequested() {
59 | return requested;
60 | }
61 |
62 | public void setRequested(Boolean requested) {
63 | this.requested = requested;
64 | }
65 |
66 | public String getUuid() {
67 | return uuid;
68 | }
69 |
70 | public void setUuid(String uuid) {
71 | this.uuid = uuid;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/DepositAddress.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | /**
4 | * @author contact@elbatya.de
5 | */
6 | public class DepositAddress {
7 |
8 | private String currency;
9 | private String address;
10 |
11 | public String getCurrency() {
12 | return currency;
13 | }
14 |
15 | public void setCurrency(String currency) {
16 | this.currency = currency;
17 | }
18 |
19 | public String getAddress() {
20 | return address;
21 | }
22 |
23 | public void setAddress(String address) {
24 | this.address = address;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/DepositHistoryEntry.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class DepositHistoryEntry {
10 |
11 | private String id;
12 | private Integer confirmations;
13 | private LocalDateTime lastUpdated;
14 | private String paymentUuid;
15 | private String currency;
16 | private BigDecimal amount;
17 | private String cryptoAddress;
18 | private LocalDateTime opened;
19 | private Boolean authorized;
20 | private Boolean pendingPayment;
21 | private BigDecimal txCost;
22 | private String txId;
23 | private Boolean canceled;
24 | private Boolean invalidAddress;
25 |
26 | public String getId() {
27 | return id;
28 | }
29 |
30 | public void setId(String id) {
31 | this.id = id;
32 | }
33 |
34 | public Integer getConfirmations() {
35 | return confirmations;
36 | }
37 |
38 | public void setConfirmations(Integer confirmations) {
39 | this.confirmations = confirmations;
40 | }
41 |
42 | public LocalDateTime getLastUpdated() {
43 | return lastUpdated;
44 | }
45 |
46 | public void setLastUpdated(LocalDateTime lastUpdated) {
47 | this.lastUpdated = lastUpdated;
48 | }
49 |
50 | public Boolean getInvalidAddress() {
51 | return invalidAddress;
52 | }
53 |
54 | public void setInvalidAddress(Boolean invalidAddress) {
55 | this.invalidAddress = invalidAddress;
56 | }
57 |
58 | public String getPaymentUuid() {
59 | return paymentUuid;
60 | }
61 |
62 | public void setPaymentUuid(String paymentUuid) {
63 | this.paymentUuid = paymentUuid;
64 | }
65 |
66 | public String getCurrency() {
67 | return currency;
68 | }
69 |
70 | public void setCurrency(String currency) {
71 | this.currency = currency;
72 | }
73 |
74 | public BigDecimal getAmount() {
75 | return amount;
76 | }
77 |
78 | public void setAmount(BigDecimal amount) {
79 | this.amount = amount;
80 | }
81 |
82 | public String getCryptoAddress() {
83 | return cryptoAddress;
84 | }
85 |
86 | public void setCryptoAddress(String cryptoAddress) {
87 | this.cryptoAddress = cryptoAddress;
88 | }
89 |
90 | public LocalDateTime getOpened() {
91 | return opened;
92 | }
93 |
94 | public void setOpened(LocalDateTime opened) {
95 | this.opened = opened;
96 | }
97 |
98 | public Boolean getAuthorized() {
99 | return authorized;
100 | }
101 |
102 | public void setAuthorized(Boolean authorized) {
103 | this.authorized = authorized;
104 | }
105 |
106 | public Boolean getPendingPayment() {
107 | return pendingPayment;
108 | }
109 |
110 | public void setPendingPayment(Boolean pendingPayment) {
111 | this.pendingPayment = pendingPayment;
112 | }
113 |
114 | public BigDecimal getTxCost() {
115 | return txCost;
116 | }
117 |
118 | public void setTxCost(BigDecimal txCost) {
119 | this.txCost = txCost;
120 | }
121 |
122 | public String getTxId() {
123 | return txId;
124 | }
125 |
126 | public void setTxId(String txId) {
127 | this.txId = txId;
128 | }
129 |
130 | public Boolean getCanceled() {
131 | return canceled;
132 | }
133 |
134 | public void setCanceled(Boolean canceled) {
135 | this.canceled = canceled;
136 | }
137 |
138 | public Boolean getIsInvalidAddress() {
139 | return invalidAddress;
140 | }
141 |
142 | public void setIsInvalidAddress(Boolean invalidAddress) {
143 | this.invalidAddress = invalidAddress;
144 | }
145 | }
146 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/Order.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class Order {
10 | private String accountId;
11 | private String orderUuid;
12 | private String exchange;
13 | private String type;
14 | private BigDecimal quantity;
15 | private BigDecimal quantityRemaining;
16 | private BigDecimal limit;
17 | private BigDecimal reserved;
18 | private BigDecimal reserveRemaining;
19 | private BigDecimal commissionReserved;
20 | private BigDecimal commissionReserveRemaining;
21 | private BigDecimal commissionPaid;
22 | private BigDecimal price;
23 | private BigDecimal pricePerUnit;
24 | private LocalDateTime opened;
25 | private LocalDateTime closed;
26 | private Boolean isOpen;
27 | private String sentinel;
28 | private Boolean cancelInitiated;
29 | private Boolean immediateOrCancel;
30 | private Boolean isConditional;
31 | private String condition;
32 | private String conditionTarget;
33 |
34 | public String getAccountId() {
35 | return accountId;
36 | }
37 |
38 | public void setAccountId(String accountId) {
39 | this.accountId = accountId;
40 | }
41 |
42 | public String getOrderUuid() {
43 | return orderUuid;
44 | }
45 |
46 | public void setOrderUuid(String orderUuid) {
47 | this.orderUuid = orderUuid;
48 | }
49 |
50 | public String getExchange() {
51 | return exchange;
52 | }
53 |
54 | public void setExchange(String exchange) {
55 | this.exchange = exchange;
56 | }
57 |
58 | public String getType() {
59 | return type;
60 | }
61 |
62 | public void setType(String type) {
63 | this.type = type;
64 | }
65 |
66 | public BigDecimal getQuantity() {
67 | return quantity;
68 | }
69 |
70 | public void setQuantity(BigDecimal quantity) {
71 | this.quantity = quantity;
72 | }
73 |
74 | public BigDecimal getQuantityRemaining() {
75 | return quantityRemaining;
76 | }
77 |
78 | public void setQuantityRemaining(BigDecimal quantityRemaining) {
79 | this.quantityRemaining = quantityRemaining;
80 | }
81 |
82 | public BigDecimal getLimit() {
83 | return limit;
84 | }
85 |
86 | public void setLimit(BigDecimal limit) {
87 | this.limit = limit;
88 | }
89 |
90 | public BigDecimal getReserved() {
91 | return reserved;
92 | }
93 |
94 | public void setReserved(BigDecimal reserved) {
95 | this.reserved = reserved;
96 | }
97 |
98 | public BigDecimal getReserveRemaining() {
99 | return reserveRemaining;
100 | }
101 |
102 | public void setReserveRemaining(BigDecimal reserveRemaining) {
103 | this.reserveRemaining = reserveRemaining;
104 | }
105 |
106 | public BigDecimal getCommissionReserved() {
107 | return commissionReserved;
108 | }
109 |
110 | public void setCommissionReserved(BigDecimal commissionReserved) {
111 | this.commissionReserved = commissionReserved;
112 | }
113 |
114 | public BigDecimal getCommissionReserveRemaining() {
115 | return commissionReserveRemaining;
116 | }
117 |
118 | public void setCommissionReserveRemaining(BigDecimal commissionReserveRemaining) {
119 | this.commissionReserveRemaining = commissionReserveRemaining;
120 | }
121 |
122 | public BigDecimal getCommissionPaid() {
123 | return commissionPaid;
124 | }
125 |
126 | public void setCommissionPaid(BigDecimal commissionPaid) {
127 | this.commissionPaid = commissionPaid;
128 | }
129 |
130 | public BigDecimal getPrice() {
131 | return price;
132 | }
133 |
134 | public void setPrice(BigDecimal price) {
135 | this.price = price;
136 | }
137 |
138 | public BigDecimal getPricePerUnit() {
139 | return pricePerUnit;
140 | }
141 |
142 | public void setPricePerUnit(BigDecimal pricePerUnit) {
143 | this.pricePerUnit = pricePerUnit;
144 | }
145 |
146 | public LocalDateTime getOpened() {
147 | return opened;
148 | }
149 |
150 | public void setOpened(LocalDateTime opened) {
151 | this.opened = opened;
152 | }
153 |
154 | public LocalDateTime getClosed() {
155 | return closed;
156 | }
157 |
158 | public void setClosed(LocalDateTime closed) {
159 | this.closed = closed;
160 | }
161 |
162 | public Boolean getIsOpen() {
163 | return isOpen;
164 | }
165 |
166 | public void setIsOpen(Boolean open) {
167 | isOpen = open;
168 | }
169 |
170 | public String getSentinel() {
171 | return sentinel;
172 | }
173 |
174 | public void setSentinel(String sentinel) {
175 | this.sentinel = sentinel;
176 | }
177 |
178 | public Boolean getCancelInitiated() {
179 | return cancelInitiated;
180 | }
181 |
182 | public void setCancelInitiated(Boolean cancelInitiated) {
183 | this.cancelInitiated = cancelInitiated;
184 | }
185 |
186 | public Boolean getImmediateOrCancel() {
187 | return immediateOrCancel;
188 | }
189 |
190 | public void setImmediateOrCancel(Boolean immediateOrCancel) {
191 | this.immediateOrCancel = immediateOrCancel;
192 | }
193 |
194 | public Boolean getIsConditional() {
195 | return isConditional;
196 | }
197 |
198 | public void setIsConditional(Boolean conditional) {
199 | isConditional = conditional;
200 | }
201 |
202 | public String getCondition() {
203 | return condition;
204 | }
205 |
206 | public void setCondition(String condition) {
207 | this.condition = condition;
208 | }
209 |
210 | public String getConditionTarget() {
211 | return conditionTarget;
212 | }
213 |
214 | public void setConditionTarget(String conditionTarget) {
215 | this.conditionTarget = conditionTarget;
216 | }
217 | }
218 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/OrderHistoryEntry.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class OrderHistoryEntry {
10 | private String orderUuid;
11 | private String exchange;
12 | private LocalDateTime timeStamp;
13 | private String orderType;
14 | private BigDecimal limit;
15 | private BigDecimal quantity;
16 | private BigDecimal quantityRemaining;
17 | private BigDecimal commission;
18 | private BigDecimal price;
19 | private BigDecimal pricePerUnit;
20 | private Boolean isConditional;
21 | private String condition;
22 | private String conditionTarget;
23 | private Boolean immediateOrCancel;
24 | private LocalDateTime closed;
25 |
26 | public String getOrderUuid() {
27 | return orderUuid;
28 | }
29 |
30 | public void setOrderUuid(String orderUuid) {
31 | this.orderUuid = orderUuid;
32 | }
33 |
34 | public String getExchange() {
35 | return exchange;
36 | }
37 |
38 | public void setExchange(String exchange) {
39 | this.exchange = exchange;
40 | }
41 |
42 | public LocalDateTime getTimeStamp() {
43 | return timeStamp;
44 | }
45 |
46 | public void setTimeStamp(LocalDateTime timeStamp) {
47 | this.timeStamp = timeStamp;
48 | }
49 |
50 | public String getOrderType() {
51 | return orderType;
52 | }
53 |
54 | public void setOrderType(String orderType) {
55 | this.orderType = orderType;
56 | }
57 |
58 | public BigDecimal getLimit() {
59 | return limit;
60 | }
61 |
62 | public void setLimit(BigDecimal limit) {
63 | this.limit = limit;
64 | }
65 |
66 | public BigDecimal getQuantity() {
67 | return quantity;
68 | }
69 |
70 | public void setQuantity(BigDecimal quantity) {
71 | this.quantity = quantity;
72 | }
73 |
74 | public BigDecimal getQuantityRemaining() {
75 | return quantityRemaining;
76 | }
77 |
78 | public void setQuantityRemaining(BigDecimal quantityRemaining) {
79 | this.quantityRemaining = quantityRemaining;
80 | }
81 |
82 | public BigDecimal getCommission() {
83 | return commission;
84 | }
85 |
86 | public void setCommission(BigDecimal commission) {
87 | this.commission = commission;
88 | }
89 |
90 | public BigDecimal getPrice() {
91 | return price;
92 | }
93 |
94 | public void setPrice(BigDecimal price) {
95 | this.price = price;
96 | }
97 |
98 | public BigDecimal getPricePerUnit() {
99 | return pricePerUnit;
100 | }
101 |
102 | public void setPricePerUnit(BigDecimal pricePerUnit) {
103 | this.pricePerUnit = pricePerUnit;
104 | }
105 |
106 | public Boolean getIsConditional() {
107 | return isConditional;
108 | }
109 |
110 | public void setIsConditional(Boolean conditional) {
111 | isConditional = conditional;
112 | }
113 |
114 | public String getCondition() {
115 | return condition;
116 | }
117 |
118 | public void setCondition(String condition) {
119 | this.condition = condition;
120 | }
121 |
122 | public String getConditionTarget() {
123 | return conditionTarget;
124 | }
125 |
126 | public void setConditionTarget(String conditionTarget) {
127 | this.conditionTarget = conditionTarget;
128 | }
129 |
130 | public Boolean getImmediateOrCancel() {
131 | return immediateOrCancel;
132 | }
133 |
134 | public void setImmediateOrCancel(Boolean immediateOrCancel) {
135 | this.immediateOrCancel = immediateOrCancel;
136 | }
137 |
138 | public Boolean getConditional() {
139 | return isConditional;
140 | }
141 |
142 | public void setConditional(Boolean conditional) {
143 | isConditional = conditional;
144 | }
145 |
146 | public LocalDateTime getClosed() {
147 | return closed;
148 | }
149 |
150 | public void setClosed(LocalDateTime closed) {
151 | this.closed = closed;
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/WithdrawalHistoryEntry.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | import java.time.LocalDateTime;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class WithdrawalHistoryEntry {
9 |
10 | private String paymentUuid;
11 | private String currency;
12 | private String amount;
13 | private String address;
14 | private LocalDateTime opened;
15 | private Boolean authorized;
16 | private Boolean pendingPayment;
17 | private Double txCost;
18 | private String txId;
19 | private Boolean canceled;
20 | private Boolean invalidAddress;
21 |
22 | public String getPaymentUuid() {
23 | return paymentUuid;
24 | }
25 |
26 | public void setPaymentUuid(String paymentUuid) {
27 | this.paymentUuid = paymentUuid;
28 | }
29 |
30 | public String getCurrency() {
31 | return currency;
32 | }
33 |
34 | public void setCurrency(String currency) {
35 | this.currency = currency;
36 | }
37 |
38 | public String getAmount() {
39 | return amount;
40 | }
41 |
42 | public void setAmount(String amount) {
43 | this.amount = amount;
44 | }
45 |
46 | public String getAddress() {
47 | return address;
48 | }
49 |
50 | public void setAddress(String address) {
51 | this.address = address;
52 | }
53 |
54 | public LocalDateTime getOpened() {
55 | return opened;
56 | }
57 |
58 | public void setOpened(LocalDateTime opened) {
59 | this.opened = opened;
60 | }
61 |
62 | public Boolean getAuthorized() {
63 | return authorized;
64 | }
65 |
66 | public void setAuthorized(Boolean authorized) {
67 | this.authorized = authorized;
68 | }
69 |
70 | public Boolean getPendingPayment() {
71 | return pendingPayment;
72 | }
73 |
74 | public void setPendingPayment(Boolean pendingPayment) {
75 | this.pendingPayment = pendingPayment;
76 | }
77 |
78 | public Double getTxCost() {
79 | return txCost;
80 | }
81 |
82 | public void setTxCost(Double txCost) {
83 | this.txCost = txCost;
84 | }
85 |
86 | public String getTxId() {
87 | return txId;
88 | }
89 |
90 | public void setTxId(String txId) {
91 | this.txId = txId;
92 | }
93 |
94 | public Boolean getCanceled() {
95 | return canceled;
96 | }
97 |
98 | public void setCanceled(Boolean canceled) {
99 | this.canceled = canceled;
100 | }
101 |
102 | public Boolean getInvalidAddress() {
103 | return invalidAddress;
104 | }
105 |
106 | public void setInvalidAddress(Boolean invalidAddress) {
107 | this.invalidAddress = invalidAddress;
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/accountapi/WithdrawalRequested.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.accountapi;
2 |
3 | /**
4 | * @author contact@elbatya.de
5 | */
6 | public class WithdrawalRequested {
7 | private String uuid;
8 |
9 | public String getUuid() {
10 | return uuid;
11 | }
12 |
13 | public void setUuid(String uuid) {
14 | this.uuid = uuid;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/common/ApiResult.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.common;
2 |
3 | import java.util.Optional;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class ApiResult {
9 | private boolean success;
10 | private String message;
11 | private T result;
12 |
13 | public boolean isSuccess() {
14 | return success;
15 | }
16 |
17 | public void setSuccess(boolean success) {
18 | this.success = success;
19 | }
20 |
21 | public String getMessage() {
22 | return message;
23 | }
24 |
25 | public void setMessage(String message) {
26 | this.message = message;
27 | }
28 |
29 | public T getResult() {
30 | return result;
31 | }
32 |
33 | public Optional getResultAsOptional() {
34 | return Optional.ofNullable(result);
35 | }
36 |
37 | public T unwrap() throws BittrexApiException {
38 | if (result == null) {
39 | String errorMessage = String.format("Message from Bittrex server: %s", this.message);
40 | throw new BittrexApiException(errorMessage);
41 | }
42 | return result;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/common/BittrexApiException.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.common;
2 |
3 | /**
4 | * @author contact@elbatya.de
5 | */
6 | public class BittrexApiException extends RuntimeException {
7 |
8 | public BittrexApiException() {
9 | }
10 |
11 | public BittrexApiException(String message) {
12 | super(message);
13 | }
14 |
15 | public BittrexApiException(String message, Throwable cause) {
16 | super(message, cause);
17 | }
18 |
19 | public BittrexApiException(Throwable cause) {
20 | super(cause);
21 | }
22 |
23 | public BittrexApiException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
24 | super(message, cause, enableSuppression, writableStackTrace);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/marketapi/OpenOrder.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.marketapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class OpenOrder {
10 |
11 | private String uuid;
12 | private String orderUuid;
13 | private String exchange;
14 | private String orderType;
15 | private BigDecimal quantity;
16 | private BigDecimal quantityRemaining;
17 | private BigDecimal limit;
18 | private BigDecimal commissionPaid;
19 | private BigDecimal price;
20 | private BigDecimal pricePerUnit;
21 | private LocalDateTime opened;
22 | private LocalDateTime closed;
23 | private Boolean cancelInitiated;
24 | private Boolean immediateOrCancel;
25 | private Boolean isConditional;
26 | private String condition;
27 | private String conditionTarget;
28 |
29 | public String getUuid() {
30 | return uuid;
31 | }
32 |
33 | public void setUuid(String uuid) {
34 | this.uuid = uuid;
35 | }
36 |
37 | public String getOrderUuid() {
38 | return orderUuid;
39 | }
40 |
41 | public void setOrderUuid(String orderUuid) {
42 | this.orderUuid = orderUuid;
43 | }
44 |
45 | public String getExchange() {
46 | return exchange;
47 | }
48 |
49 | public void setExchange(String exchange) {
50 | this.exchange = exchange;
51 | }
52 |
53 | public String getOrderType() {
54 | return orderType;
55 | }
56 |
57 | public void setOrderType(String orderType) {
58 | this.orderType = orderType;
59 | }
60 |
61 | public BigDecimal getQuantity() {
62 | return quantity;
63 | }
64 |
65 | public void setQuantity(BigDecimal quantity) {
66 | this.quantity = quantity;
67 | }
68 |
69 | public BigDecimal getQuantityRemaining() {
70 | return quantityRemaining;
71 | }
72 |
73 | public void setQuantityRemaining(BigDecimal quantityRemaining) {
74 | this.quantityRemaining = quantityRemaining;
75 | }
76 |
77 | public BigDecimal getLimit() {
78 | return limit;
79 | }
80 |
81 | public void setLimit(BigDecimal limit) {
82 | this.limit = limit;
83 | }
84 |
85 | public BigDecimal getCommissionPaid() {
86 | return commissionPaid;
87 | }
88 |
89 | public void setCommissionPaid(BigDecimal commissionPaid) {
90 | this.commissionPaid = commissionPaid;
91 | }
92 |
93 | public BigDecimal getPrice() {
94 | return price;
95 | }
96 |
97 | public void setPrice(BigDecimal price) {
98 | this.price = price;
99 | }
100 |
101 | public BigDecimal getPricePerUnit() {
102 | return pricePerUnit;
103 | }
104 |
105 | public void setPricePerUnit(BigDecimal pricePerUnit) {
106 | this.pricePerUnit = pricePerUnit;
107 | }
108 |
109 | public LocalDateTime getOpened() {
110 | return opened;
111 | }
112 |
113 | public void setOpened(LocalDateTime opened) {
114 | this.opened = opened;
115 | }
116 |
117 | public LocalDateTime getClosed() {
118 | return closed;
119 | }
120 |
121 | public void setClosed(LocalDateTime closed) {
122 | this.closed = closed;
123 | }
124 |
125 | public Boolean getCancelInitiated() {
126 | return cancelInitiated;
127 | }
128 |
129 | public void setCancelInitiated(Boolean cancelInitiated) {
130 | this.cancelInitiated = cancelInitiated;
131 | }
132 |
133 | public Boolean getImmediateOrCancel() {
134 | return immediateOrCancel;
135 | }
136 |
137 | public void setImmediateOrCancel(Boolean immediateOrCancel) {
138 | this.immediateOrCancel = immediateOrCancel;
139 | }
140 |
141 | public Boolean getIsConditional() {
142 | return isConditional;
143 | }
144 |
145 | public void setIsConditional(Boolean conditional) {
146 | isConditional = conditional;
147 | }
148 |
149 | public String getCondition() {
150 | return condition;
151 | }
152 |
153 | public void setCondition(String condition) {
154 | this.condition = condition;
155 | }
156 |
157 | public String getConditionTarget() {
158 | return conditionTarget;
159 | }
160 |
161 | public void setConditionTarget(String conditionTarget) {
162 | this.conditionTarget = conditionTarget;
163 | }
164 | }
165 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/marketapi/OrderCreated.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.marketapi;
2 |
3 | /**
4 | * @author contact@elbatya.de
5 | */
6 | public class OrderCreated {
7 |
8 | private String uuid;
9 |
10 | public String getUuid() {
11 | return uuid;
12 | }
13 |
14 | public void setUuid(String uuid) {
15 | this.uuid = uuid;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/Currency.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class Currency {
9 |
10 | private String currency;
11 | private String currencyLong;
12 | private Integer minConfirmation;
13 | private BigDecimal txFee;
14 | private Boolean isActive;
15 | private String coinType;
16 | private String baseAddress;
17 | private String notice;
18 |
19 |
20 | public String getCurrency() {
21 | return currency;
22 | }
23 |
24 | public void setCurrency(String currency) {
25 | this.currency = currency;
26 | }
27 |
28 | public String getCurrencyLong() {
29 | return currencyLong;
30 | }
31 |
32 | public void setCurrencyLong(String currencyLong) {
33 | this.currencyLong = currencyLong;
34 | }
35 |
36 | public Integer getMinConfirmation() {
37 | return minConfirmation;
38 | }
39 |
40 | public void setMinConfirmation(Integer minConfirmation) {
41 | this.minConfirmation = minConfirmation;
42 | }
43 |
44 | public BigDecimal getTxFee() {
45 | return txFee;
46 | }
47 |
48 | public void setTxFee(BigDecimal txFee) {
49 | this.txFee = txFee;
50 | }
51 |
52 | public Boolean getIsActive() {
53 | return isActive;
54 | }
55 |
56 | public void setIsActive(Boolean active) {
57 | isActive = active;
58 | }
59 |
60 | public String getCoinType() {
61 | return coinType;
62 | }
63 |
64 | public void setCoinType(String coinType) {
65 | this.coinType = coinType;
66 | }
67 |
68 | public String getBaseAddress() {
69 | return baseAddress;
70 | }
71 |
72 | public void setBaseAddress(String baseAddress) {
73 | this.baseAddress = baseAddress;
74 | }
75 |
76 | public String getNotice() {
77 | return notice;
78 | }
79 |
80 | public void setNotice(String notice) {
81 | this.notice = notice;
82 | }
83 |
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/Market.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class Market {
10 |
11 | private String marketCurrency;
12 | private String marketCurrencyLong;
13 |
14 | private String baseCurrency;
15 | private String baseCurrencyLong;
16 |
17 | private BigDecimal minTradeSize;
18 |
19 | private String marketName;
20 |
21 | private Boolean isActive;
22 |
23 | private LocalDateTime created;
24 |
25 | private String notice;
26 |
27 | private Boolean isSponsored;
28 |
29 | private String logoUrl;
30 |
31 |
32 | public String getMarketCurrency() {
33 | return marketCurrency;
34 | }
35 |
36 | public void setMarketCurrency(String marketCurrency) {
37 | this.marketCurrency = marketCurrency;
38 | }
39 |
40 | public String getMarketCurrencyLong() {
41 | return marketCurrencyLong;
42 | }
43 |
44 | public void setMarketCurrencyLong(String marketCurrencyLong) {
45 | this.marketCurrencyLong = marketCurrencyLong;
46 | }
47 |
48 | public String getBaseCurrency() {
49 | return baseCurrency;
50 | }
51 |
52 | public void setBaseCurrency(String baseCurrency) {
53 | this.baseCurrency = baseCurrency;
54 | }
55 |
56 | public String getBaseCurrencyLong() {
57 | return baseCurrencyLong;
58 | }
59 |
60 | public void setBaseCurrencyLong(String baseCurrencyLong) {
61 | this.baseCurrencyLong = baseCurrencyLong;
62 | }
63 |
64 | public BigDecimal getMinTradeSize() {
65 | return minTradeSize;
66 | }
67 |
68 | public void setMinTradeSize(BigDecimal minTradeSize) {
69 | this.minTradeSize = minTradeSize;
70 | }
71 |
72 | public String getMarketName() {
73 | return marketName;
74 | }
75 |
76 | public void setMarketName(String marketName) {
77 | this.marketName = marketName;
78 | }
79 |
80 | public Boolean getIsActive() {
81 | return isActive;
82 | }
83 |
84 | public void setIsActive(Boolean active) {
85 | isActive = active;
86 | }
87 |
88 | public LocalDateTime getCreated() {
89 | return created;
90 | }
91 |
92 | public void setCreated(LocalDateTime created) {
93 | this.created = created;
94 | }
95 |
96 | public String getNotice() {
97 | return notice;
98 | }
99 |
100 | public void setNotice(String notice) {
101 | this.notice = notice;
102 | }
103 |
104 | public Boolean getIsSponsored() {
105 | return isSponsored;
106 | }
107 |
108 | public void setIsSponsored(Boolean sponsored) {
109 | isSponsored = sponsored;
110 | }
111 |
112 | public String getLogoUrl() {
113 | return logoUrl;
114 | }
115 |
116 | public void setLogoUrl(String logoUrl) {
117 | this.logoUrl = logoUrl;
118 | }
119 | }
120 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/MarketHistoryEntry.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class MarketHistoryEntry {
10 |
11 | private Long id;
12 | private LocalDateTime timeStamp;
13 | private BigDecimal quantity;
14 | private BigDecimal price;
15 | private BigDecimal total;
16 | private String fillType;
17 | private String orderType;
18 |
19 | public Long getId() {
20 | return id;
21 | }
22 |
23 | public void setId(Long id) {
24 | this.id = id;
25 | }
26 |
27 | public LocalDateTime getTimeStamp() {
28 | return timeStamp;
29 | }
30 |
31 | public void setTimeStamp(LocalDateTime timeStamp) {
32 | this.timeStamp = timeStamp;
33 | }
34 |
35 | public BigDecimal getQuantity() {
36 | return quantity;
37 | }
38 |
39 | public void setQuantity(BigDecimal quantity) {
40 | this.quantity = quantity;
41 | }
42 |
43 | public BigDecimal getPrice() {
44 | return price;
45 | }
46 |
47 | public void setPrice(BigDecimal price) {
48 | this.price = price;
49 | }
50 |
51 | public BigDecimal getTotal() {
52 | return total;
53 | }
54 |
55 | public void setTotal(BigDecimal total) {
56 | this.total = total;
57 | }
58 |
59 | public String getFillType() {
60 | return fillType;
61 | }
62 |
63 | public void setFillType(String fillType) {
64 | this.fillType = fillType;
65 | }
66 |
67 | public String getOrderType() {
68 | return orderType;
69 | }
70 |
71 | public void setOrderType(String orderType) {
72 | this.orderType = orderType;
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/MarketSummary.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 | import java.time.LocalDateTime;
5 |
6 | /**
7 | * @author contact@elbatya.de
8 | */
9 | public class MarketSummary {
10 |
11 | private String marketName;
12 | private BigDecimal high;
13 | private BigDecimal low;
14 | private BigDecimal volume;
15 | private BigDecimal last;
16 | private BigDecimal baseVolume;
17 | private LocalDateTime timeStamp;
18 | private BigDecimal bid;
19 | private BigDecimal ask;
20 | private Integer openBuyOrders;
21 | private Integer openSellOrders;
22 | private BigDecimal prevDay;
23 | private LocalDateTime created;
24 |
25 | public String getMarketName() {
26 | return marketName;
27 | }
28 |
29 | public void setMarketName(String marketName) {
30 | this.marketName = marketName;
31 | }
32 |
33 | public BigDecimal getHigh() {
34 | return high;
35 | }
36 |
37 | public void setHigh(BigDecimal high) {
38 | this.high = high;
39 | }
40 |
41 | public BigDecimal getLow() {
42 | return low;
43 | }
44 |
45 | public void setLow(BigDecimal low) {
46 | this.low = low;
47 | }
48 |
49 | public BigDecimal getVolume() {
50 | return volume;
51 | }
52 |
53 | public void setVolume(BigDecimal volume) {
54 | this.volume = volume;
55 | }
56 |
57 | public BigDecimal getLast() {
58 | return last;
59 | }
60 |
61 | public void setLast(BigDecimal last) {
62 | this.last = last;
63 | }
64 |
65 | public BigDecimal getBaseVolume() {
66 | return baseVolume;
67 | }
68 |
69 | public void setBaseVolume(BigDecimal baseVolume) {
70 | this.baseVolume = baseVolume;
71 | }
72 |
73 |
74 | public BigDecimal getBid() {
75 | return bid;
76 | }
77 |
78 | public void setBid(BigDecimal bid) {
79 | this.bid = bid;
80 | }
81 |
82 | public BigDecimal getAsk() {
83 | return ask;
84 | }
85 |
86 | public void setAsk(BigDecimal ask) {
87 | this.ask = ask;
88 | }
89 |
90 | public Integer getOpenBuyOrders() {
91 | return openBuyOrders;
92 | }
93 |
94 | public void setOpenBuyOrders(Integer openBuyOrders) {
95 | this.openBuyOrders = openBuyOrders;
96 | }
97 |
98 | public Integer getOpenSellOrders() {
99 | return openSellOrders;
100 | }
101 |
102 | public void setOpenSellOrders(Integer openSellOrders) {
103 | this.openSellOrders = openSellOrders;
104 | }
105 |
106 | public BigDecimal getPrevDay() {
107 | return prevDay;
108 | }
109 |
110 | public void setPrevDay(BigDecimal prevDay) {
111 | this.prevDay = prevDay;
112 | }
113 |
114 | public LocalDateTime getTimeStamp() {
115 | return timeStamp;
116 | }
117 |
118 | public void setTimeStamp(LocalDateTime timeStamp) {
119 | this.timeStamp = timeStamp;
120 | }
121 |
122 | public LocalDateTime getCreated() {
123 | return created;
124 | }
125 |
126 | public void setCreated(LocalDateTime created) {
127 | this.created = created;
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/OrderBook.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class OrderBook {
9 |
10 | private List buy;
11 | private List sell;
12 |
13 | public List getBuy() {
14 | return buy;
15 | }
16 |
17 | public void setBuy(List buy) {
18 | this.buy = buy;
19 | }
20 |
21 | public List getSell() {
22 | return sell;
23 | }
24 |
25 | public void setSell(List sell) {
26 | this.sell = sell;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/OrderBookEntry.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class OrderBookEntry {
9 |
10 | private BigDecimal Quantity;
11 | private BigDecimal Rate;
12 |
13 | public BigDecimal getQuantity() {
14 | return Quantity;
15 | }
16 |
17 | public void setQuantity(BigDecimal quantity) {
18 | Quantity = quantity;
19 | }
20 |
21 | public BigDecimal getRate() {
22 | return Rate;
23 | }
24 |
25 | public void setRate(BigDecimal rate) {
26 | Rate = rate;
27 | }
28 | }
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/api/model/publicapi/Ticker.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api.model.publicapi;
2 |
3 | import java.math.BigDecimal;
4 |
5 | /**
6 | * @author contact@elbatya.de
7 | */
8 | public class Ticker {
9 |
10 | private BigDecimal bid;
11 | private BigDecimal ask;
12 | private BigDecimal last;
13 |
14 | public BigDecimal getBid() {
15 | return bid;
16 | }
17 |
18 | public void setBid(BigDecimal bid) {
19 | this.bid = bid;
20 | }
21 |
22 | public BigDecimal getAsk() {
23 | return ask;
24 | }
25 |
26 | public void setAsk(BigDecimal ask) {
27 | this.ask = ask;
28 | }
29 |
30 | public BigDecimal getLast() {
31 | return last;
32 | }
33 |
34 | public void setLast(BigDecimal last) {
35 | this.last = last;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/config/ApiBuilderFactory.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.config;
2 |
3 | import com.fasterxml.jackson.databind.ObjectMapper;
4 | import de.elbatya.cryptocoins.bittrexclient.util.ApiKeySigningUtil;
5 | import feign.Feign;
6 | import feign.RequestInterceptor;
7 | import feign.jackson.JacksonDecoder;
8 | import feign.jackson.JacksonEncoder;
9 |
10 | import javax.annotation.Nullable;
11 |
12 | /**
13 | * @author contact@elbatya.de
14 | */
15 | public class ApiBuilderFactory {
16 |
17 | private String baseUrl;
18 |
19 | public ApiBuilderFactory(String baseUrl) {
20 | this.baseUrl = baseUrl;
21 | }
22 |
23 | public Feign.Builder createApiBuilder(){
24 | return createApiBuilder(null);
25 | }
26 |
27 |
28 | public Feign.Builder createApiBuilder(@Nullable ApiCredentials credentials){
29 | ObjectMapper mapper = ObjectMapperConfigurer.configure(new ObjectMapper());
30 |
31 | Feign.Builder apiBuilder = Feign.builder()
32 | .encoder(new JacksonEncoder())
33 | .decoder(new JacksonDecoder(mapper));
34 |
35 | signRequestsIfCredentialsNotNull(apiBuilder, credentials);
36 |
37 | return apiBuilder;
38 | }
39 |
40 | private void signRequestsIfCredentialsNotNull(Feign.Builder builder, @Nullable ApiCredentials credentials){
41 | if (credentials != null) {
42 | RequestInterceptor signAllRequests = requestTemplate -> {
43 |
44 | requestTemplate.query("apikey", credentials.getKey());
45 | requestTemplate.query("nonce", ApiKeySigningUtil.createNonce());
46 |
47 | String requestUrl = baseUrl+requestTemplate.request().url();
48 | String sign = ApiKeySigningUtil.createSign(requestUrl, credentials.getSecret());
49 | requestTemplate.header("apisign", sign);
50 | };
51 |
52 | builder.requestInterceptor(signAllRequests);
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/config/ApiCredentials.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.config;
2 |
3 | /**
4 | * @author contact@elbatya.de
5 | */
6 | public class ApiCredentials {
7 |
8 | private String key;
9 | private String secret;
10 |
11 | public ApiCredentials() {
12 | }
13 |
14 | public ApiCredentials(String key, String secret) {
15 | this.key = key;
16 | this.secret = secret;
17 | }
18 |
19 | public String getKey() {
20 | return key;
21 | }
22 |
23 | public void setKey(String key) {
24 | this.key = key;
25 | }
26 |
27 | public String getSecret() {
28 | return secret;
29 | }
30 |
31 | public void setSecret(String secret) {
32 | this.secret = secret;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/config/ObjectMapperConfigurer.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.config;
2 |
3 |
4 | import com.fasterxml.jackson.databind.DeserializationFeature;
5 | import com.fasterxml.jackson.databind.MapperFeature;
6 | import com.fasterxml.jackson.databind.ObjectMapper;
7 | import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
8 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
9 | import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
10 |
11 | /**
12 | * @author contact@elbatya.de
13 | */
14 | public class ObjectMapperConfigurer {
15 |
16 | public static ObjectMapper configure(ObjectMapper mapper){
17 |
18 | return mapper
19 | .registerModule(new ParameterNamesModule())
20 | .registerModule(new Jdk8Module())
21 | .registerModule(new JavaTimeModule())
22 | .configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)
23 | .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/de/elbatya/cryptocoins/bittrexclient/util/ApiKeySigningUtil.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.util;
2 |
3 | import javax.crypto.Mac;
4 | import javax.crypto.spec.SecretKeySpec;
5 | import java.security.InvalidKeyException;
6 | import java.security.NoSuchAlgorithmException;
7 | import java.security.SecureRandom;
8 | import java.util.Base64;
9 |
10 | /**
11 | * @author contact@elbatya.de
12 | */
13 | public class ApiKeySigningUtil {
14 |
15 | private static final String ALGORITHM = "HmacSHA512";
16 | private static final int NONCE_BYTE_LENGTH = 32;
17 |
18 | private static SecureRandom random = new SecureRandom();
19 |
20 | public static String createNonce(){
21 | byte[] bytes = new byte[NONCE_BYTE_LENGTH];
22 | random.nextBytes(bytes);
23 | return Base64.getEncoder().encodeToString(bytes);
24 | }
25 |
26 | public static String createSign(String uri, String apiSecret){
27 | byte[] signBytes = calculateSignBytes(uri, apiSecret);
28 | return bytesToHexString(signBytes);
29 | }
30 |
31 | private static byte[] calculateSignBytes(String uri, String secret) {
32 |
33 | try {
34 | Mac mac = Mac.getInstance(ALGORITHM);
35 | SecretKeySpec secretKeySpec = new SecretKeySpec(secret.getBytes(), ALGORITHM);
36 | mac.init(secretKeySpec);
37 | return mac.doFinal(uri.getBytes());
38 |
39 | } catch (NoSuchAlgorithmException | InvalidKeyException e) {
40 | throw new RuntimeException(e);
41 | }
42 |
43 | }
44 |
45 | private static String bytesToHexString(byte[] bytes){
46 | StringBuilder stringBuilder = new StringBuilder();
47 | for (byte b : bytes) {
48 | stringBuilder.append(String.format("%02x", b));
49 | }
50 | return stringBuilder.toString();
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexAccountApiTest.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import com.fasterxml.jackson.databind.DeserializationFeature;
4 | import com.fasterxml.jackson.databind.ObjectMapper;
5 | import de.elbatya.cryptocoins.bittrexclient.api.model.accountapi.*;
6 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
7 | import de.elbatya.cryptocoins.bittrexclient.config.ObjectMapperConfigurer;
8 | import feign.Feign;
9 | import feign.jackson.JacksonDecoder;
10 | import feign.jackson.JacksonEncoder;
11 | import feign.mock.HttpMethod;
12 | import feign.mock.MockClient;
13 | import feign.mock.MockTarget;
14 | import org.junit.Before;
15 | import org.junit.Test;
16 |
17 | import java.io.InputStream;
18 | import java.math.BigDecimal;
19 | import java.util.List;
20 |
21 | import static org.assertj.core.api.Assertions.assertThat;
22 |
23 | /**
24 | * @author contact@elbatya.de
25 | */
26 | public class BittrexAccountApiTest {
27 |
28 | public static final String MARKET = "btc-eth";
29 | public static final String CURRENCY = "btc";
30 |
31 | private MockClient mockClient;
32 | private BittrexAccountApi api;
33 |
34 | private InputStream load(String file) {
35 | return getClass().getClassLoader().getResourceAsStream("accountapi/"+file);
36 | }
37 |
38 | @Before
39 | public void setUp() throws Exception {
40 | ClassLoader cl = getClass().getClassLoader();
41 |
42 | mockClient = new MockClient()
43 | .ok(HttpMethod.GET, "/account/getbalances", load("getbalances.json"))
44 | .ok(HttpMethod.GET, "/account/getbalance?currency=btc", load("getbalance.json"))
45 | .ok(HttpMethod.GET, "/account/getdepositaddress?currency=btc", load("getdepositaddress.json"))
46 | .ok(HttpMethod.GET, "/account/getdeposithistory", load("getdeposithistory.json"))
47 | .ok(HttpMethod.GET, "/account/getdeposithistory?currency=btc", load("getdeposithistory.json"))
48 | .ok(HttpMethod.GET, "/account/getorder?uuid=1234", load("getorder.json"))
49 | .ok(HttpMethod.GET, "/account/getorderhistory", load("getorderhistory.json"))
50 | .ok(HttpMethod.GET, "/account/getorderhistory?market=btc-eth", load("getorderhistoryformarket.json"))
51 | .ok(HttpMethod.GET, "/account/getwithdrawalhistory?currency=btc", load("getwithdrawalhistory.json"))
52 | .ok(HttpMethod.GET, "/account/getwithdrawalhistory", load("getwithdrawalhistory.json"))
53 | .ok(HttpMethod.GET, "/account/withdraw?currency=btc&quantity=11.0&address=BTC_ADDRESS", load("withdraw.json"))
54 | .ok(HttpMethod.GET, "/account/withdraw?currency=btc&quantity=11.0&address=BTC_ADDRESS&paymentid=note", load("withdraw.json"))
55 | ;
56 |
57 | ObjectMapper strictMapper = ObjectMapperConfigurer.configure(new ObjectMapper());
58 | strictMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
59 |
60 | api = Feign.builder()
61 | .encoder(new JacksonEncoder())
62 | .decoder(new JacksonDecoder(strictMapper))
63 | .client(mockClient)
64 | .target(new MockTarget<>(BittrexAccountApi.class));
65 | }
66 |
67 | @Test
68 | public void getBalances() throws Exception {
69 | ApiResult> balances = api.getBalances();
70 | assertThat(balances).isNotNull();
71 | assertThat(balances.isSuccess()).isTrue();
72 | assertThat(balances.getResult()).isNotEmpty();
73 | }
74 |
75 | @Test
76 | public void getBalance() throws Exception {
77 | ApiResult balance = api.getBalance(CURRENCY);
78 | assertThat(balance).isNotNull();
79 | assertThat(balance.isSuccess()).isTrue();
80 | assertThat(balance.getResult()).isNotNull();
81 | }
82 |
83 | @Test
84 | public void getDepositAddress() throws Exception {
85 | ApiResult depositAddress = api.getDepositAddress(CURRENCY);
86 | assertThat(depositAddress).isNotNull();
87 | assertThat(depositAddress.isSuccess()).isTrue();
88 | assertThat(depositAddress.getResult()).isNotNull();
89 | }
90 |
91 | @Test
92 | public void getOrder() throws Exception {
93 | ApiResult order = api.getOrder("1234");
94 | assertThat(order).isNotNull();
95 | assertThat(order.isSuccess()).isTrue();
96 | assertThat(order.getResult()).isNotNull();
97 | }
98 |
99 | @Test
100 | public void getOrderHistory() throws Exception {
101 | ApiResult> orderHistory = api.getOrderHistory();
102 | assertThat(orderHistory).isNotNull();
103 | assertThat(orderHistory.isSuccess()).isTrue();
104 | assertThat(orderHistory.getResult()).isNotEmpty();
105 | }
106 |
107 | @Test
108 | public void getOrderHistoryForMarket() throws Exception {
109 | ApiResult> orderHistory = api.getOrderHistory(MARKET);
110 | assertThat(orderHistory).isNotNull();
111 | assertThat(orderHistory.isSuccess()).isTrue();
112 | assertThat(orderHistory.getResult()).isNotEmpty();
113 | }
114 |
115 | @Test
116 | public void getWithdrawalHistory() throws Exception {
117 | ApiResult> orderHistory = api.getWithdrawalHistory();
118 | assertThat(orderHistory).isNotNull();
119 | assertThat(orderHistory.isSuccess()).isTrue();
120 | assertThat(orderHistory.getResult()).isNotEmpty();
121 | }
122 |
123 | @Test
124 | public void getWithdrawalHistoryForMarket() throws Exception {
125 | ApiResult> orderHistory = api.getWithdrawalHistory(CURRENCY);
126 | assertThat(orderHistory).isNotNull();
127 | assertThat(orderHistory.isSuccess()).isTrue();
128 | assertThat(orderHistory.getResult()).isNotEmpty();
129 | }
130 |
131 | @Test
132 | public void getDepositHistory() throws Exception {
133 | ApiResult> depositHistory = api.getDepositHistory();
134 | assertThat(depositHistory).isNotNull();
135 | assertThat(depositHistory.isSuccess()).isTrue();
136 | assertThat(depositHistory.getResult()).isNotEmpty();
137 | }
138 |
139 | @Test
140 | public void getDepositHistoryForCurrency() throws Exception {
141 | ApiResult> depositHistory = api.getDepositHistory(CURRENCY);
142 | assertThat(depositHistory).isNotNull();
143 | assertThat(depositHistory.isSuccess()).isTrue();
144 | assertThat(depositHistory.getResult()).isNotEmpty();
145 | }
146 |
147 |
148 | @Test
149 | public void withdraw() throws Exception {
150 | ApiResult depositHistory = api.withdraw(
151 | CURRENCY,
152 | BigDecimal.valueOf(11.0),
153 | "BTC_ADDRESS");
154 | assertThat(depositHistory).isNotNull();
155 | assertThat(depositHistory.isSuccess()).isTrue();
156 | assertThat(depositHistory.getResult()).isNotNull();
157 | }
158 |
159 |
160 | @Test
161 | public void withdrawWithPaymentId() throws Exception {
162 | ApiResult depositHistory = api.withdraw(
163 | CURRENCY,
164 | BigDecimal.valueOf(11.0),
165 | "BTC_ADDRESS",
166 | "note"
167 | );
168 | assertThat(depositHistory).isNotNull();
169 | assertThat(depositHistory.isSuccess()).isTrue();
170 | assertThat(depositHistory.getResult()).isNotNull();
171 | }
172 |
173 |
174 |
175 | }
--------------------------------------------------------------------------------
/src/test/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexMarketApiTest.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import com.fasterxml.jackson.databind.DeserializationFeature;
4 | import com.fasterxml.jackson.databind.ObjectMapper;
5 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
6 | import de.elbatya.cryptocoins.bittrexclient.api.model.marketapi.OpenOrder;
7 | import de.elbatya.cryptocoins.bittrexclient.api.model.marketapi.OrderCreated;
8 | import de.elbatya.cryptocoins.bittrexclient.config.ObjectMapperConfigurer;
9 | import feign.Feign;
10 | import feign.jackson.JacksonDecoder;
11 | import feign.jackson.JacksonEncoder;
12 | import feign.mock.HttpMethod;
13 | import feign.mock.MockClient;
14 | import feign.mock.MockTarget;
15 | import org.junit.Before;
16 | import org.junit.Test;
17 |
18 | import java.io.InputStream;
19 | import java.math.BigDecimal;
20 | import java.util.List;
21 |
22 | import static org.assertj.core.api.Assertions.assertThat;
23 |
24 | /**
25 | * @author contact@elbatya.de
26 | */
27 | public class BittrexMarketApiTest {
28 |
29 |
30 | public static final String MARKET = "btc-eth";
31 | private MockClient mockClient;
32 | private BittrexMarketApi api;
33 |
34 | private InputStream load(String file) {
35 | return getClass().getClassLoader().getResourceAsStream("marketapi/"+file);
36 | }
37 |
38 | @Before
39 | public void setUp() throws Exception {
40 | ClassLoader cl = getClass().getClassLoader();
41 |
42 | mockClient = new MockClient()
43 | .ok(HttpMethod.GET, "/market/getopenorders", load("getopenorders.json"))
44 | .ok(HttpMethod.GET, "/market/getopenorders?market=btc-eth", load("getopenorders.json"))
45 | .ok(HttpMethod.GET, "/market/cancel?uuid=1234", load("cancelorder.json"))
46 | .ok(HttpMethod.GET, "/market/selllimit?market=btc-eth&quantity=1&rate=2", load("selllimit.json"))
47 | .ok(HttpMethod.GET, "/market/buylimit?market=btc-eth&quantity=3&rate=4", load("buylimit.json"));
48 |
49 | ObjectMapper strictMapper = ObjectMapperConfigurer.configure(new ObjectMapper());
50 | strictMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
51 |
52 | api = Feign.builder()
53 | .encoder(new JacksonEncoder())
54 | .decoder(new JacksonDecoder(strictMapper))
55 | .client(mockClient)
56 | .target(new MockTarget<>(BittrexMarketApi.class));
57 | }
58 |
59 | @Test
60 | public void getOpenOrders() throws Exception {
61 | ApiResult> openOrders = api.getOpenOrders();
62 | assertThat(openOrders).isNotNull();
63 | assertThat(openOrders.isSuccess()).isTrue();
64 | assertThat(openOrders.getResult()).isNotEmpty();
65 | }
66 |
67 | @Test
68 | public void getOpenOrdersForMarket() throws Exception {
69 | ApiResult> openOrders = api.getOpenOrders(MARKET);
70 | assertThat(openOrders).isNotNull();
71 | assertThat(openOrders.isSuccess()).isTrue();
72 | assertThat(openOrders.getResult()).isNotEmpty();
73 | }
74 |
75 | @Test
76 | public void cancelOrder() throws Exception {
77 | ApiResult openOrders = api.cancelOrder("1234");
78 | assertThat(openOrders).isNotNull();
79 | assertThat(openOrders.isSuccess()).isTrue();
80 | }
81 |
82 | @Test
83 | public void sellLimit() throws Exception {
84 | ApiResult sellOrder = api.sellLimit(MARKET, BigDecimal.ONE, BigDecimal.valueOf(2));
85 | assertThat(sellOrder).isNotNull();
86 | assertThat(sellOrder.isSuccess()).isTrue();
87 | assertThat(sellOrder.unwrap().getUuid()).isEqualTo("selluuid");
88 | }
89 |
90 | @Test
91 | public void buyLimit() throws Exception {
92 | ApiResult buyOrder = api.buyLimit(MARKET, BigDecimal.valueOf(3), BigDecimal.valueOf(4));
93 | assertThat(buyOrder).isNotNull();
94 | assertThat(buyOrder.isSuccess()).isTrue();
95 | assertThat(buyOrder.unwrap().getUuid()).isEqualTo("buyuuid");
96 | }
97 |
98 |
99 | }
--------------------------------------------------------------------------------
/src/test/java/de/elbatya/cryptocoins/bittrexclient/api/BittrexPublicApiTest.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.api;
2 |
3 | import com.fasterxml.jackson.databind.DeserializationFeature;
4 | import com.fasterxml.jackson.databind.ObjectMapper;
5 | import de.elbatya.cryptocoins.bittrexclient.api.model.common.ApiResult;
6 | import de.elbatya.cryptocoins.bittrexclient.api.model.publicapi.*;
7 | import de.elbatya.cryptocoins.bittrexclient.config.ObjectMapperConfigurer;
8 | import feign.Feign;
9 | import feign.jackson.JacksonDecoder;
10 | import feign.jackson.JacksonEncoder;
11 | import feign.mock.HttpMethod;
12 | import feign.mock.MockClient;
13 | import feign.mock.MockTarget;
14 | import org.junit.Before;
15 | import org.junit.Test;
16 |
17 | import java.io.InputStream;
18 | import java.util.List;
19 |
20 | import static org.assertj.core.api.Assertions.assertThat;
21 |
22 |
23 | /**
24 | * @author contact@elbatya.de
25 | */
26 | public class BittrexPublicApiTest {
27 |
28 | private MockClient mockClient;
29 | private BittrexPublicApi api;
30 | private final static String MARKET = "btc-eth";
31 |
32 | private InputStream load(String file) {
33 | return getClass().getClassLoader().getResourceAsStream("publicapi/"+file);
34 | }
35 |
36 | @Before
37 | public void setUp() throws Exception {
38 |
39 | ClassLoader cl = getClass().getClassLoader();
40 |
41 | mockClient = new MockClient()
42 | .ok(HttpMethod.GET, "/public/getmarkets", load("getmarkets.json"))
43 | .ok(HttpMethod.GET, "/public/getcurrencies", load("getcurrencies.json"))
44 | .ok(HttpMethod.GET, "/public/getticker?market=btc-eth", load("getticker.json"))
45 | .ok(HttpMethod.GET, "/public/getmarketsummaries", load("getmarketsummaries.json"))
46 | .ok(HttpMethod.GET, "/public/getmarketsummary?market=btc-eth", load("getmarketsummary.json"))
47 | .ok(HttpMethod.GET, "/public/getorderbook?type=both&market=btc-eth", load("getorderbookboth.json"))
48 | .ok(HttpMethod.GET, "/public/getorderbook?type=both&market=btc-eth&depth=10", load("getorderbookboth.json"))
49 | .ok(HttpMethod.GET, "/public/getorderbook?type=sell&market=btc-eth", load("getorderbooksell.json"))
50 | .ok(HttpMethod.GET, "/public/getorderbook?type=sell&market=btc-eth&depth=10", load("getorderbooksell.json"))
51 | .ok(HttpMethod.GET, "/public/getorderbook?type=buy&market=btc-eth", load("getorderbookbuy.json"))
52 | .ok(HttpMethod.GET, "/public/getorderbook?type=buy&market=btc-eth&depth=10", load("getorderbookbuy.json"))
53 | .ok(HttpMethod.GET, "/public/getmarkethistory?market=btc-eth", load("getmarkethistory.json"));
54 |
55 |
56 | ObjectMapper strictMapper = ObjectMapperConfigurer.configure(new ObjectMapper());
57 | strictMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
58 |
59 | api = Feign.builder()
60 | .encoder(new JacksonEncoder())
61 | .decoder(new JacksonDecoder(strictMapper))
62 | .client(mockClient)
63 | .target(new MockTarget<>(BittrexPublicApi.class));
64 | }
65 |
66 | @Test
67 | public void getMarkets() throws Exception {
68 | ApiResult> markets = api.getMarkets();
69 | assertThat(markets).isNotNull();
70 | assertThat(markets.isSuccess()).isTrue();
71 | assertThat(markets.getResult()).isNotEmpty();
72 | }
73 |
74 | @Test
75 | public void getCurrencies() throws Exception {
76 | ApiResult> currencies = api.getCurrencies();
77 | assertThat(currencies).isNotNull();
78 | assertThat(currencies.isSuccess()).isTrue();
79 | assertThat(currencies.getResult()).isNotEmpty();
80 | }
81 |
82 | @Test
83 | public void getTicker() throws Exception {
84 | ApiResult ticker = api.getTicker(MARKET);
85 | assertThat(ticker).isNotNull();
86 | assertThat(ticker.isSuccess()).isTrue();
87 | assertThat(ticker.getResult()).isNotNull();
88 | }
89 |
90 | @Test
91 | public void getMarketSummaries() throws Exception {
92 | ApiResult> marketSummaries = api.getMarketSummaries();
93 | assertThat(marketSummaries).isNotNull();
94 | assertThat(marketSummaries.isSuccess()).isTrue();
95 | assertThat(marketSummaries.getResult()).isNotEmpty();
96 | }
97 |
98 | @Test
99 | public void getMarketSummary() throws Exception {
100 | ApiResult> marketSummary = api.getMarketSummary(MARKET);
101 | assertThat(marketSummary).isNotNull();
102 | assertThat(marketSummary.isSuccess()).isTrue();
103 | assertThat(marketSummary.getResult()).isNotEmpty();
104 | }
105 |
106 | @Test
107 | public void getOrderBook() throws Exception {
108 | ApiResult orderBook = api.getOrderBook(MARKET);
109 | assertThat(orderBook).isNotNull();
110 | assertThat(orderBook.isSuccess()).isTrue();
111 | assertThat(orderBook.getResult()).isNotNull();
112 | assertThat(orderBook.getResult().getBuy()).isNotEmpty();
113 | assertThat(orderBook.getResult().getSell()).isNotEmpty();
114 | }
115 |
116 | @Test
117 | public void getOrderBookWithDepth() throws Exception {
118 | ApiResult orderBook = api.getOrderBook(MARKET, 10);
119 | assertThat(orderBook).isNotNull();
120 | assertThat(orderBook.isSuccess()).isTrue();
121 | assertThat(orderBook.getResult()).isNotNull();
122 | }
123 |
124 | @Test
125 | public void getOrderBookForSell() throws Exception {
126 | ApiResult> orderBookForSell = api.getOrderBookForSell(MARKET);
127 | assertThat(orderBookForSell).isNotNull();
128 | assertThat(orderBookForSell.isSuccess()).isTrue();
129 | assertThat(orderBookForSell.getResult()).isNotEmpty();
130 | }
131 |
132 | @Test
133 | public void getOrderBookForSellWithDepth() throws Exception {
134 | ApiResult> orderBookForSell = api.getOrderBookForSell(MARKET, 10);
135 | assertThat(orderBookForSell).isNotNull();
136 | assertThat(orderBookForSell.isSuccess()).isTrue();
137 | assertThat(orderBookForSell.getResult()).isNotEmpty();
138 | }
139 |
140 | @Test
141 | public void getOrderBookForBuy() throws Exception {
142 | ApiResult> orderBookForBuy = api.getOrderBookForBuy(MARKET);
143 | assertThat(orderBookForBuy).isNotNull();
144 | assertThat(orderBookForBuy.isSuccess()).isTrue();
145 | assertThat(orderBookForBuy.getResult()).isNotEmpty();
146 | }
147 |
148 | @Test
149 | public void getOrderBookForBuyWithDepth() throws Exception {
150 | ApiResult> orderBookForBuy = api.getOrderBookForBuy(MARKET, 10);
151 | assertThat(orderBookForBuy).isNotNull();
152 | assertThat(orderBookForBuy.isSuccess()).isTrue();
153 | assertThat(orderBookForBuy.getResult()).isNotEmpty();
154 | }
155 |
156 | @Test
157 | public void getMarketHistory() throws Exception {
158 | ApiResult> marketHistory = api.getMarketHistory(MARKET);
159 | assertThat(marketHistory).isNotNull();
160 | assertThat(marketHistory.isSuccess()).isTrue();
161 | assertThat(marketHistory.getResult()).isNotEmpty();
162 | }
163 |
164 | }
--------------------------------------------------------------------------------
/src/test/java/de/elbatya/cryptocoins/bittrexclient/util/ApiKeySigningUtilTest.java:
--------------------------------------------------------------------------------
1 | package de.elbatya.cryptocoins.bittrexclient.util;
2 |
3 | import org.junit.Test;
4 |
5 | import java.util.stream.IntStream;
6 |
7 | import static org.assertj.core.api.Assertions.assertThat;
8 |
9 |
10 | /**
11 | * @author contact@elbatya.de
12 | */
13 | public class ApiKeySigningUtilTest {
14 |
15 | @Test
16 | public void createNonce() throws Exception {
17 | long count = IntStream.range(0,100000)
18 | .mapToObj(i -> ApiKeySigningUtil.createNonce())
19 | .distinct()
20 | .count();
21 |
22 | assertThat(count).isEqualTo(100000L);
23 | }
24 |
25 | @Test
26 | public void createSign() throws Exception {
27 | String sign = ApiKeySigningUtil.createSign("test","secret");
28 | String expectedSign =
29 | "f8a4f0a209167bc192a1bffaa01ecdb0" +
30 | "9e06c57f96530d92ec9ccea0090d290e" +
31 | "55071306d6b654f26ae0c8721f7e48a2" +
32 | "d7130b881151f2cec8d61d941a6be88a";
33 |
34 | assertThat(sign).isEqualTo(expectedSign);
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getbalance.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": {
5 | "Currency": "BTC",
6 | "Balance": 0.00000038,
7 | "Available": 0.00000038,
8 | "Pending": 0.00000000,
9 | "CryptoAddress": "0000000AAAA00000AAA00000AAA0000AAA"
10 |
11 | }
12 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getbalances.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "Currency": "BTC",
7 | "Balance": 0.00000038,
8 | "Available": 0.00000038,
9 | "Pending": 0.00000000,
10 | "CryptoAddress": "0000000AAAA00000AAA00000AAA0000AAA"
11 | },
12 | {
13 | "Currency": "ETH",
14 | "Balance": 0.00000000,
15 | "Available": 0.00000000,
16 | "Pending": 0.00000000,
17 | "CryptoAddress": "0x000000AAAA00000AAA00000AAA0000AAA"
18 | },
19 | {
20 | "Currency": "VRM",
21 | "Balance": 0.00000000,
22 | "Available": 0.00000000,
23 | "Pending": 0.00000000,
24 | "CryptoAddress": "0000000AAAA00000AAA00000AAA0000AAA"
25 | },
26 | {
27 | "Currency": "WINGS",
28 | "Balance": 188.35687667,
29 | "Available": 158.35687667,
30 | "Pending": 0.00000000,
31 | "CryptoAddress": null
32 | }
33 | ]
34 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getdepositaddress.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": {
5 | "Currency": "BTC",
6 | "Address": "0000000AAAA00000AAA00000AAA0000AAA"
7 | }
8 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getdeposithistory.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "Id": 19418817,
7 | "Amount": 0.05929229,
8 | "Currency": "BTC",
9 | "Confirmations": 2,
10 | "LastUpdated": "2017-06-06T21:26:52.423",
11 | "TxId": "4bf29f18a6364691000254eb6c3485b8555a6fec4bf2dd440d20ecd41eb34c0d",
12 | "CryptoAddress": "0000000AAAA00000AAA00000AAA0000AAA"
13 | }
14 | ]
15 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getorder.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": {
5 | "AccountId": null,
6 | "OrderUuid": "aaaaaaaa-cbe8-4c57-b9de-c71194db3bd1",
7 | "Exchange": "BTC-WINGS",
8 | "Type": "LIMIT_SELL",
9 | "Quantity": 30.00000000,
10 | "QuantityRemaining": 30.00000000,
11 | "Limit": 0.00050000,
12 | "Reserved": 30.00000000,
13 | "ReserveRemaining": 30.00000000,
14 | "CommissionReserved": 0.00000000,
15 | "CommissionReserveRemaining": 0.00000000,
16 | "CommissionPaid": 0.00000000,
17 | "Price": 0.00000000,
18 | "PricePerUnit": null,
19 | "Opened": "2017-06-09T22:45:26.743",
20 | "Closed": null,
21 | "IsOpen": true,
22 | "Sentinel": "aaaaaaa-c6c5-4760-8fb1-3f5645d15893",
23 | "CancelInitiated": false,
24 | "ImmediateOrCancel": false,
25 | "IsConditional": true,
26 | "Condition": "GREATER_THAN",
27 | "ConditionTarget": 0.00050000
28 | }
29 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getorderhistory.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "OrderUuid": "aaaaaaaa-bbbb-cccc-dddd-cccccccccccc",
7 | "Exchange": "BTC-WINGS",
8 | "TimeStamp": "2017-06-06T21:59:40.713",
9 | "OrderType": "LIMIT_BUY",
10 | "Limit": 0.00031400,
11 | "Quantity": 188.35687667,
12 | "QuantityRemaining": 0.00000000,
13 | "Commission": 0.00014786,
14 | "Price": 0.05914405,
15 | "PricePerUnit": 0.00031399000000000000,
16 | "IsConditional": false,
17 | "Condition": "NONE",
18 | "ConditionTarget": null,
19 | "ImmediateOrCancel": false,
20 | "Closed": "2017-06-06T21:40:48.07"
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getorderhistoryformarket.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "OrderUuid": "aaaaaaaa-bbbb-cccc-dddd-cccccccccccc",
7 | "Exchange": "BTC-WINGS",
8 | "TimeStamp": "2017-06-06T21:59:40.713",
9 | "OrderType": "LIMIT_BUY",
10 | "Limit": 0.00031400,
11 | "Quantity": 123.35,
12 | "QuantityRemaining": 0.00000000,
13 | "Commission": 0.00014786,
14 | "Price": 0.05914405,
15 | "PricePerUnit": 0.00031199000000000000,
16 | "IsConditional": false,
17 | "Condition": "NONE",
18 | "ConditionTarget": null,
19 | "ImmediateOrCancel": false,
20 | "Closed": "2017-06-04T21:39:48.07"
21 | }
22 | ]
23 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/getwithdrawalhistory.json:
--------------------------------------------------------------------------------
1 | {
2 | "success" : true,
3 | "message" : "",
4 | "result" : [{
5 | "PaymentUuid" : "aaaaaaaa-bbbb-cccc-dddd-cccccccccccc",
6 | "Currency" : "BTC",
7 | "Amount" : 1300000000,
8 | "Address" : "aaaaaFBdbB34rHj43x3NHS4onvw1GP23Au",
9 | "Opened" : "2014-06-01T04:24:37.217",
10 | "Authorized" : true,
11 | "PendingPayment" : false,
12 | "TxCost" : 0.00020000,
13 | "TxId" : null,
14 | "Canceled" : true,
15 | "InvalidAddress" : false
16 | }, {
17 | "PaymentUuid" : "aaaaaaaa-bbbb-cccc-dddd-ccccccccccce",
18 | "Currency" : "XC",
19 | "Amount" : 512.75325,
20 | "Address" : "XVnSMgAd7234iaegc4c9K23412RB235S5J",
21 | "Opened" : "2014-07-02T23:13:31.83",
22 | "Authorized" : true,
23 | "PendingPayment" : false,
24 | "TxCost" : 0.00002000,
25 | "TxId" : "b3a57234a71c7e56d02348e26bb1e9236732394f6ca2116476a569c1e84f6e",
26 | "Canceled" : false,
27 | "InvalidAddress" : false
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/src/test/resources/accountapi/withdraw.json:
--------------------------------------------------------------------------------
1 | {
2 | "success" : true,
3 | "message" : "",
4 | "result" : {
5 | "uuid" : "68b5a16c-92de-11e3-ba3b-425861b86ab6"
6 | }
7 | }
--------------------------------------------------------------------------------
/src/test/resources/log4j.properties:
--------------------------------------------------------------------------------
1 | # Root logger option
2 | log4j.rootLogger=DEBUG, stdout
3 |
4 | # Direct log messages to stdout
5 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender
6 | log4j.appender.stdout.Target=System.out
7 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
8 | log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
--------------------------------------------------------------------------------
/src/test/resources/marketapi/buylimit.json:
--------------------------------------------------------------------------------
1 | {
2 | "success" : true,
3 | "message" : "",
4 | "result" : {
5 | "uuid" : "buyuuid"
6 | }
7 | }
--------------------------------------------------------------------------------
/src/test/resources/marketapi/cancelorder.json:
--------------------------------------------------------------------------------
1 | {
2 | "success" : true,
3 | "message" : "",
4 | "result" : null
5 | }
--------------------------------------------------------------------------------
/src/test/resources/marketapi/getopenorders.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "Uuid": null,
7 | "OrderUuid": "12345t3n-nnnn-3333-2222-c11111111112",
8 | "Exchange": "BTC-ETH",
9 | "OrderType": "LIMIT_SELL",
10 | "Quantity": 20.00000000,
11 | "QuantityRemaining": 20.00000000,
12 | "Limit": 0.00050000,
13 | "CommissionPaid": 0.00000000,
14 | "Price": 0.00000000,
15 | "PricePerUnit": null,
16 | "Opened": "2017-06-03T22:15:26.743",
17 | "Closed": null,
18 | "CancelInitiated": false,
19 | "ImmediateOrCancel": false,
20 | "IsConditional": true,
21 | "Condition": "GREATER_THAN",
22 | "ConditionTarget": 0.00050000
23 | }
24 | ]
25 | }
--------------------------------------------------------------------------------
/src/test/resources/marketapi/selllimit.json:
--------------------------------------------------------------------------------
1 | {
2 | "success" : true,
3 | "message" : "",
4 | "result" : {
5 | "uuid" : "selluuid"
6 | }
7 | }
--------------------------------------------------------------------------------
/src/test/resources/publicapi/getcurrencies.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "Currency": "BTC",
7 | "CurrencyLong": "Bitcoin",
8 | "MinConfirmation": 2,
9 | "TxFee": 0.001,
10 | "IsActive": true,
11 | "CoinType": "BITCOIN",
12 | "BaseAddress": "1N52wHoVR79PMDishab2XmRHsbekCdGquK",
13 | "Notice": null
14 | },
15 | {
16 | "Currency": "LTC",
17 | "CurrencyLong": "Litecoin",
18 | "MinConfirmation": 6,
19 | "TxFee": 0.002,
20 | "IsActive": true,
21 | "CoinType": "BITCOIN",
22 | "BaseAddress": "LhyLNfBkoKshT7R8Pce6vkB9T2cP2o84hx",
23 | "Notice": null
24 | },
25 | {
26 | "Currency": "DOGE",
27 | "CurrencyLong": "Dogecoin",
28 | "MinConfirmation": 6,
29 | "TxFee": 2,
30 | "IsActive": true,
31 | "CoinType": "BITCOIN",
32 | "BaseAddress": "D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT",
33 | "Notice": null
34 | },
35 | {
36 | "Currency": "VTC",
37 | "CurrencyLong": "Vertcoin",
38 | "MinConfirmation": 6,
39 | "TxFee": 0.02,
40 | "IsActive": true,
41 | "CoinType": "BITCOIN",
42 | "BaseAddress": null,
43 | "Notice": null
44 | },
45 | {
46 | "Currency": "PPC",
47 | "CurrencyLong": "Peercoin",
48 | "MinConfirmation": 6,
49 | "TxFee": 0.02,
50 | "IsActive": true,
51 | "CoinType": "BITCOIN",
52 | "BaseAddress": null,
53 | "Notice": null
54 | },
55 | {
56 | "Currency": "FTC",
57 | "CurrencyLong": "Feathercoin",
58 | "MinConfirmation": 20,
59 | "TxFee": 0.2,
60 | "IsActive": true,
61 | "CoinType": "BITCOIN",
62 | "BaseAddress": null,
63 | "Notice": null
64 | },
65 | {
66 | "Currency": "RDD",
67 | "CurrencyLong": "ReddCoin",
68 | "MinConfirmation": 20,
69 | "TxFee": 2,
70 | "IsActive": true,
71 | "CoinType": "BITCOIN",
72 | "BaseAddress": null,
73 | "Notice": null
74 | },
75 | {
76 | "Currency": "NXT",
77 | "CurrencyLong": "NXT",
78 | "MinConfirmation": 8,
79 | "TxFee": 2,
80 | "IsActive": true,
81 | "CoinType": "NXT",
82 | "BaseAddress": "NXT-97H4-KRWL-A53G-7GVRG",
83 | "Notice": null
84 | },
85 | {
86 | "Currency": "DASH",
87 | "CurrencyLong": "Dash",
88 | "MinConfirmation": 6,
89 | "TxFee": 0.002,
90 | "IsActive": true,
91 | "CoinType": "BITCOIN",
92 | "BaseAddress": null,
93 | "Notice": null
94 | },
95 | {
96 | "Currency": "POT",
97 | "CurrencyLong": "PotCoin",
98 | "MinConfirmation": 20,
99 | "TxFee": 0.002,
100 | "IsActive": true,
101 | "CoinType": "BITCOIN",
102 | "BaseAddress": null,
103 | "Notice": null
104 | },
105 | {
106 | "Currency": "BLK",
107 | "CurrencyLong": "BlackCoin",
108 | "MinConfirmation": 6,
109 | "TxFee": 0.02,
110 | "IsActive": true,
111 | "CoinType": "BITCOIN",
112 | "BaseAddress": null,
113 | "Notice": null
114 | },
115 | {
116 | "Currency": "EMC2",
117 | "CurrencyLong": "Einsteinium",
118 | "MinConfirmation": 5,
119 | "TxFee": 0.2,
120 | "IsActive": false,
121 | "CoinType": "BITCOIN",
122 | "BaseAddress": null,
123 | "Notice": "Automated Maintenance."
124 | },
125 | {
126 | "Currency": "MYR",
127 | "CurrencyLong": "MyriadCoin",
128 | "MinConfirmation": 20,
129 | "TxFee": 0.2,
130 | "IsActive": true,
131 | "CoinType": "BITCOIN",
132 | "BaseAddress": null,
133 | "Notice": null
134 | },
135 | {
136 | "Currency": "AUR",
137 | "CurrencyLong": "AuroraCoin",
138 | "MinConfirmation": 5,
139 | "TxFee": 0.002,
140 | "IsActive": true,
141 | "CoinType": "BITCOIN",
142 | "BaseAddress": null,
143 | "Notice": null
144 | },
145 | {
146 | "Currency": "UTC",
147 | "CurrencyLong": "UltraCoin",
148 | "MinConfirmation": 5,
149 | "TxFee": 0.02,
150 | "IsActive": true,
151 | "CoinType": "BITCOIN",
152 | "BaseAddress": null,
153 | "Notice": null
154 | },
155 | {
156 | "Currency": "MZC",
157 | "CurrencyLong": "MazaCoin",
158 | "MinConfirmation": 6,
159 | "TxFee": 0.2,
160 | "IsActive": true,
161 | "CoinType": "BITCOIN",
162 | "BaseAddress": null,
163 | "Notice": null
164 | },
165 | {
166 | "Currency": "EFL",
167 | "CurrencyLong": "ElectronicGulden",
168 | "MinConfirmation": 256,
169 | "TxFee": 0.2,
170 | "IsActive": false,
171 | "CoinType": "BITCOIN",
172 | "BaseAddress": null,
173 | "Notice": "Automated Maintenance."
174 | },
175 | {
176 | "Currency": "GLD",
177 | "CurrencyLong": "GoldCoin",
178 | "MinConfirmation": 20,
179 | "TxFee": 0.0002,
180 | "IsActive": true,
181 | "CoinType": "BITCOIN",
182 | "BaseAddress": null,
183 | "Notice": null
184 | },
185 | {
186 | "Currency": "FAIR",
187 | "CurrencyLong": "FairCoin",
188 | "MinConfirmation": 20,
189 | "TxFee": 0.02,
190 | "IsActive": true,
191 | "CoinType": "BITCOIN",
192 | "BaseAddress": null,
193 | "Notice": null
194 | },
195 | {
196 | "Currency": "SLR",
197 | "CurrencyLong": "SolarCoin",
198 | "MinConfirmation": 20,
199 | "TxFee": 0.2,
200 | "IsActive": true,
201 | "CoinType": "BITCOIN",
202 | "BaseAddress": null,
203 | "Notice": null
204 | },
205 | {
206 | "Currency": "PTC",
207 | "CurrencyLong": "PesetaCoin ",
208 | "MinConfirmation": 40,
209 | "TxFee": 0.002,
210 | "IsActive": true,
211 | "CoinType": "BITCOIN",
212 | "BaseAddress": null,
213 | "Notice": null
214 | },
215 | {
216 | "Currency": "GRS",
217 | "CurrencyLong": "Groestlcoin",
218 | "MinConfirmation": 20,
219 | "TxFee": 0.2,
220 | "IsActive": true,
221 | "CoinType": "BITCOIN",
222 | "BaseAddress": null,
223 | "Notice": null
224 | },
225 | {
226 | "Currency": "NLG",
227 | "CurrencyLong": "Gulden",
228 | "MinConfirmation": 10,
229 | "TxFee": 0.2,
230 | "IsActive": true,
231 | "CoinType": "BITCOINEX",
232 | "BaseAddress": null,
233 | "Notice": null
234 | },
235 | {
236 | "Currency": "RBY",
237 | "CurrencyLong": "RubyCoin",
238 | "MinConfirmation": 10,
239 | "TxFee": 0.02,
240 | "IsActive": true,
241 | "CoinType": "BITCOIN",
242 | "BaseAddress": null,
243 | "Notice": null
244 | },
245 | {
246 | "Currency": "XWC",
247 | "CurrencyLong": "WhiteCoin",
248 | "MinConfirmation": 20,
249 | "TxFee": 0.2,
250 | "IsActive": true,
251 | "CoinType": "BITCOIN",
252 | "BaseAddress": null,
253 | "Notice": null
254 | },
255 | {
256 | "Currency": "MONA",
257 | "CurrencyLong": "MonaCoin",
258 | "MinConfirmation": 5,
259 | "TxFee": 0.2,
260 | "IsActive": true,
261 | "CoinType": "BITCOIN",
262 | "BaseAddress": null,
263 | "Notice": null
264 | },
265 | {
266 | "Currency": "BITS",
267 | "CurrencyLong": "BitStarCoin",
268 | "MinConfirmation": 20,
269 | "TxFee": 0.002,
270 | "IsActive": true,
271 | "CoinType": "BITCOIN",
272 | "BaseAddress": null,
273 | "Notice": null
274 | },
275 | {
276 | "Currency": "OC",
277 | "CurrencyLong": "OrangeCoin",
278 | "MinConfirmation": 20,
279 | "TxFee": 0.2,
280 | "IsActive": true,
281 | "CoinType": "BITCOIN",
282 | "BaseAddress": null,
283 | "Notice": null
284 | },
285 | {
286 | "Currency": "THC",
287 | "CurrencyLong": "HempCoin",
288 | "MinConfirmation": 14,
289 | "TxFee": 0.2,
290 | "IsActive": true,
291 | "CoinType": "BITCOIN",
292 | "BaseAddress": "HCt5LgCkUX39ekrQdEHaN8Rp5AHZP3MKTj",
293 | "Notice": null
294 | },
295 | {
296 | "Currency": "ENRG",
297 | "CurrencyLong": "EnergyCoin",
298 | "MinConfirmation": 20,
299 | "TxFee": 0.2,
300 | "IsActive": true,
301 | "CoinType": "BITCOIN",
302 | "BaseAddress": null,
303 | "Notice": null
304 | },
305 | {
306 | "Currency": "SFR",
307 | "CurrencyLong": "SaffronCoin",
308 | "MinConfirmation": 20,
309 | "TxFee": 0.2,
310 | "IsActive": true,
311 | "CoinType": "BITCOIN",
312 | "BaseAddress": null,
313 | "Notice": null
314 | },
315 | {
316 | "Currency": "ERC",
317 | "CurrencyLong": "EuropeCoin",
318 | "MinConfirmation": 20,
319 | "TxFee": 0.2,
320 | "IsActive": true,
321 | "CoinType": "BITCOIN",
322 | "BaseAddress": null,
323 | "Notice": null
324 | },
325 | {
326 | "Currency": "NAUT",
327 | "CurrencyLong": "NautilusCoin",
328 | "MinConfirmation": 10,
329 | "TxFee": 2,
330 | "IsActive": true,
331 | "CoinType": "NXT_MS",
332 | "BaseAddress": "NXT-5BDK-RF4B-TAXN-92836",
333 | "Notice": null
334 | },
335 | {
336 | "Currency": "VRC",
337 | "CurrencyLong": "VeriCoin",
338 | "MinConfirmation": 5,
339 | "TxFee": 0.0002,
340 | "IsActive": true,
341 | "CoinType": "BITCOIN",
342 | "BaseAddress": null,
343 | "Notice": null
344 | },
345 | {
346 | "Currency": "CURE",
347 | "CurrencyLong": "CureCoin",
348 | "MinConfirmation": 6,
349 | "TxFee": 0.0002,
350 | "IsActive": true,
351 | "CoinType": "BITCOIN",
352 | "BaseAddress": null,
353 | "Notice": null
354 | },
355 | {
356 | "Currency": "BLC",
357 | "CurrencyLong": "BlakeCoin",
358 | "MinConfirmation": 20,
359 | "TxFee": 0.2,
360 | "IsActive": true,
361 | "CoinType": "BITCOIN",
362 | "BaseAddress": null,
363 | "Notice": null
364 | },
365 | {
366 | "Currency": "XC",
367 | "CurrencyLong": "XCurrency",
368 | "MinConfirmation": 20,
369 | "TxFee": 0.00002,
370 | "IsActive": true,
371 | "CoinType": "BITCOIN",
372 | "BaseAddress": null,
373 | "Notice": null
374 | },
375 | {
376 | "Currency": "XDQ",
377 | "CurrencyLong": "Dirac",
378 | "MinConfirmation": 6,
379 | "TxFee": 0.02,
380 | "IsActive": true,
381 | "CoinType": "BITCOIN",
382 | "BaseAddress": null,
383 | "Notice": null
384 | },
385 | {
386 | "Currency": "XBB",
387 | "CurrencyLong": "Boolberry",
388 | "MinConfirmation": 15,
389 | "TxFee": 0.0002,
390 | "IsActive": true,
391 | "CoinType": "CRYPTO_NOTE_PAYMENTID",
392 | "BaseAddress": "1AxQp4KrZbETL4HHgh5PksNsdcUregZoSEsWvYWgUaMAMayq1ddWdFrQEg5DfUod4Ud6Sz2z6vQMAcMWRdLDTSmy2Conhvk",
393 | "Notice": null
394 | },
395 | {
396 | "Currency": "HYPER",
397 | "CurrencyLong": "Hyper",
398 | "MinConfirmation": 20,
399 | "TxFee": 0.02,
400 | "IsActive": true,
401 | "CoinType": "BITCOIN",
402 | "BaseAddress": null,
403 | "Notice": null
404 | },
405 | {
406 | "Currency": "CCN",
407 | "CurrencyLong": "CannaCoin",
408 | "MinConfirmation": 10,
409 | "TxFee": 0.02,
410 | "IsActive": true,
411 | "CoinType": "BITCOIN",
412 | "BaseAddress": null,
413 | "Notice": null
414 | },
415 | {
416 | "Currency": "XMR",
417 | "CurrencyLong": "Monero",
418 | "MinConfirmation": 8,
419 | "TxFee": 0.04,
420 | "IsActive": true,
421 | "CoinType": "CRYPTO_NOTE_PAYMENTID",
422 | "BaseAddress": "463tWEBn5XZJSxLU6uLQnQ2iY9xuNcDbjLSjkn3XAXHCbLrTTErJrBWYgHJQyrCwkNgYvyV3z8zctJLPCZy24jvb3NiTcTJ",
423 | "Notice": null
424 | },
425 | {
426 | "Currency": "CLOAK",
427 | "CurrencyLong": "CloakCoin",
428 | "MinConfirmation": 5,
429 | "TxFee": 0.02,
430 | "IsActive": true,
431 | "CoinType": "BITCOIN",
432 | "BaseAddress": null,
433 | "Notice": null
434 | },
435 | {
436 | "Currency": "BSD",
437 | "CurrencyLong": "BitSend",
438 | "MinConfirmation": 20,
439 | "TxFee": 0.002,
440 | "IsActive": true,
441 | "CoinType": "BITCOIN",
442 | "BaseAddress": null,
443 | "Notice": null
444 | },
445 | {
446 | "Currency": "CRYPT",
447 | "CurrencyLong": "CryptCoin",
448 | "MinConfirmation": 15,
449 | "TxFee": 0.02,
450 | "IsActive": true,
451 | "CoinType": "BITCOIN",
452 | "BaseAddress": null,
453 | "Notice": null
454 | },
455 | {
456 | "Currency": "START",
457 | "CurrencyLong": "StartCoin",
458 | "MinConfirmation": 120,
459 | "TxFee": 0.02,
460 | "IsActive": true,
461 | "CoinType": "BITCOIN",
462 | "BaseAddress": null,
463 | "Notice": null
464 | },
465 | {
466 | "Currency": "KORE",
467 | "CurrencyLong": "KoreCoin",
468 | "MinConfirmation": 6,
469 | "TxFee": 0.02,
470 | "IsActive": true,
471 | "CoinType": "BITCOIN",
472 | "BaseAddress": null,
473 | "Notice": null
474 | },
475 | {
476 | "Currency": "XDN",
477 | "CurrencyLong": "DigitalNote",
478 | "MinConfirmation": 15,
479 | "TxFee": 0.01,
480 | "IsActive": true,
481 | "CoinType": "CRYPTO_NOTE_PAYMENTID",
482 | "BaseAddress": "dddpmAwrXsaHVTBMMpsHfERfBsJ348x77QR6wpQFJ4zqDoXdF4vxJEK6ar8rmvrL6AZRWMh8AE1pDbWvY9EdpXN638mpYCJ62",
483 | "Notice": null
484 | },
485 | {
486 | "Currency": "TRK",
487 | "CurrencyLong": "TruckCoin",
488 | "MinConfirmation": 20,
489 | "TxFee": 0.02,
490 | "IsActive": true,
491 | "CoinType": "BITCOIN",
492 | "BaseAddress": null,
493 | "Notice": null
494 | },
495 | {
496 | "Currency": "QTL",
497 | "CurrencyLong": "Quatloo",
498 | "MinConfirmation": 6,
499 | "TxFee": 0.02,
500 | "IsActive": false,
501 | "CoinType": "BITCOIN",
502 | "BaseAddress": null,
503 | "Notice": "Automated Maintenance."
504 | },
505 | {
506 | "Currency": "TRUST",
507 | "CurrencyLong": "TrustPlus",
508 | "MinConfirmation": 20,
509 | "TxFee": 0.02,
510 | "IsActive": true,
511 | "CoinType": "BITCOIN",
512 | "BaseAddress": null,
513 | "Notice": null
514 | },
515 | {
516 | "Currency": "NAV",
517 | "CurrencyLong": "NAVCoin",
518 | "MinConfirmation": 20,
519 | "TxFee": 0.2,
520 | "IsActive": true,
521 | "CoinType": "BITCOIN",
522 | "BaseAddress": null,
523 | "Notice": null
524 | },
525 | {
526 | "Currency": "XST",
527 | "CurrencyLong": "StealthCoin",
528 | "MinConfirmation": 20,
529 | "TxFee": 0.02,
530 | "IsActive": true,
531 | "CoinType": "BITCOIN",
532 | "BaseAddress": null,
533 | "Notice": null
534 | },
535 | {
536 | "Currency": "APEX",
537 | "CurrencyLong": "ApexCoin",
538 | "MinConfirmation": 20,
539 | "TxFee": 0.02,
540 | "IsActive": true,
541 | "CoinType": "BITCOIN",
542 | "BaseAddress": null,
543 | "Notice": null
544 | },
545 | {
546 | "Currency": "BTCD",
547 | "CurrencyLong": "BitcoinDark",
548 | "MinConfirmation": 20,
549 | "TxFee": 0.02,
550 | "IsActive": true,
551 | "CoinType": "BITCOIN",
552 | "BaseAddress": null,
553 | "Notice": null
554 | },
555 | {
556 | "Currency": "VIA",
557 | "CurrencyLong": "ViaCoin",
558 | "MinConfirmation": 20,
559 | "TxFee": 0.2,
560 | "IsActive": true,
561 | "CoinType": "BITCOIN",
562 | "BaseAddress": null,
563 | "Notice": null
564 | },
565 | {
566 | "Currency": "TRI",
567 | "CurrencyLong": "Triangles",
568 | "MinConfirmation": 6,
569 | "TxFee": 0.0002,
570 | "IsActive": true,
571 | "CoinType": "BITCOIN",
572 | "BaseAddress": null,
573 | "Notice": null
574 | },
575 | {
576 | "Currency": "UNO",
577 | "CurrencyLong": "Unobtanium",
578 | "MinConfirmation": 6,
579 | "TxFee": 0.0002,
580 | "IsActive": true,
581 | "CoinType": "BITCOIN",
582 | "BaseAddress": null,
583 | "Notice": null
584 | },
585 | {
586 | "Currency": "PINK",
587 | "CurrencyLong": "PinkCoin",
588 | "MinConfirmation": 6,
589 | "TxFee": 0.2,
590 | "IsActive": true,
591 | "CoinType": "BITCOIN",
592 | "BaseAddress": null,
593 | "Notice": null
594 | },
595 | {
596 | "Currency": "IOC",
597 | "CurrencyLong": "I/OCoin",
598 | "MinConfirmation": 6,
599 | "TxFee": 0.2,
600 | "IsActive": true,
601 | "CoinType": "BITCOIN",
602 | "BaseAddress": null,
603 | "Notice": null
604 | },
605 | {
606 | "Currency": "SDC",
607 | "CurrencyLong": "ShadowCash",
608 | "MinConfirmation": 20,
609 | "TxFee": 0.02,
610 | "IsActive": true,
611 | "CoinType": "BITCOIN",
612 | "BaseAddress": null,
613 | "Notice": "The SDC wallet will be shut down on Jun 9th, 2017."
614 | },
615 | {
616 | "Currency": "MAX",
617 | "CurrencyLong": "MaxCoin",
618 | "MinConfirmation": 6,
619 | "TxFee": 0.2,
620 | "IsActive": true,
621 | "CoinType": "BITCOIN",
622 | "BaseAddress": null,
623 | "Notice": null
624 | },
625 | {
626 | "Currency": "LXC",
627 | "CurrencyLong": "LibrexCoin",
628 | "MinConfirmation": 20,
629 | "TxFee": 0.02,
630 | "IsActive": true,
631 | "CoinType": "BITCOIN",
632 | "BaseAddress": null,
633 | "Notice": null
634 | },
635 | {
636 | "Currency": "BOB",
637 | "CurrencyLong": "DobbsCoin",
638 | "MinConfirmation": 6,
639 | "TxFee": 0.02,
640 | "IsActive": true,
641 | "CoinType": "BITCOIN",
642 | "BaseAddress": null,
643 | "Notice": null
644 | },
645 | {
646 | "Currency": "CANN",
647 | "CurrencyLong": "CannabisCoin",
648 | "MinConfirmation": 100,
649 | "TxFee": 0.2,
650 | "IsActive": false,
651 | "CoinType": "BITCOIN",
652 | "BaseAddress": null,
653 | "Notice": "Automated Maintenance."
654 | },
655 | {
656 | "Currency": "FC2",
657 | "CurrencyLong": "FuelCoin",
658 | "MinConfirmation": 6,
659 | "TxFee": 0.02,
660 | "IsActive": true,
661 | "CoinType": "BITCOIN",
662 | "BaseAddress": null,
663 | "Notice": null
664 | },
665 | {
666 | "Currency": "SSD",
667 | "CurrencyLong": "SonicCoin",
668 | "MinConfirmation": 6,
669 | "TxFee": 0.02,
670 | "IsActive": true,
671 | "CoinType": "BITCOIN",
672 | "BaseAddress": null,
673 | "Notice": null
674 | },
675 | {
676 | "Currency": "J",
677 | "CurrencyLong": "JoinCoin",
678 | "MinConfirmation": 6,
679 | "TxFee": 0.02,
680 | "IsActive": true,
681 | "CoinType": "BITCOIN",
682 | "BaseAddress": null,
683 | "Notice": null
684 | },
685 | {
686 | "Currency": "SYS",
687 | "CurrencyLong": "SysCoin",
688 | "MinConfirmation": 20,
689 | "TxFee": 0.0002,
690 | "IsActive": true,
691 | "CoinType": "BITCOIN",
692 | "BaseAddress": null,
693 | "Notice": null
694 | },
695 | {
696 | "Currency": "NEOS",
697 | "CurrencyLong": "NeosCoin",
698 | "MinConfirmation": 3,
699 | "TxFee": 0.02,
700 | "IsActive": true,
701 | "CoinType": "BITCOIN",
702 | "BaseAddress": null,
703 | "Notice": null
704 | },
705 | {
706 | "Currency": "DGB",
707 | "CurrencyLong": "Digibyte",
708 | "MinConfirmation": 6,
709 | "TxFee": 0.2,
710 | "IsActive": true,
711 | "CoinType": "BITCOIN",
712 | "BaseAddress": null,
713 | "Notice": null
714 | },
715 | {
716 | "Currency": "ROOT",
717 | "CurrencyLong": "RootCoin",
718 | "MinConfirmation": 6,
719 | "TxFee": 0.2,
720 | "IsActive": true,
721 | "CoinType": "BITCOIN",
722 | "BaseAddress": null,
723 | "Notice": null
724 | },
725 | {
726 | "Currency": "BTS",
727 | "CurrencyLong": "BitShares",
728 | "MinConfirmation": 2,
729 | "TxFee": 5,
730 | "IsActive": true,
731 | "CoinType": "BITSHAREX",
732 | "BaseAddress": "bittrex-deposit",
733 | "Notice": null
734 | },
735 | {
736 | "Currency": "BURST",
737 | "CurrencyLong": "BURST",
738 | "MinConfirmation": 10,
739 | "TxFee": 2,
740 | "IsActive": true,
741 | "CoinType": "NXT",
742 | "BaseAddress": "BURST-HK9D-P74Q-XDEJ-D6PGM",
743 | "Notice": null
744 | },
745 | {
746 | "Currency": "TIT",
747 | "CurrencyLong": "TitCoin",
748 | "MinConfirmation": 6,
749 | "TxFee": 0.2,
750 | "IsActive": true,
751 | "CoinType": "BITCOIN",
752 | "BaseAddress": null,
753 | "Notice": null
754 | },
755 | {
756 | "Currency": "BSTY",
757 | "CurrencyLong": "GlobalBoost-Y",
758 | "MinConfirmation": 6,
759 | "TxFee": 0.2,
760 | "IsActive": true,
761 | "CoinType": "BITCOIN",
762 | "BaseAddress": null,
763 | "Notice": null
764 | },
765 | {
766 | "Currency": "PXI",
767 | "CurrencyLong": "Prime-XI",
768 | "MinConfirmation": 6,
769 | "TxFee": 0.2,
770 | "IsActive": true,
771 | "CoinType": "BITCOIN",
772 | "BaseAddress": null,
773 | "Notice": null
774 | },
775 | {
776 | "Currency": "DGC",
777 | "CurrencyLong": "DigitalCoin",
778 | "MinConfirmation": 6,
779 | "TxFee": 0.2,
780 | "IsActive": true,
781 | "CoinType": "BITCOIN",
782 | "BaseAddress": null,
783 | "Notice": null
784 | },
785 | {
786 | "Currency": "SLG",
787 | "CurrencyLong": "Sterlingcoin",
788 | "MinConfirmation": 6,
789 | "TxFee": 0.2,
790 | "IsActive": true,
791 | "CoinType": "BITCOIN",
792 | "BaseAddress": null,
793 | "Notice": null
794 | },
795 | {
796 | "Currency": "STV",
797 | "CurrencyLong": "SativaCoin",
798 | "MinConfirmation": 6,
799 | "TxFee": 0.2,
800 | "IsActive": true,
801 | "CoinType": "BITCOIN",
802 | "BaseAddress": null,
803 | "Notice": null
804 | },
805 | {
806 | "Currency": "EXCL",
807 | "CurrencyLong": "ExclusiveCoin",
808 | "MinConfirmation": 6,
809 | "TxFee": 0.2,
810 | "IsActive": true,
811 | "CoinType": "BITCOIN",
812 | "BaseAddress": null,
813 | "Notice": null
814 | },
815 | {
816 | "Currency": "SWIFT",
817 | "CurrencyLong": "Bitswift",
818 | "MinConfirmation": 6,
819 | "TxFee": 0.2,
820 | "IsActive": true,
821 | "CoinType": "BITCOIN",
822 | "BaseAddress": null,
823 | "Notice": null
824 | },
825 | {
826 | "Currency": "ARCH",
827 | "CurrencyLong": "ArchCoin",
828 | "MinConfirmation": 6,
829 | "TxFee": 0.002,
830 | "IsActive": true,
831 | "CoinType": "BITCOIN",
832 | "BaseAddress": null,
833 | "Notice": null
834 | },
835 | {
836 | "Currency": "NET",
837 | "CurrencyLong": "NetCoin",
838 | "MinConfirmation": 6,
839 | "TxFee": 0.2,
840 | "IsActive": true,
841 | "CoinType": "BITCOIN",
842 | "BaseAddress": null,
843 | "Notice": null
844 | },
845 | {
846 | "Currency": "GHC",
847 | "CurrencyLong": "GamerholicCoin",
848 | "MinConfirmation": 6,
849 | "TxFee": 0.2,
850 | "IsActive": true,
851 | "CoinType": "BITCOIN",
852 | "BaseAddress": null,
853 | "Notice": null
854 | },
855 | {
856 | "Currency": "DOPE",
857 | "CurrencyLong": "DopeCoin",
858 | "MinConfirmation": 6,
859 | "TxFee": 0.002,
860 | "IsActive": true,
861 | "CoinType": "BITCOIN",
862 | "BaseAddress": null,
863 | "Notice": null
864 | },
865 | {
866 | "Currency": "BLOCK",
867 | "CurrencyLong": "BlockNet",
868 | "MinConfirmation": 6,
869 | "TxFee": 0.2,
870 | "IsActive": true,
871 | "CoinType": "BITCOIN",
872 | "BaseAddress": null,
873 | "Notice": null
874 | },
875 | {
876 | "Currency": "ABY",
877 | "CurrencyLong": "ArtByte",
878 | "MinConfirmation": 6,
879 | "TxFee": 0.2,
880 | "IsActive": true,
881 | "CoinType": "BITCOIN",
882 | "BaseAddress": null,
883 | "Notice": null
884 | },
885 | {
886 | "Currency": "VIOR",
887 | "CurrencyLong": "ViorCoin",
888 | "MinConfirmation": 6,
889 | "TxFee": 0.2,
890 | "IsActive": true,
891 | "CoinType": "BITCOIN",
892 | "BaseAddress": null,
893 | "Notice": null
894 | },
895 | {
896 | "Currency": "BYC",
897 | "CurrencyLong": "Bytecent",
898 | "MinConfirmation": 20,
899 | "TxFee": 0.02,
900 | "IsActive": true,
901 | "CoinType": "BITCOIN",
902 | "BaseAddress": null,
903 | "Notice": null
904 | },
905 | {
906 | "Currency": "UFO",
907 | "CurrencyLong": "UFOCoin",
908 | "MinConfirmation": 6,
909 | "TxFee": 0.2,
910 | "IsActive": true,
911 | "CoinType": "BITCOIN",
912 | "BaseAddress": null,
913 | "Notice": null
914 | },
915 | {
916 | "Currency": "XMG",
917 | "CurrencyLong": "Magi",
918 | "MinConfirmation": 6,
919 | "TxFee": 0.0002,
920 | "IsActive": true,
921 | "CoinType": "BITCOIN",
922 | "BaseAddress": null,
923 | "Notice": null
924 | },
925 | {
926 | "Currency": "XQN",
927 | "CurrencyLong": "Quotient",
928 | "MinConfirmation": 6,
929 | "TxFee": 0.02,
930 | "IsActive": true,
931 | "CoinType": "BITCOIN",
932 | "BaseAddress": null,
933 | "Notice": null
934 | },
935 | {
936 | "Currency": "BLITZ",
937 | "CurrencyLong": "Blitzcash",
938 | "MinConfirmation": 6,
939 | "TxFee": 0.02,
940 | "IsActive": true,
941 | "CoinType": "BITCOIN",
942 | "BaseAddress": null,
943 | "Notice": null
944 | },
945 | {
946 | "Currency": "VPN",
947 | "CurrencyLong": "VPNCoin",
948 | "MinConfirmation": 6,
949 | "TxFee": 0.2,
950 | "IsActive": true,
951 | "CoinType": "BITCOIN",
952 | "BaseAddress": null,
953 | "Notice": null
954 | },
955 | {
956 | "Currency": "BAY",
957 | "CurrencyLong": "BitBay",
958 | "MinConfirmation": 6,
959 | "TxFee": 0.2,
960 | "IsActive": true,
961 | "CoinType": "BITCOIN",
962 | "BaseAddress": null,
963 | "Notice": null
964 | },
965 | {
966 | "Currency": "DTC",
967 | "CurrencyLong": "DayTraderCoin",
968 | "MinConfirmation": 6,
969 | "TxFee": 0.2,
970 | "IsActive": true,
971 | "CoinType": "BITCOIN",
972 | "BaseAddress": null,
973 | "Notice": null
974 | },
975 | {
976 | "Currency": "AM",
977 | "CurrencyLong": "AeroME",
978 | "MinConfirmation": 6,
979 | "TxFee": 0.2,
980 | "IsActive": true,
981 | "CoinType": "BITCOIN",
982 | "BaseAddress": null,
983 | "Notice": null
984 | },
985 | {
986 | "Currency": "METAL",
987 | "CurrencyLong": "MetalCoin",
988 | "MinConfirmation": 2,
989 | "TxFee": 20,
990 | "IsActive": true,
991 | "CoinType": "COUNTERPARTY",
992 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
993 | "Notice": null
994 | },
995 | {
996 | "Currency": "SPR",
997 | "CurrencyLong": "SpreadCoin",
998 | "MinConfirmation": 6,
999 | "TxFee": 0.2,
1000 | "IsActive": true,
1001 | "CoinType": "BITCOIN",
1002 | "BaseAddress": null,
1003 | "Notice": null
1004 | },
1005 | {
1006 | "Currency": "VTR",
1007 | "CurrencyLong": "vTorrent",
1008 | "MinConfirmation": 6,
1009 | "TxFee": 0.02,
1010 | "IsActive": true,
1011 | "CoinType": "BITCOIN_STEALTH",
1012 | "BaseAddress": null,
1013 | "Notice": null
1014 | },
1015 | {
1016 | "Currency": "XPY",
1017 | "CurrencyLong": "Paycoin",
1018 | "MinConfirmation": 6,
1019 | "TxFee": 0.002,
1020 | "IsActive": true,
1021 | "CoinType": "BITCOIN",
1022 | "BaseAddress": null,
1023 | "Notice": null
1024 | },
1025 | {
1026 | "Currency": "XRP",
1027 | "CurrencyLong": "Ripple",
1028 | "MinConfirmation": 10,
1029 | "TxFee": 0.02,
1030 | "IsActive": true,
1031 | "CoinType": "RIPPLE",
1032 | "BaseAddress": "rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy",
1033 | "Notice": null
1034 | },
1035 | {
1036 | "Currency": "GAME",
1037 | "CurrencyLong": "GameCredits",
1038 | "MinConfirmation": 6,
1039 | "TxFee": 0.2,
1040 | "IsActive": true,
1041 | "CoinType": "BITCOIN",
1042 | "BaseAddress": null,
1043 | "Notice": null
1044 | },
1045 | {
1046 | "Currency": "GP",
1047 | "CurrencyLong": "GoldPieces",
1048 | "MinConfirmation": 6,
1049 | "TxFee": 0.2,
1050 | "IsActive": true,
1051 | "CoinType": "BITCOIN",
1052 | "BaseAddress": null,
1053 | "Notice": null
1054 | },
1055 | {
1056 | "Currency": "NXS",
1057 | "CurrencyLong": "Nexus",
1058 | "MinConfirmation": 6,
1059 | "TxFee": 0.2,
1060 | "IsActive": true,
1061 | "CoinType": "BITCOIN",
1062 | "BaseAddress": null,
1063 | "Notice": null
1064 | },
1065 | {
1066 | "Currency": "COVAL",
1067 | "CurrencyLong": "Circuits of Value",
1068 | "MinConfirmation": 2,
1069 | "TxFee": 200,
1070 | "IsActive": true,
1071 | "CoinType": "COUNTERPARTY",
1072 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1073 | "Notice": null
1074 | },
1075 | {
1076 | "Currency": "FSC2",
1077 | "CurrencyLong": "FriendshipCoin2",
1078 | "MinConfirmation": 6,
1079 | "TxFee": 0.2,
1080 | "IsActive": true,
1081 | "CoinType": "BITCOIN",
1082 | "BaseAddress": null,
1083 | "Notice": null
1084 | },
1085 | {
1086 | "Currency": "SOON",
1087 | "CurrencyLong": "SoonCoin",
1088 | "MinConfirmation": 6,
1089 | "TxFee": 0.2,
1090 | "IsActive": true,
1091 | "CoinType": "BITCOIN",
1092 | "BaseAddress": null,
1093 | "Notice": null
1094 | },
1095 | {
1096 | "Currency": "HZ",
1097 | "CurrencyLong": "Horizon",
1098 | "MinConfirmation": 10,
1099 | "TxFee": 2,
1100 | "IsActive": true,
1101 | "CoinType": "NXT",
1102 | "BaseAddress": "NHZ-7ANN-LUFR-CCZU-6K44J",
1103 | "Notice": null
1104 | },
1105 | {
1106 | "Currency": "XCP",
1107 | "CurrencyLong": "Counterparty",
1108 | "MinConfirmation": 2,
1109 | "TxFee": 0.2,
1110 | "IsActive": true,
1111 | "CoinType": "COUNTERPARTY",
1112 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1113 | "Notice": null
1114 | },
1115 | {
1116 | "Currency": "SJCX",
1117 | "CurrencyLong": "StorjCoinX",
1118 | "MinConfirmation": 2,
1119 | "TxFee": 2,
1120 | "IsActive": true,
1121 | "CoinType": "COUNTERPARTY",
1122 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1123 | "Notice": null
1124 | },
1125 | {
1126 | "Currency": "BITB",
1127 | "CurrencyLong": "BitBean",
1128 | "MinConfirmation": 6,
1129 | "TxFee": 0.2,
1130 | "IsActive": true,
1131 | "CoinType": "BITCOIN",
1132 | "BaseAddress": null,
1133 | "Notice": null
1134 | },
1135 | {
1136 | "Currency": "XTC",
1137 | "CurrencyLong": "TileCoin",
1138 | "MinConfirmation": 2,
1139 | "TxFee": 100,
1140 | "IsActive": true,
1141 | "CoinType": "COUNTERPARTY",
1142 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1143 | "Notice": null
1144 | },
1145 | {
1146 | "Currency": "XVG",
1147 | "CurrencyLong": "Verge",
1148 | "MinConfirmation": 30,
1149 | "TxFee": 0.2,
1150 | "IsActive": true,
1151 | "CoinType": "BITCOIN",
1152 | "BaseAddress": null,
1153 | "Notice": null
1154 | },
1155 | {
1156 | "Currency": "GEO",
1157 | "CurrencyLong": "GeoCoin",
1158 | "MinConfirmation": 120,
1159 | "TxFee": 0.002,
1160 | "IsActive": true,
1161 | "CoinType": "BITCOIN",
1162 | "BaseAddress": null,
1163 | "Notice": null
1164 | },
1165 | {
1166 | "Currency": "FLDC",
1167 | "CurrencyLong": "FoldingCoin",
1168 | "MinConfirmation": 2,
1169 | "TxFee": 150,
1170 | "IsActive": true,
1171 | "CoinType": "COUNTERPARTY",
1172 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1173 | "Notice": null
1174 | },
1175 | {
1176 | "Currency": "WBB",
1177 | "CurrencyLong": "Wild Beast Block",
1178 | "MinConfirmation": 30,
1179 | "TxFee": 0.02,
1180 | "IsActive": true,
1181 | "CoinType": "BITCOIN",
1182 | "BaseAddress": null,
1183 | "Notice": "Wallet will be removed on 6/23 - We are processing WITHDRAWALS ONLY. Deposits will not be credited - https://twitter.com/WildBeastBTC/status/871389558990139392"
1184 | },
1185 | {
1186 | "Currency": "GEMZ",
1187 | "CurrencyLong": "Gemz",
1188 | "MinConfirmation": 2,
1189 | "TxFee": 5,
1190 | "IsActive": true,
1191 | "CoinType": "COUNTERPARTY",
1192 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1193 | "Notice": null
1194 | },
1195 | {
1196 | "Currency": "GRC",
1197 | "CurrencyLong": "GridCoin",
1198 | "MinConfirmation": 6,
1199 | "TxFee": 0.2,
1200 | "IsActive": true,
1201 | "CoinType": "BITCOIN",
1202 | "BaseAddress": null,
1203 | "Notice": null
1204 | },
1205 | {
1206 | "Currency": "XCO",
1207 | "CurrencyLong": "X-Coin",
1208 | "MinConfirmation": 6,
1209 | "TxFee": 0.02,
1210 | "IsActive": true,
1211 | "CoinType": "BITCOIN",
1212 | "BaseAddress": null,
1213 | "Notice": null
1214 | },
1215 | {
1216 | "Currency": "MTR",
1217 | "CurrencyLong": "MasterTraderCoin",
1218 | "MinConfirmation": 6,
1219 | "TxFee": 0.2,
1220 | "IsActive": true,
1221 | "CoinType": "BITCOIN",
1222 | "BaseAddress": null,
1223 | "Notice": null
1224 | },
1225 | {
1226 | "Currency": "FLO",
1227 | "CurrencyLong": "Florin",
1228 | "MinConfirmation": 6,
1229 | "TxFee": 0.2,
1230 | "IsActive": true,
1231 | "CoinType": "BITCOIN",
1232 | "BaseAddress": null,
1233 | "Notice": null
1234 | },
1235 | {
1236 | "Currency": "U",
1237 | "CurrencyLong": "UCoin",
1238 | "MinConfirmation": 6,
1239 | "TxFee": 0.2,
1240 | "IsActive": true,
1241 | "CoinType": "BITCOIN",
1242 | "BaseAddress": null,
1243 | "Notice": null
1244 | },
1245 | {
1246 | "Currency": "NBT",
1247 | "CurrencyLong": "Nubits",
1248 | "MinConfirmation": 6,
1249 | "TxFee": 0.02,
1250 | "IsActive": true,
1251 | "CoinType": "BITCOIN",
1252 | "BaseAddress": null,
1253 | "Notice": null
1254 | },
1255 | {
1256 | "Currency": "XEM",
1257 | "CurrencyLong": "NewEconomyMovement",
1258 | "MinConfirmation": 10,
1259 | "TxFee": 15,
1260 | "IsActive": true,
1261 | "CoinType": "NEM",
1262 | "BaseAddress": "ND2JRPQIWXHKAA26INVGA7SREEUMX5QAI6VU7HNR",
1263 | "Notice": null
1264 | },
1265 | {
1266 | "Currency": "MUE",
1267 | "CurrencyLong": "MonetaryUnit",
1268 | "MinConfirmation": 20,
1269 | "TxFee": 0.2,
1270 | "IsActive": true,
1271 | "CoinType": "BITCOIN",
1272 | "BaseAddress": null,
1273 | "Notice": null
1274 | },
1275 | {
1276 | "Currency": "XVC",
1277 | "CurrencyLong": "Vcash",
1278 | "MinConfirmation": 2,
1279 | "TxFee": 0.002,
1280 | "IsActive": true,
1281 | "CoinType": "BITCOIN",
1282 | "BaseAddress": null,
1283 | "Notice": null
1284 | },
1285 | {
1286 | "Currency": "8BIT",
1287 | "CurrencyLong": "8bit",
1288 | "MinConfirmation": 30,
1289 | "TxFee": 0.002,
1290 | "IsActive": true,
1291 | "CoinType": "BITCOIN",
1292 | "BaseAddress": null,
1293 | "Notice": null
1294 | },
1295 | {
1296 | "Currency": "CLAM",
1297 | "CurrencyLong": "CLAMs",
1298 | "MinConfirmation": 6,
1299 | "TxFee": 0.02,
1300 | "IsActive": true,
1301 | "CoinType": "BITCOIN",
1302 | "BaseAddress": "xHWM9sQVJS3WgLm88j29tpFfZw17TmbRoq",
1303 | "Notice": null
1304 | },
1305 | {
1306 | "Currency": "XSEED",
1307 | "CurrencyLong": "BitSeeds",
1308 | "MinConfirmation": 6,
1309 | "TxFee": 0.002,
1310 | "IsActive": true,
1311 | "CoinType": "BITCOIN",
1312 | "BaseAddress": null,
1313 | "Notice": null
1314 | },
1315 | {
1316 | "Currency": "NTRN",
1317 | "CurrencyLong": "Neutron",
1318 | "MinConfirmation": 6,
1319 | "TxFee": 0.02,
1320 | "IsActive": true,
1321 | "CoinType": "BITCOIN",
1322 | "BaseAddress": null,
1323 | "Notice": null
1324 | },
1325 | {
1326 | "Currency": "SLING",
1327 | "CurrencyLong": "Sling",
1328 | "MinConfirmation": 6,
1329 | "TxFee": 0.002,
1330 | "IsActive": true,
1331 | "CoinType": "BITCOIN",
1332 | "BaseAddress": null,
1333 | "Notice": null
1334 | },
1335 | {
1336 | "Currency": "DMD",
1337 | "CurrencyLong": "Diamond",
1338 | "MinConfirmation": 6,
1339 | "TxFee": 0.002,
1340 | "IsActive": true,
1341 | "CoinType": "BITCOIN",
1342 | "BaseAddress": null,
1343 | "Notice": null
1344 | },
1345 | {
1346 | "Currency": "GAM",
1347 | "CurrencyLong": "Gambit",
1348 | "MinConfirmation": 6,
1349 | "TxFee": 0.02,
1350 | "IsActive": true,
1351 | "CoinType": "BITCOIN",
1352 | "BaseAddress": null,
1353 | "Notice": null
1354 | },
1355 | {
1356 | "Currency": "UNIT",
1357 | "CurrencyLong": "UniversalCurrency",
1358 | "MinConfirmation": 6,
1359 | "TxFee": 2,
1360 | "IsActive": true,
1361 | "CoinType": "BITCOIN",
1362 | "BaseAddress": null,
1363 | "Notice": null
1364 | },
1365 | {
1366 | "Currency": "GRT",
1367 | "CurrencyLong": "Grantcoin",
1368 | "MinConfirmation": 6,
1369 | "TxFee": 2,
1370 | "IsActive": true,
1371 | "CoinType": "BITCOIN",
1372 | "BaseAddress": null,
1373 | "Notice": null
1374 | },
1375 | {
1376 | "Currency": "VIRAL",
1377 | "CurrencyLong": "Viral",
1378 | "MinConfirmation": 6,
1379 | "TxFee": 0.002,
1380 | "IsActive": true,
1381 | "CoinType": "BITCOIN",
1382 | "BaseAddress": null,
1383 | "Notice": null
1384 | },
1385 | {
1386 | "Currency": "SPHR",
1387 | "CurrencyLong": "Sphere",
1388 | "MinConfirmation": 6,
1389 | "TxFee": 0.002,
1390 | "IsActive": true,
1391 | "CoinType": "BITCOIN",
1392 | "BaseAddress": null,
1393 | "Notice": null
1394 | },
1395 | {
1396 | "Currency": "ARB",
1397 | "CurrencyLong": "ArbitCoin",
1398 | "MinConfirmation": 6,
1399 | "TxFee": 0.02,
1400 | "IsActive": true,
1401 | "CoinType": "BITCOIN",
1402 | "BaseAddress": null,
1403 | "Notice": null
1404 | },
1405 | {
1406 | "Currency": "OK",
1407 | "CurrencyLong": "OkCash",
1408 | "MinConfirmation": 6,
1409 | "TxFee": 0.2,
1410 | "IsActive": true,
1411 | "CoinType": "BITCOIN",
1412 | "BaseAddress": null,
1413 | "Notice": null
1414 | },
1415 | {
1416 | "Currency": "ADC",
1417 | "CurrencyLong": "AudioCoin",
1418 | "MinConfirmation": 6,
1419 | "TxFee": 2,
1420 | "IsActive": true,
1421 | "CoinType": "BITCOIN",
1422 | "BaseAddress": null,
1423 | "Notice": null
1424 | },
1425 | {
1426 | "Currency": "SNRG",
1427 | "CurrencyLong": "Synergy",
1428 | "MinConfirmation": 6,
1429 | "TxFee": 0.002,
1430 | "IsActive": true,
1431 | "CoinType": "BITCOIN",
1432 | "BaseAddress": null,
1433 | "Notice": null
1434 | },
1435 | {
1436 | "Currency": "PKB",
1437 | "CurrencyLong": "ParkByte",
1438 | "MinConfirmation": 6,
1439 | "TxFee": 0.02,
1440 | "IsActive": true,
1441 | "CoinType": "BITCOIN",
1442 | "BaseAddress": null,
1443 | "Notice": null
1444 | },
1445 | {
1446 | "Currency": "TES",
1447 | "CurrencyLong": "TeslaCoin",
1448 | "MinConfirmation": 15,
1449 | "TxFee": 0.2,
1450 | "IsActive": true,
1451 | "CoinType": "BITCOIN",
1452 | "BaseAddress": null,
1453 | "Notice": null
1454 | },
1455 | {
1456 | "Currency": "CPC",
1457 | "CurrencyLong": "CapriCoin",
1458 | "MinConfirmation": 6,
1459 | "TxFee": 0.2,
1460 | "IsActive": true,
1461 | "CoinType": "BITCOIN",
1462 | "BaseAddress": null,
1463 | "Notice": null
1464 | },
1465 | {
1466 | "Currency": "AEON",
1467 | "CurrencyLong": "Aeon",
1468 | "MinConfirmation": 15,
1469 | "TxFee": 0.1,
1470 | "IsActive": true,
1471 | "CoinType": "CRYPTO_NOTE_PAYMENTID",
1472 | "BaseAddress": "WmtK9TQ6yd2ZWZDAkRsebc2ppzUq2Wuo9XRRjHMH2fvqM3ARVqk3styJ6AavJFcpJFPFtxRGAqGFoJMZGJ6YYzQ61TYGfpykX",
1473 | "Notice": null
1474 | },
1475 | {
1476 | "Currency": "BITZ",
1477 | "CurrencyLong": "Bitz",
1478 | "MinConfirmation": 6,
1479 | "TxFee": 0.02,
1480 | "IsActive": true,
1481 | "CoinType": "BITCOIN",
1482 | "BaseAddress": null,
1483 | "Notice": null
1484 | },
1485 | {
1486 | "Currency": "ETH",
1487 | "CurrencyLong": "Ethereum",
1488 | "MinConfirmation": 36,
1489 | "TxFee": 0.001,
1490 | "IsActive": true,
1491 | "CoinType": "ETH",
1492 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
1493 | "Notice": null
1494 | },
1495 | {
1496 | "Currency": "GCR",
1497 | "CurrencyLong": "GlobalCurrencyReserve",
1498 | "MinConfirmation": 60,
1499 | "TxFee": 0.02,
1500 | "IsActive": true,
1501 | "CoinType": "BITCOIN",
1502 | "BaseAddress": null,
1503 | "Notice": null
1504 | },
1505 | {
1506 | "Currency": "TX",
1507 | "CurrencyLong": "TransferCoin",
1508 | "MinConfirmation": 6,
1509 | "TxFee": 0.02,
1510 | "IsActive": true,
1511 | "CoinType": "BITCOIN",
1512 | "BaseAddress": null,
1513 | "Notice": null
1514 | },
1515 | {
1516 | "Currency": "BCY",
1517 | "CurrencyLong": "BitCrystals",
1518 | "MinConfirmation": 2,
1519 | "TxFee": 5,
1520 | "IsActive": true,
1521 | "CoinType": "COUNTERPARTY",
1522 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1523 | "Notice": null
1524 | },
1525 | {
1526 | "Currency": "PRIME",
1527 | "CurrencyLong": "PrimeChain",
1528 | "MinConfirmation": 6,
1529 | "TxFee": 0.02,
1530 | "IsActive": true,
1531 | "CoinType": "BITCOIN",
1532 | "BaseAddress": null,
1533 | "Notice": null
1534 | },
1535 | {
1536 | "Currency": "EXP",
1537 | "CurrencyLong": "Expanse",
1538 | "MinConfirmation": 60,
1539 | "TxFee": 0.01,
1540 | "IsActive": true,
1541 | "CoinType": "ETH",
1542 | "BaseAddress": "0xc9710872d3e65edbf7f8776829dd7b21f2085e40",
1543 | "Notice": null
1544 | },
1545 | {
1546 | "Currency": "NEU",
1547 | "CurrencyLong": "NeuCoin",
1548 | "MinConfirmation": 6,
1549 | "TxFee": 0.02,
1550 | "IsActive": true,
1551 | "CoinType": "BITCOIN",
1552 | "BaseAddress": null,
1553 | "Notice": null
1554 | },
1555 | {
1556 | "Currency": "SWING",
1557 | "CurrencyLong": "SwingCoin",
1558 | "MinConfirmation": 6,
1559 | "TxFee": 0.1,
1560 | "IsActive": true,
1561 | "CoinType": "BITCOIN",
1562 | "BaseAddress": null,
1563 | "Notice": null
1564 | },
1565 | {
1566 | "Currency": "INFX",
1567 | "CurrencyLong": "InfluxCoin",
1568 | "MinConfirmation": 6,
1569 | "TxFee": 0.1,
1570 | "IsActive": true,
1571 | "CoinType": "BITCOIN",
1572 | "BaseAddress": null,
1573 | "Notice": null
1574 | },
1575 | {
1576 | "Currency": "SOIL",
1577 | "CurrencyLong": "SOILcoin",
1578 | "MinConfirmation": 60,
1579 | "TxFee": 0.1,
1580 | "IsActive": true,
1581 | "CoinType": "ETH",
1582 | "BaseAddress": "0x6b8c05cfa77258c5c7ba42b0467f5c00ce3eed02",
1583 | "Notice": null
1584 | },
1585 | {
1586 | "Currency": "OMNI",
1587 | "CurrencyLong": "OmniCoin",
1588 | "MinConfirmation": 1,
1589 | "TxFee": 0.1,
1590 | "IsActive": true,
1591 | "CoinType": "OMNI",
1592 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1593 | "Notice": null
1594 | },
1595 | {
1596 | "Currency": "USDT",
1597 | "CurrencyLong": "Tether",
1598 | "MinConfirmation": 1,
1599 | "TxFee": 5,
1600 | "IsActive": true,
1601 | "CoinType": "OMNI",
1602 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1603 | "Notice": null
1604 | },
1605 | {
1606 | "Currency": "AMP",
1607 | "CurrencyLong": "SynereoAmp",
1608 | "MinConfirmation": 1,
1609 | "TxFee": 0.1,
1610 | "IsActive": true,
1611 | "CoinType": "OMNI",
1612 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1613 | "Notice": null
1614 | },
1615 | {
1616 | "Currency": "AGRS",
1617 | "CurrencyLong": "IDNI Agoras",
1618 | "MinConfirmation": 1,
1619 | "TxFee": 0.1,
1620 | "IsActive": true,
1621 | "CoinType": "OMNI",
1622 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1623 | "Notice": null
1624 | },
1625 | {
1626 | "Currency": "XLM",
1627 | "CurrencyLong": "Lumen",
1628 | "MinConfirmation": 2,
1629 | "TxFee": 0.01,
1630 | "IsActive": true,
1631 | "CoinType": "LUMEN",
1632 | "BaseAddress": "GB6YPGW5JFMMP2QB2USQ33EUWTXVL4ZT5ITUNCY3YKVWOJPP57CANOF3",
1633 | "Notice": null
1634 | },
1635 | {
1636 | "Currency": "SPRTS",
1637 | "CurrencyLong": "Sprouts",
1638 | "MinConfirmation": 6,
1639 | "TxFee": 1,
1640 | "IsActive": true,
1641 | "CoinType": "BITCOIN",
1642 | "BaseAddress": null,
1643 | "Notice": null
1644 | },
1645 | {
1646 | "Currency": "YBC",
1647 | "CurrencyLong": "YBCoin",
1648 | "MinConfirmation": 6,
1649 | "TxFee": 1,
1650 | "IsActive": true,
1651 | "CoinType": "BITCOIN",
1652 | "BaseAddress": null,
1653 | "Notice": null
1654 | },
1655 | {
1656 | "Currency": "BTA",
1657 | "CurrencyLong": "Bata",
1658 | "MinConfirmation": 12,
1659 | "TxFee": 1,
1660 | "IsActive": false,
1661 | "CoinType": "BITCOIN",
1662 | "BaseAddress": null,
1663 | "Notice": "Wallet Maintenance"
1664 | },
1665 | {
1666 | "Currency": "MEC",
1667 | "CurrencyLong": "MegaCoin",
1668 | "MinConfirmation": 6,
1669 | "TxFee": 1,
1670 | "IsActive": true,
1671 | "CoinType": "BITCOIN",
1672 | "BaseAddress": null,
1673 | "Notice": null
1674 | },
1675 | {
1676 | "Currency": "BITCNY",
1677 | "CurrencyLong": "BitCNY",
1678 | "MinConfirmation": 2,
1679 | "TxFee": 1.5,
1680 | "IsActive": true,
1681 | "CoinType": "BITSHAREX",
1682 | "BaseAddress": "bittrex-deposit",
1683 | "Notice": null
1684 | },
1685 | {
1686 | "Currency": "AMS",
1687 | "CurrencyLong": "AmsterdamCoin",
1688 | "MinConfirmation": 6,
1689 | "TxFee": 1,
1690 | "IsActive": true,
1691 | "CoinType": "BITCOIN",
1692 | "BaseAddress": null,
1693 | "Notice": null
1694 | },
1695 | {
1696 | "Currency": "SCRT",
1697 | "CurrencyLong": "SecretCoin",
1698 | "MinConfirmation": 6,
1699 | "TxFee": 1,
1700 | "IsActive": true,
1701 | "CoinType": "BITCOIN",
1702 | "BaseAddress": null,
1703 | "Notice": null
1704 | },
1705 | {
1706 | "Currency": "SCOT",
1707 | "CurrencyLong": "ScotCoin",
1708 | "MinConfirmation": 2,
1709 | "TxFee": 5,
1710 | "IsActive": true,
1711 | "CoinType": "COUNTERPARTY",
1712 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
1713 | "Notice": null
1714 | },
1715 | {
1716 | "Currency": "CLUB",
1717 | "CurrencyLong": "ClubCoin",
1718 | "MinConfirmation": 6,
1719 | "TxFee": 0.02,
1720 | "IsActive": true,
1721 | "CoinType": "BITCOIN",
1722 | "BaseAddress": null,
1723 | "Notice": null
1724 | },
1725 | {
1726 | "Currency": "BNT",
1727 | "CurrencyLong": "Bantam",
1728 | "MinConfirmation": 6,
1729 | "TxFee": 1,
1730 | "IsActive": true,
1731 | "CoinType": "BITCOIN",
1732 | "BaseAddress": null,
1733 | "Notice": null
1734 | },
1735 | {
1736 | "Currency": "VOX",
1737 | "CurrencyLong": "Voxels",
1738 | "MinConfirmation": 6,
1739 | "TxFee": 0.1,
1740 | "IsActive": true,
1741 | "CoinType": "BITCOIN",
1742 | "BaseAddress": null,
1743 | "Notice": null
1744 | },
1745 | {
1746 | "Currency": "MND",
1747 | "CurrencyLong": "MindCoin",
1748 | "MinConfirmation": 6,
1749 | "TxFee": 1,
1750 | "IsActive": true,
1751 | "CoinType": "BITCOIN",
1752 | "BaseAddress": null,
1753 | "Notice": null
1754 | },
1755 | {
1756 | "Currency": "EMC",
1757 | "CurrencyLong": "EmerCoin",
1758 | "MinConfirmation": 6,
1759 | "TxFee": 0.02,
1760 | "IsActive": true,
1761 | "CoinType": "BITCOIN",
1762 | "BaseAddress": null,
1763 | "Notice": null
1764 | },
1765 | {
1766 | "Currency": "FCT",
1767 | "CurrencyLong": "Factom",
1768 | "MinConfirmation": 2,
1769 | "TxFee": 0.1,
1770 | "IsActive": false,
1771 | "CoinType": "FACTOM",
1772 | "BaseAddress": "FA2MZs5wASMo9cCiKezdiQKCd8KA6Zbg2xKXKGmYEZBqon9J3ZKv",
1773 | "Notice": "Wallet Maintenance"
1774 | },
1775 | {
1776 | "Currency": "MAID",
1777 | "CurrencyLong": "MaidSafeCoin",
1778 | "MinConfirmation": 1,
1779 | "TxFee": 1,
1780 | "IsActive": true,
1781 | "CoinType": "OMNI",
1782 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1783 | "Notice": null
1784 | },
1785 | {
1786 | "Currency": "FRK",
1787 | "CurrencyLong": "Franko",
1788 | "MinConfirmation": 30,
1789 | "TxFee": 0.002,
1790 | "IsActive": true,
1791 | "CoinType": "BITCOIN",
1792 | "BaseAddress": null,
1793 | "Notice": null
1794 | },
1795 | {
1796 | "Currency": "EGC",
1797 | "CurrencyLong": "EverGreenCoin",
1798 | "MinConfirmation": 6,
1799 | "TxFee": 0.2,
1800 | "IsActive": true,
1801 | "CoinType": "BITCOIN",
1802 | "BaseAddress": null,
1803 | "Notice": null
1804 | },
1805 | {
1806 | "Currency": "SLS",
1807 | "CurrencyLong": "SaluS",
1808 | "MinConfirmation": 6,
1809 | "TxFee": 0.002,
1810 | "IsActive": true,
1811 | "CoinType": "BITCOIN",
1812 | "BaseAddress": null,
1813 | "Notice": null
1814 | },
1815 | {
1816 | "Currency": "ORB",
1817 | "CurrencyLong": "OrbitCoin",
1818 | "MinConfirmation": 6,
1819 | "TxFee": 0.2,
1820 | "IsActive": true,
1821 | "CoinType": "BITCOIN",
1822 | "BaseAddress": null,
1823 | "Notice": null
1824 | },
1825 | {
1826 | "Currency": "STEPS",
1827 | "CurrencyLong": "Steps",
1828 | "MinConfirmation": 6,
1829 | "TxFee": 0.2,
1830 | "IsActive": true,
1831 | "CoinType": "BITCOIN",
1832 | "BaseAddress": null,
1833 | "Notice": null
1834 | },
1835 | {
1836 | "Currency": "RADS",
1837 | "CurrencyLong": "Radium",
1838 | "MinConfirmation": 6,
1839 | "TxFee": 0.2,
1840 | "IsActive": true,
1841 | "CoinType": "BITCOIN",
1842 | "BaseAddress": null,
1843 | "Notice": null
1844 | },
1845 | {
1846 | "Currency": "DCR",
1847 | "CurrencyLong": "Decred",
1848 | "MinConfirmation": 6,
1849 | "TxFee": 0.03,
1850 | "IsActive": true,
1851 | "CoinType": "BITCOIN",
1852 | "BaseAddress": null,
1853 | "Notice": null
1854 | },
1855 | {
1856 | "Currency": "SEC",
1857 | "CurrencyLong": "SafeExchangeCoin",
1858 | "MinConfirmation": 1,
1859 | "TxFee": 1,
1860 | "IsActive": true,
1861 | "CoinType": "OMNI",
1862 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1863 | "Notice": null
1864 | },
1865 | {
1866 | "Currency": "PIVX",
1867 | "CurrencyLong": "Pivx",
1868 | "MinConfirmation": 6,
1869 | "TxFee": 0.02,
1870 | "IsActive": true,
1871 | "CoinType": "BITCOIN",
1872 | "BaseAddress": null,
1873 | "Notice": null
1874 | },
1875 | {
1876 | "Currency": "WARP",
1877 | "CurrencyLong": "WarpCoin",
1878 | "MinConfirmation": 6,
1879 | "TxFee": 0.02,
1880 | "IsActive": true,
1881 | "CoinType": "BITCOIN",
1882 | "BaseAddress": null,
1883 | "Notice": null
1884 | },
1885 | {
1886 | "Currency": "CRBIT",
1887 | "CurrencyLong": "CreditBit",
1888 | "MinConfirmation": 6,
1889 | "TxFee": 1,
1890 | "IsActive": true,
1891 | "CoinType": "BITCOIN",
1892 | "BaseAddress": null,
1893 | "Notice": null
1894 | },
1895 | {
1896 | "Currency": "MEME",
1897 | "CurrencyLong": "Memetic",
1898 | "MinConfirmation": 6,
1899 | "TxFee": 0.02,
1900 | "IsActive": true,
1901 | "CoinType": "BITCOIN",
1902 | "BaseAddress": null,
1903 | "Notice": null
1904 | },
1905 | {
1906 | "Currency": "STEEM",
1907 | "CurrencyLong": "STEEM",
1908 | "MinConfirmation": 20,
1909 | "TxFee": 0.01,
1910 | "IsActive": true,
1911 | "CoinType": "STEEM",
1912 | "BaseAddress": "bittrex",
1913 | "Notice": null
1914 | },
1915 | {
1916 | "Currency": "2GIVE",
1917 | "CurrencyLong": "2GIVE",
1918 | "MinConfirmation": 6,
1919 | "TxFee": 0.01,
1920 | "IsActive": true,
1921 | "CoinType": "BITCOIN_PERCENTAGE_FEE",
1922 | "BaseAddress": null,
1923 | "Notice": null
1924 | },
1925 | {
1926 | "Currency": "LSK",
1927 | "CurrencyLong": "Lisk",
1928 | "MinConfirmation": 77,
1929 | "TxFee": 0.1,
1930 | "IsActive": true,
1931 | "CoinType": "LISK",
1932 | "BaseAddress": "6687808873757044786L",
1933 | "Notice": null
1934 | },
1935 | {
1936 | "Currency": "KR",
1937 | "CurrencyLong": "Krypton",
1938 | "MinConfirmation": 20,
1939 | "TxFee": 0.01,
1940 | "IsActive": true,
1941 | "CoinType": "BITCOIN",
1942 | "BaseAddress": null,
1943 | "Notice": null
1944 | },
1945 | {
1946 | "Currency": "PDC",
1947 | "CurrencyLong": "Project Decorum",
1948 | "MinConfirmation": 1,
1949 | "TxFee": 1,
1950 | "IsActive": true,
1951 | "CoinType": "OMNI",
1952 | "BaseAddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
1953 | "Notice": null
1954 | },
1955 | {
1956 | "Currency": "DGD",
1957 | "CurrencyLong": "Digix DAO",
1958 | "MinConfirmation": 36,
1959 | "TxFee": 0.01,
1960 | "IsActive": true,
1961 | "CoinType": "ETH_CONTRACT",
1962 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
1963 | "Notice": null
1964 | },
1965 | {
1966 | "Currency": "BRK",
1967 | "CurrencyLong": "Breakout",
1968 | "MinConfirmation": 6,
1969 | "TxFee": 0.02,
1970 | "IsActive": true,
1971 | "CoinType": "BITCOIN",
1972 | "BaseAddress": null,
1973 | "Notice": null
1974 | },
1975 | {
1976 | "Currency": "WAVES",
1977 | "CurrencyLong": "Waves",
1978 | "MinConfirmation": 20,
1979 | "TxFee": 0.001,
1980 | "IsActive": true,
1981 | "CoinType": "WAVES",
1982 | "BaseAddress": "3P31zvGdh6ai6JK6zZ18TjYzJsa1B83YPoj",
1983 | "Notice": null
1984 | },
1985 | {
1986 | "Currency": "RISE",
1987 | "CurrencyLong": "Rise",
1988 | "MinConfirmation": 77,
1989 | "TxFee": 0.1,
1990 | "IsActive": true,
1991 | "CoinType": "LISK",
1992 | "BaseAddress": "1644223775232371040R",
1993 | "Notice": null
1994 | },
1995 | {
1996 | "Currency": "LBC",
1997 | "CurrencyLong": "LBRY Credits",
1998 | "MinConfirmation": 6,
1999 | "TxFee": 0.02,
2000 | "IsActive": true,
2001 | "CoinType": "BITCOIN",
2002 | "BaseAddress": null,
2003 | "Notice": null
2004 | },
2005 | {
2006 | "Currency": "SBD",
2007 | "CurrencyLong": "SteemDollars",
2008 | "MinConfirmation": 20,
2009 | "TxFee": 0.01,
2010 | "IsActive": true,
2011 | "CoinType": "STEEM",
2012 | "BaseAddress": "bittrex",
2013 | "Notice": null
2014 | },
2015 | {
2016 | "Currency": "BRX",
2017 | "CurrencyLong": "Breakout Stake",
2018 | "MinConfirmation": 6,
2019 | "TxFee": 0.02,
2020 | "IsActive": true,
2021 | "CoinType": "BITCOIN",
2022 | "BaseAddress": null,
2023 | "Notice": ""
2024 | },
2025 | {
2026 | "Currency": "DRACO",
2027 | "CurrencyLong": "DT Token",
2028 | "MinConfirmation": 10,
2029 | "TxFee": 2,
2030 | "IsActive": true,
2031 | "CoinType": "NXT_MS",
2032 | "BaseAddress": "NXT-BAVX-TWZC-C9GH-FW9LJ",
2033 | "Notice": null
2034 | },
2035 | {
2036 | "Currency": "ETC",
2037 | "CurrencyLong": "Ethereum Classic",
2038 | "MinConfirmation": 72,
2039 | "TxFee": 0.01,
2040 | "IsActive": true,
2041 | "CoinType": "ETH",
2042 | "BaseAddress": "0xe592b0d8baa2cb677034389b76a71b0d1823e0d1",
2043 | "Notice": null
2044 | },
2045 | {
2046 | "Currency": "UNIQ",
2047 | "CurrencyLong": "Uniqredit",
2048 | "MinConfirmation": 6,
2049 | "TxFee": 0.1,
2050 | "IsActive": true,
2051 | "CoinType": "BITCOIN",
2052 | "BaseAddress": null,
2053 | "Notice": null
2054 | },
2055 | {
2056 | "Currency": "STRAT",
2057 | "CurrencyLong": "Stratis",
2058 | "MinConfirmation": 6,
2059 | "TxFee": 0.2,
2060 | "IsActive": true,
2061 | "CoinType": "BITCOIN",
2062 | "BaseAddress": null,
2063 | "Notice": null
2064 | },
2065 | {
2066 | "Currency": "UNB",
2067 | "CurrencyLong": "UnbreakableCoin",
2068 | "MinConfirmation": 6,
2069 | "TxFee": 0.2,
2070 | "IsActive": false,
2071 | "CoinType": "BITCOIN",
2072 | "BaseAddress": null,
2073 | "Notice": "Automated Maintenance."
2074 | },
2075 | {
2076 | "Currency": "SYNX",
2077 | "CurrencyLong": "Syndicate",
2078 | "MinConfirmation": 6,
2079 | "TxFee": 0.2,
2080 | "IsActive": true,
2081 | "CoinType": "BITCOIN",
2082 | "BaseAddress": null,
2083 | "Notice": null
2084 | },
2085 | {
2086 | "Currency": "TRIG",
2087 | "CurrencyLong": "TRIG Token",
2088 | "MinConfirmation": 2,
2089 | "TxFee": 50,
2090 | "IsActive": true,
2091 | "CoinType": "COUNTERPARTY",
2092 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
2093 | "Notice": null
2094 | },
2095 | {
2096 | "Currency": "EBST",
2097 | "CurrencyLong": "eBoost",
2098 | "MinConfirmation": 2,
2099 | "TxFee": 0.1,
2100 | "IsActive": true,
2101 | "CoinType": "BITCOIN",
2102 | "BaseAddress": null,
2103 | "Notice": null
2104 | },
2105 | {
2106 | "Currency": "VRM",
2107 | "CurrencyLong": "Verium",
2108 | "MinConfirmation": 6,
2109 | "TxFee": 0.4,
2110 | "IsActive": true,
2111 | "CoinType": "BITCOIN",
2112 | "BaseAddress": null,
2113 | "Notice": null
2114 | },
2115 | {
2116 | "Currency": "XAUR",
2117 | "CurrencyLong": "Xaurum",
2118 | "MinConfirmation": 36,
2119 | "TxFee": 0.1,
2120 | "IsActive": true,
2121 | "CoinType": "ETH_CONTRACT",
2122 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2123 | "Notice": null
2124 | },
2125 | {
2126 | "Currency": "SEQ",
2127 | "CurrencyLong": "Sequence",
2128 | "MinConfirmation": 6,
2129 | "TxFee": 0.2,
2130 | "IsActive": true,
2131 | "CoinType": "BITCOIN",
2132 | "BaseAddress": null,
2133 | "Notice": null
2134 | },
2135 | {
2136 | "Currency": "SNGLS",
2137 | "CurrencyLong": "SingularDTV",
2138 | "MinConfirmation": 36,
2139 | "TxFee": 1,
2140 | "IsActive": true,
2141 | "CoinType": "ETH_CONTRACT",
2142 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2143 | "Notice": null
2144 | },
2145 | {
2146 | "Currency": "JWL",
2147 | "CurrencyLong": "Jewel",
2148 | "MinConfirmation": 6,
2149 | "TxFee": 0.2,
2150 | "IsActive": true,
2151 | "CoinType": "BITCOIN",
2152 | "BaseAddress": null,
2153 | "Notice": null
2154 | },
2155 | {
2156 | "Currency": "REP",
2157 | "CurrencyLong": "Augur",
2158 | "MinConfirmation": 36,
2159 | "TxFee": 0.1,
2160 | "IsActive": true,
2161 | "CoinType": "ETH_CONTRACT",
2162 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2163 | "Notice": null
2164 | },
2165 | {
2166 | "Currency": "SHIFT",
2167 | "CurrencyLong": "Shift",
2168 | "MinConfirmation": 77,
2169 | "TxFee": 0.1,
2170 | "IsActive": true,
2171 | "CoinType": "LISK",
2172 | "BaseAddress": "15128408768964966812S",
2173 | "Notice": null
2174 | },
2175 | {
2176 | "Currency": "ARDR",
2177 | "CurrencyLong": "Ardor",
2178 | "MinConfirmation": 10,
2179 | "TxFee": 2,
2180 | "IsActive": true,
2181 | "CoinType": "NXT_ASSET",
2182 | "BaseAddress": "NXT-XK2L-Z7NK-VNKM-AZYVT",
2183 | "Notice": null
2184 | },
2185 | {
2186 | "Currency": "XZC",
2187 | "CurrencyLong": "ZCoin",
2188 | "MinConfirmation": 6,
2189 | "TxFee": 0.02,
2190 | "IsActive": true,
2191 | "CoinType": "BITCOIN",
2192 | "BaseAddress": null,
2193 | "Notice": null
2194 | },
2195 | {
2196 | "Currency": "ANS",
2197 | "CurrencyLong": "AntShares",
2198 | "MinConfirmation": 10,
2199 | "TxFee": 1,
2200 | "IsActive": true,
2201 | "CoinType": "ANTSHARES",
2202 | "BaseAddress": null,
2203 | "Notice": null
2204 | },
2205 | {
2206 | "Currency": "ZEC",
2207 | "CurrencyLong": "ZCash",
2208 | "MinConfirmation": 30,
2209 | "TxFee": 0.0002,
2210 | "IsActive": true,
2211 | "CoinType": "BITCOINEX",
2212 | "BaseAddress": null,
2213 | "Notice": null
2214 | },
2215 | {
2216 | "Currency": "ZCL",
2217 | "CurrencyLong": "Zclassic",
2218 | "MinConfirmation": 30,
2219 | "TxFee": 0.002,
2220 | "IsActive": false,
2221 | "CoinType": "BITCOINEX",
2222 | "BaseAddress": null,
2223 | "Notice": null
2224 | },
2225 | {
2226 | "Currency": "IOP",
2227 | "CurrencyLong": "Internet Of People",
2228 | "MinConfirmation": 6,
2229 | "TxFee": 0.2,
2230 | "IsActive": true,
2231 | "CoinType": "BITCOIN",
2232 | "BaseAddress": null,
2233 | "Notice": null
2234 | },
2235 | {
2236 | "Currency": "DAR",
2237 | "CurrencyLong": "Darcrus",
2238 | "MinConfirmation": 10,
2239 | "TxFee": 1,
2240 | "IsActive": true,
2241 | "CoinType": "NXT_ASSET",
2242 | "BaseAddress": "NXT-4GT5-5AA2-T2KH-67YMX",
2243 | "Notice": null
2244 | },
2245 | {
2246 | "Currency": "GOLOS",
2247 | "CurrencyLong": "Golos",
2248 | "MinConfirmation": 20,
2249 | "TxFee": 0.01,
2250 | "IsActive": false,
2251 | "CoinType": "STEEM",
2252 | "BaseAddress": "bittrex",
2253 | "Notice": "Wallet Maintenance"
2254 | },
2255 | {
2256 | "Currency": "GBG",
2257 | "CurrencyLong": "Gbg",
2258 | "MinConfirmation": 20,
2259 | "TxFee": 0.01,
2260 | "IsActive": false,
2261 | "CoinType": "STEEM",
2262 | "BaseAddress": "bittrex",
2263 | "Notice": "Wallet Maintenance"
2264 | },
2265 | {
2266 | "Currency": "UBQ",
2267 | "CurrencyLong": "Ubiq",
2268 | "MinConfirmation": 80,
2269 | "TxFee": 0.01,
2270 | "IsActive": true,
2271 | "CoinType": "ETH",
2272 | "BaseAddress": "0xb3c4e9ca7c12a6277deb9eef2dece65953d1c864",
2273 | "Notice": null
2274 | },
2275 | {
2276 | "Currency": "HKG",
2277 | "CurrencyLong": "HackerGold",
2278 | "MinConfirmation": 36,
2279 | "TxFee": 0.1,
2280 | "IsActive": true,
2281 | "CoinType": "ETH_CONTRACT",
2282 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2283 | "Notice": null
2284 | },
2285 | {
2286 | "Currency": "KMD",
2287 | "CurrencyLong": "Komodo",
2288 | "MinConfirmation": 30,
2289 | "TxFee": 0.002,
2290 | "IsActive": true,
2291 | "CoinType": "BITCOINEX",
2292 | "BaseAddress": null,
2293 | "Notice": null
2294 | },
2295 | {
2296 | "Currency": "SIB",
2297 | "CurrencyLong": "Siberian Chervonets",
2298 | "MinConfirmation": 6,
2299 | "TxFee": 0.2,
2300 | "IsActive": true,
2301 | "CoinType": "BITCOIN",
2302 | "BaseAddress": null,
2303 | "Notice": null
2304 | },
2305 | {
2306 | "Currency": "ION",
2307 | "CurrencyLong": "Ion",
2308 | "MinConfirmation": 6,
2309 | "TxFee": 0.2,
2310 | "IsActive": true,
2311 | "CoinType": "BITCOIN",
2312 | "BaseAddress": null,
2313 | "Notice": null
2314 | },
2315 | {
2316 | "Currency": "LMC",
2317 | "CurrencyLong": "Lomocoin",
2318 | "MinConfirmation": 6,
2319 | "TxFee": 0.2,
2320 | "IsActive": true,
2321 | "CoinType": "BITCOIN",
2322 | "BaseAddress": null,
2323 | "Notice": null
2324 | },
2325 | {
2326 | "Currency": "QWARK",
2327 | "CurrencyLong": "Qwark",
2328 | "MinConfirmation": 36,
2329 | "TxFee": 0.1,
2330 | "IsActive": true,
2331 | "CoinType": "ETH_CONTRACT",
2332 | "BaseAddress": "0xb3c4e9ca7c12a6277deb9eef2dece65953d1c864",
2333 | "Notice": null
2334 | },
2335 | {
2336 | "Currency": "CRW",
2337 | "CurrencyLong": "Crown",
2338 | "MinConfirmation": 10,
2339 | "TxFee": 0.2,
2340 | "IsActive": true,
2341 | "CoinType": "BITCOIN",
2342 | "BaseAddress": null,
2343 | "Notice": null
2344 | },
2345 | {
2346 | "Currency": "SWT",
2347 | "CurrencyLong": "Swarm City Token",
2348 | "MinConfirmation": 36,
2349 | "TxFee": 0.1,
2350 | "IsActive": true,
2351 | "CoinType": "ETH_CONTRACT",
2352 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2353 | "Notice": null
2354 | },
2355 | {
2356 | "Currency": "TIME",
2357 | "CurrencyLong": "Chronobank Time",
2358 | "MinConfirmation": 36,
2359 | "TxFee": 0.1,
2360 | "IsActive": true,
2361 | "CoinType": "ETH_CONTRACT",
2362 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2363 | "Notice": null
2364 | },
2365 | {
2366 | "Currency": "MLN",
2367 | "CurrencyLong": "Melon",
2368 | "MinConfirmation": 36,
2369 | "TxFee": 0.003,
2370 | "IsActive": true,
2371 | "CoinType": "ETH_CONTRACT",
2372 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2373 | "Notice": null
2374 | },
2375 | {
2376 | "Currency": "TKS",
2377 | "CurrencyLong": "Tokes",
2378 | "MinConfirmation": 20,
2379 | "TxFee": 0.1,
2380 | "IsActive": true,
2381 | "CoinType": "WAVES_ASSET",
2382 | "BaseAddress": "3P31zvGdh6ai6JK6zZ18TjYzJsa1B83YPoj",
2383 | "Notice": null
2384 | },
2385 | {
2386 | "Currency": "ARK",
2387 | "CurrencyLong": "Ark",
2388 | "MinConfirmation": 51,
2389 | "TxFee": 0.1,
2390 | "IsActive": true,
2391 | "CoinType": "LISK",
2392 | "BaseAddress": "AUexKjGtgsSpVzPLs6jNMM6vJ6znEVTQWK",
2393 | "Notice": null
2394 | },
2395 | {
2396 | "Currency": "DYN",
2397 | "CurrencyLong": "Dynamic",
2398 | "MinConfirmation": 10,
2399 | "TxFee": 0.02,
2400 | "IsActive": true,
2401 | "CoinType": "BITCOIN",
2402 | "BaseAddress": null,
2403 | "Notice": null
2404 | },
2405 | {
2406 | "Currency": "MUSIC",
2407 | "CurrencyLong": "Musicoin",
2408 | "MinConfirmation": 36,
2409 | "TxFee": 0.01,
2410 | "IsActive": true,
2411 | "CoinType": "ETH",
2412 | "BaseAddress": "0xea62a60b127efd524b6e19791bcb374a49302c71",
2413 | "Notice": null
2414 | },
2415 | {
2416 | "Currency": "DTB",
2417 | "CurrencyLong": "Databits",
2418 | "MinConfirmation": 2,
2419 | "TxFee": 5,
2420 | "IsActive": true,
2421 | "CoinType": "COUNTERPARTY",
2422 | "BaseAddress": "1AeqgtHedfA2yVXH6GiKLS2JGkfWfgyTC6",
2423 | "Notice": null
2424 | },
2425 | {
2426 | "Currency": "INCNT",
2427 | "CurrencyLong": "Incent",
2428 | "MinConfirmation": 20,
2429 | "TxFee": 0.1,
2430 | "IsActive": true,
2431 | "CoinType": "WAVES_ASSET",
2432 | "BaseAddress": "3P31zvGdh6ai6JK6zZ18TjYzJsa1B83YPoj",
2433 | "Notice": null
2434 | },
2435 | {
2436 | "Currency": "GBYTE",
2437 | "CurrencyLong": "Byteball",
2438 | "MinConfirmation": 1,
2439 | "TxFee": 0.002,
2440 | "IsActive": true,
2441 | "CoinType": "BYTEBALL",
2442 | "BaseAddress": null,
2443 | "Notice": null
2444 | },
2445 | {
2446 | "Currency": "GNT",
2447 | "CurrencyLong": "Golem",
2448 | "MinConfirmation": 36,
2449 | "TxFee": 0.01,
2450 | "IsActive": true,
2451 | "CoinType": "ETH_CONTRACT",
2452 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2453 | "Notice": null
2454 | },
2455 | {
2456 | "Currency": "NXC",
2457 | "CurrencyLong": "Nexium",
2458 | "MinConfirmation": 36,
2459 | "TxFee": 0.01,
2460 | "IsActive": true,
2461 | "CoinType": "ETH_CONTRACT",
2462 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2463 | "Notice": null
2464 | },
2465 | {
2466 | "Currency": "EDG",
2467 | "CurrencyLong": "Edgeless",
2468 | "MinConfirmation": 36,
2469 | "TxFee": 1,
2470 | "IsActive": true,
2471 | "CoinType": "ETH_CONTRACT",
2472 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2473 | "Notice": null
2474 | },
2475 | {
2476 | "Currency": "LGD",
2477 | "CurrencyLong": "Legends",
2478 | "MinConfirmation": 36,
2479 | "TxFee": 0.01,
2480 | "IsActive": true,
2481 | "CoinType": "ETH_CONTRACT",
2482 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2483 | "Notice": null
2484 | },
2485 | {
2486 | "Currency": "TRST",
2487 | "CurrencyLong": "Trustcoin",
2488 | "MinConfirmation": 36,
2489 | "TxFee": 0.01,
2490 | "IsActive": true,
2491 | "CoinType": "ETH_CONTRACT",
2492 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2493 | "Notice": null
2494 | },
2495 | {
2496 | "Currency": "WINGS",
2497 | "CurrencyLong": "Wings DAO",
2498 | "MinConfirmation": 36,
2499 | "TxFee": 0.01,
2500 | "IsActive": true,
2501 | "CoinType": "ETH_CONTRACT",
2502 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2503 | "Notice": null
2504 | },
2505 | {
2506 | "Currency": "RLC",
2507 | "CurrencyLong": "iEx.ec",
2508 | "MinConfirmation": 36,
2509 | "TxFee": 0.01,
2510 | "IsActive": true,
2511 | "CoinType": "ETH_CONTRACT",
2512 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2513 | "Notice": null
2514 | },
2515 | {
2516 | "Currency": "GNO",
2517 | "CurrencyLong": "Gnosis",
2518 | "MinConfirmation": 36,
2519 | "TxFee": 0.005,
2520 | "IsActive": true,
2521 | "CoinType": "ETH_CONTRACT",
2522 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2523 | "Notice": null
2524 | },
2525 | {
2526 | "Currency": "GUP",
2527 | "CurrencyLong": "Guppy",
2528 | "MinConfirmation": 36,
2529 | "TxFee": 0.01,
2530 | "IsActive": true,
2531 | "CoinType": "ETH_CONTRACT",
2532 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2533 | "Notice": null
2534 | },
2535 | {
2536 | "Currency": "LUN",
2537 | "CurrencyLong": "Lunyr",
2538 | "MinConfirmation": 36,
2539 | "TxFee": 0.01,
2540 | "IsActive": true,
2541 | "CoinType": "ETH_CONTRACT",
2542 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2543 | "Notice": null
2544 | },
2545 | {
2546 | "Currency": "APX",
2547 | "CurrencyLong": "Apx",
2548 | "MinConfirmation": 36,
2549 | "TxFee": 0.1,
2550 | "IsActive": true,
2551 | "CoinType": "ETH_CONTRACT",
2552 | "BaseAddress": "0xb3c4e9ca7c12a6277deb9eef2dece65953d1c864",
2553 | "Notice": null
2554 | },
2555 | {
2556 | "Currency": "TKN",
2557 | "CurrencyLong": "TokenCard",
2558 | "MinConfirmation": 36,
2559 | "TxFee": 0.01,
2560 | "IsActive": true,
2561 | "CoinType": "ETH_CONTRACT",
2562 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2563 | "Notice": null
2564 | },
2565 | {
2566 | "Currency": "HMQ",
2567 | "CurrencyLong": "Humaniq",
2568 | "MinConfirmation": 36,
2569 | "TxFee": 0.01,
2570 | "IsActive": true,
2571 | "CoinType": "ETH_CONTRACT",
2572 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2573 | "Notice": null
2574 | },
2575 | {
2576 | "Currency": "ANT",
2577 | "CurrencyLong": "Aragon",
2578 | "MinConfirmation": 36,
2579 | "TxFee": 0.01,
2580 | "IsActive": true,
2581 | "CoinType": "ETH_CONTRACT",
2582 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2583 | "Notice": null
2584 | },
2585 | {
2586 | "Currency": "ZEN",
2587 | "CurrencyLong": "ZenCash",
2588 | "MinConfirmation": 30,
2589 | "TxFee": 0.002,
2590 | "IsActive": false,
2591 | "CoinType": "BITCOINEX",
2592 | "BaseAddress": null,
2593 | "Notice": null
2594 | },
2595 | {
2596 | "Currency": "SC",
2597 | "CurrencyLong": "Siacoin",
2598 | "MinConfirmation": 6,
2599 | "TxFee": 0.1,
2600 | "IsActive": true,
2601 | "CoinType": "SIA",
2602 | "BaseAddress": null,
2603 | "Notice": null
2604 | },
2605 | {
2606 | "Currency": "BAT",
2607 | "CurrencyLong": "Basic Attention Token",
2608 | "MinConfirmation": 36,
2609 | "TxFee": 0.01,
2610 | "IsActive": true,
2611 | "CoinType": "ETH_CONTRACT",
2612 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2613 | "Notice": null
2614 | },
2615 | {
2616 | "Currency": "1ST",
2617 | "CurrencyLong": "Firstblood",
2618 | "MinConfirmation": 36,
2619 | "TxFee": 0.01,
2620 | "IsActive": true,
2621 | "CoinType": "ETH_CONTRACT",
2622 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2623 | "Notice": null
2624 | },
2625 | {
2626 | "Currency": "QRL",
2627 | "CurrencyLong": "Quantum Resistant Ledger",
2628 | "MinConfirmation": 36,
2629 | "TxFee": 0.01,
2630 | "IsActive": true,
2631 | "CoinType": "ETH_CONTRACT",
2632 | "BaseAddress": "0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98",
2633 | "Notice": null
2634 | }
2635 | ]
2636 | }
--------------------------------------------------------------------------------
/src/test/resources/publicapi/getmarkethistory.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "Id": 72820919,
7 | "TimeStamp": "2017-06-10T10:48:08.403",
8 | "Quantity": 4.3275995,
9 | "Price": 0.10170002,
10 | "Total": 0.44011695,
11 | "FillType": "PARTIAL_FILL",
12 | "OrderType": "SELL"
13 | },
14 | {
15 | "Id": 72820918,
16 | "TimeStamp": "2017-06-10T10:48:08.403",
17 | "Quantity": 0.2,
18 | "Price": 0.10175,
19 | "Total": 0.02035,
20 | "FillType": "FILL",
21 | "OrderType": "SELL"
22 | },
23 | {
24 | "Id": 72820917,
25 | "TimeStamp": "2017-06-10T10:48:08.403",
26 | "Quantity": 0.35262136,
27 | "Price": 0.10175918,
28 | "Total": 0.03588246,
29 | "FillType": "FILL",
30 | "OrderType": "SELL"
31 | },
32 | {
33 | "Id": 72820916,
34 | "TimeStamp": "2017-06-10T10:48:08.403",
35 | "Quantity": 0.44589699,
36 | "Price": 0.10178999,
37 | "Total": 0.04538785,
38 | "FillType": "FILL",
39 | "OrderType": "SELL"
40 | },
41 | {
42 | "Id": 72820915,
43 | "TimeStamp": "2017-06-10T10:48:08.403",
44 | "Quantity": 0.00540318,
45 | "Price": 0.10179189,
46 | "Total": 0.00054999,
47 | "FillType": "FILL",
48 | "OrderType": "SELL"
49 | },
50 | {
51 | "Id": 72820914,
52 | "TimeStamp": "2017-06-10T10:48:08.403",
53 | "Quantity": 0.1,
54 | "Price": 0.1017945,
55 | "Total": 0.01017945,
56 | "FillType": "FILL",
57 | "OrderType": "SELL"
58 | },
59 | {
60 | "Id": 72820913,
61 | "TimeStamp": "2017-06-10T10:48:08.403",
62 | "Quantity": 0.02679422,
63 | "Price": 0.10180479,
64 | "Total": 0.00272777,
65 | "FillType": "FILL",
66 | "OrderType": "SELL"
67 | },
68 | {
69 | "Id": 72820912,
70 | "TimeStamp": "2017-06-10T10:48:08.403",
71 | "Quantity": 0.0827121,
72 | "Price": 0.10185567,
73 | "Total": 0.00842469,
74 | "FillType": "FILL",
75 | "OrderType": "SELL"
76 | },
77 | {
78 | "Id": 72820911,
79 | "TimeStamp": "2017-06-10T10:48:08.403",
80 | "Quantity": 0.00491651,
81 | "Price": 0.10186381,
82 | "Total": 0.00050081,
83 | "FillType": "FILL",
84 | "OrderType": "SELL"
85 | },
86 | {
87 | "Id": 72820910,
88 | "TimeStamp": "2017-06-10T10:48:08.403",
89 | "Quantity": 0.055392,
90 | "Price": 0.10186381,
91 | "Total": 0.00564244,
92 | "FillType": "FILL",
93 | "OrderType": "SELL"
94 | },
95 | {
96 | "Id": 72820890,
97 | "TimeStamp": "2017-06-10T10:48:04.653",
98 | "Quantity": 0.57167812,
99 | "Price": 0.1019,
100 | "Total": 0.058254,
101 | "FillType": "FILL",
102 | "OrderType": "BUY"
103 | },
104 | {
105 | "Id": 72820815,
106 | "TimeStamp": "2017-06-10T10:47:52.293",
107 | "Quantity": 5.64787601,
108 | "Price": 0.1019,
109 | "Total": 0.57551856,
110 | "FillType": "FILL",
111 | "OrderType": "BUY"
112 | },
113 | {
114 | "Id": 72820792,
115 | "TimeStamp": "2017-06-10T10:47:48.37",
116 | "Quantity": 0.33852719,
117 | "Price": 0.1019,
118 | "Total": 0.03449592,
119 | "FillType": "FILL",
120 | "OrderType": "SELL"
121 | },
122 | {
123 | "Id": 72820786,
124 | "TimeStamp": "2017-06-10T10:47:47.213",
125 | "Quantity": 1.98133203,
126 | "Price": 0.1019,
127 | "Total": 0.20189773,
128 | "FillType": "PARTIAL_FILL",
129 | "OrderType": "SELL"
130 | },
131 | {
132 | "Id": 72820785,
133 | "TimeStamp": "2017-06-10T10:47:47.213",
134 | "Quantity": 4.01866797,
135 | "Price": 0.1019,
136 | "Total": 0.40950226,
137 | "FillType": "FILL",
138 | "OrderType": "SELL"
139 | },
140 | {
141 | "Id": 72820732,
142 | "TimeStamp": "2017-06-10T10:47:32.48",
143 | "Quantity": 0.40060529,
144 | "Price": 0.10199518,
145 | "Total": 0.0408598,
146 | "FillType": "FILL",
147 | "OrderType": "BUY"
148 | },
149 | {
150 | "Id": 72820731,
151 | "TimeStamp": "2017-06-10T10:47:32.48",
152 | "Quantity": 1.93382609,
153 | "Price": 0.101995,
154 | "Total": 0.19724059,
155 | "FillType": "PARTIAL_FILL",
156 | "OrderType": "BUY"
157 | },
158 | {
159 | "Id": 72820663,
160 | "TimeStamp": "2017-06-10T10:47:21.667",
161 | "Quantity": 0.12924996,
162 | "Price": 0.1019,
163 | "Total": 0.01317057,
164 | "FillType": "PARTIAL_FILL",
165 | "OrderType": "SELL"
166 | },
167 | {
168 | "Id": 72820562,
169 | "TimeStamp": "2017-06-10T10:47:14.23",
170 | "Quantity": 0.05391892,
171 | "Price": 0.1019,
172 | "Total": 0.00549433,
173 | "FillType": "PARTIAL_FILL",
174 | "OrderType": "SELL"
175 | },
176 | {
177 | "Id": 72820559,
178 | "TimeStamp": "2017-06-10T10:47:14.01",
179 | "Quantity": 0.49071924,
180 | "Price": 0.10199518,
181 | "Total": 0.05005099,
182 | "FillType": "FILL",
183 | "OrderType": "BUY"
184 | },
185 | {
186 | "Id": 72820548,
187 | "TimeStamp": "2017-06-10T10:47:11.697",
188 | "Quantity": 1,
189 | "Price": 0.10199518,
190 | "Total": 0.10199518,
191 | "FillType": "FILL",
192 | "OrderType": "BUY"
193 | },
194 | {
195 | "Id": 72820545,
196 | "TimeStamp": "2017-06-10T10:47:11.15",
197 | "Quantity": 1.2,
198 | "Price": 0.10199518,
199 | "Total": 0.12239421,
200 | "FillType": "FILL",
201 | "OrderType": "BUY"
202 | },
203 | {
204 | "Id": 72820543,
205 | "TimeStamp": "2017-06-10T10:47:10.493",
206 | "Quantity": 0.800889,
207 | "Price": 0.10199518,
208 | "Total": 0.08168681,
209 | "FillType": "FILL",
210 | "OrderType": "BUY"
211 | },
212 | {
213 | "Id": 72820539,
214 | "TimeStamp": "2017-06-10T10:47:08.993",
215 | "Quantity": 2.37374234,
216 | "Price": 0.1019,
217 | "Total": 0.24188434,
218 | "FillType": "PARTIAL_FILL",
219 | "OrderType": "SELL"
220 | },
221 | {
222 | "Id": 72820513,
223 | "TimeStamp": "2017-06-10T10:47:04.167",
224 | "Quantity": 0.06030851,
225 | "Price": 0.1019,
226 | "Total": 0.00614543,
227 | "FillType": "PARTIAL_FILL",
228 | "OrderType": "SELL"
229 | },
230 | {
231 | "Id": 72820507,
232 | "TimeStamp": "2017-06-10T10:47:03.87",
233 | "Quantity": 0.54596145,
234 | "Price": 0.1019,
235 | "Total": 0.05563347,
236 | "FillType": "PARTIAL_FILL",
237 | "OrderType": "BUY"
238 | },
239 | {
240 | "Id": 72820404,
241 | "TimeStamp": "2017-06-10T10:46:44.883",
242 | "Quantity": 0.14,
243 | "Price": 0.1019,
244 | "Total": 0.014266,
245 | "FillType": "FILL",
246 | "OrderType": "BUY"
247 | },
248 | {
249 | "Id": 72820402,
250 | "TimeStamp": "2017-06-10T10:46:43.883",
251 | "Quantity": 0.43037672,
252 | "Price": 0.1019,
253 | "Total": 0.04385538,
254 | "FillType": "FILL",
255 | "OrderType": "BUY"
256 | },
257 | {
258 | "Id": 72820401,
259 | "TimeStamp": "2017-06-10T10:46:43.883",
260 | "Quantity": 0.48593486,
261 | "Price": 0.10189999,
262 | "Total": 0.04951675,
263 | "FillType": "PARTIAL_FILL",
264 | "OrderType": "BUY"
265 | },
266 | {
267 | "Id": 72820386,
268 | "TimeStamp": "2017-06-10T10:46:40.57",
269 | "Quantity": 0.0049166,
270 | "Price": 0.10189999,
271 | "Total": 0.000501,
272 | "FillType": "FILL",
273 | "OrderType": "BUY"
274 | },
275 | {
276 | "Id": 72820361,
277 | "TimeStamp": "2017-06-10T10:46:35.993",
278 | "Quantity": 0.00366183,
279 | "Price": 0.10199516,
280 | "Total": 0.00037348,
281 | "FillType": "FILL",
282 | "OrderType": "SELL"
283 | },
284 | {
285 | "Id": 72820359,
286 | "TimeStamp": "2017-06-10T10:46:35.853",
287 | "Quantity": 1.00757576,
288 | "Price": 0.10199516,
289 | "Total": 0.10276785,
290 | "FillType": "PARTIAL_FILL",
291 | "OrderType": "BUY"
292 | },
293 | {
294 | "Id": 72820358,
295 | "TimeStamp": "2017-06-10T10:46:35.853",
296 | "Quantity": 4.337396,
297 | "Price": 0.10199516,
298 | "Total": 0.44239339,
299 | "FillType": "PARTIAL_FILL",
300 | "OrderType": "BUY"
301 | },
302 | {
303 | "Id": 72820351,
304 | "TimeStamp": "2017-06-10T10:46:34.383",
305 | "Quantity": 0.01562422,
306 | "Price": 0.10199516,
307 | "Total": 0.00159359,
308 | "FillType": "FILL",
309 | "OrderType": "BUY"
310 | },
311 | {
312 | "Id": 72820350,
313 | "TimeStamp": "2017-06-10T10:46:34.383",
314 | "Quantity": 1.85437578,
315 | "Price": 0.10199516,
316 | "Total": 0.18913735,
317 | "FillType": "PARTIAL_FILL",
318 | "OrderType": "BUY"
319 | },
320 | {
321 | "Id": 72820339,
322 | "TimeStamp": "2017-06-10T10:46:32.37",
323 | "Quantity": 0.00491683,
324 | "Price": 0.1019,
325 | "Total": 0.00050102,
326 | "FillType": "FILL",
327 | "OrderType": "SELL"
328 | },
329 | {
330 | "Id": 72820329,
331 | "TimeStamp": "2017-06-10T10:46:29.57",
332 | "Quantity": 0.49071933,
333 | "Price": 0.10199516,
334 | "Total": 0.05005099,
335 | "FillType": "FILL",
336 | "OrderType": "BUY"
337 | },
338 | {
339 | "Id": 72820298,
340 | "TimeStamp": "2017-06-10T10:46:22.353",
341 | "Quantity": 0.35058458,
342 | "Price": 0.10199516,
343 | "Total": 0.03575793,
344 | "FillType": "FILL",
345 | "OrderType": "BUY"
346 | },
347 | {
348 | "Id": 72820286,
349 | "TimeStamp": "2017-06-10T10:46:19.79",
350 | "Quantity": 0.58931256,
351 | "Price": 0.1019,
352 | "Total": 0.06005094,
353 | "FillType": "FILL",
354 | "OrderType": "SELL"
355 | },
356 | {
357 | "Id": 72820285,
358 | "TimeStamp": "2017-06-10T10:46:19.79",
359 | "Quantity": 16.04161776,
360 | "Price": 0.1019,
361 | "Total": 1.63464084,
362 | "FillType": "FILL",
363 | "OrderType": "SELL"
364 | },
365 | {
366 | "Id": 72820281,
367 | "TimeStamp": "2017-06-10T10:46:17.977",
368 | "Quantity": 11.40424135,
369 | "Price": 0.1019,
370 | "Total": 1.16209219,
371 | "FillType": "PARTIAL_FILL",
372 | "OrderType": "SELL"
373 | },
374 | {
375 | "Id": 72820244,
376 | "TimeStamp": "2017-06-10T10:46:08.4",
377 | "Quantity": 0.15579727,
378 | "Price": 0.10199516,
379 | "Total": 0.01589056,
380 | "FillType": "FILL",
381 | "OrderType": "BUY"
382 | },
383 | {
384 | "Id": 72820214,
385 | "TimeStamp": "2017-06-10T10:45:59.477",
386 | "Quantity": 0.00491326,
387 | "Price": 0.10199518,
388 | "Total": 0.00050112,
389 | "FillType": "FILL",
390 | "OrderType": "SELL"
391 | },
392 | {
393 | "Id": 72820154,
394 | "TimeStamp": "2017-06-10T10:45:45.477",
395 | "Quantity": 1.92115818,
396 | "Price": 0.1019,
397 | "Total": 0.19576601,
398 | "FillType": "PARTIAL_FILL",
399 | "OrderType": "SELL"
400 | },
401 | {
402 | "Id": 72820153,
403 | "TimeStamp": "2017-06-10T10:45:45.477",
404 | "Quantity": 0.42938599,
405 | "Price": 0.10194534,
406 | "Total": 0.0437739,
407 | "FillType": "FILL",
408 | "OrderType": "SELL"
409 | },
410 | {
411 | "Id": 72820152,
412 | "TimeStamp": "2017-06-10T10:45:45.477",
413 | "Quantity": 0.10060698,
414 | "Price": 0.10194899,
415 | "Total": 0.01025677,
416 | "FillType": "FILL",
417 | "OrderType": "SELL"
418 | },
419 | {
420 | "Id": 72820151,
421 | "TimeStamp": "2017-06-10T10:45:45.477",
422 | "Quantity": 0.00639507,
423 | "Price": 0.10197414,
424 | "Total": 0.00065213,
425 | "FillType": "FILL",
426 | "OrderType": "SELL"
427 | },
428 | {
429 | "Id": 72820150,
430 | "TimeStamp": "2017-06-10T10:45:45.477",
431 | "Quantity": 0.00135143,
432 | "Price": 0.1019777,
433 | "Total": 0.00013781,
434 | "FillType": "FILL",
435 | "OrderType": "SELL"
436 | },
437 | {
438 | "Id": 72820128,
439 | "TimeStamp": "2017-06-10T10:45:41.04",
440 | "Quantity": 0.36085644,
441 | "Price": 0.1026023,
442 | "Total": 0.0370247,
443 | "FillType": "FILL",
444 | "OrderType": "BUY"
445 | },
446 | {
447 | "Id": 72819962,
448 | "TimeStamp": "2017-06-10T10:45:21.443",
449 | "Quantity": 0.13379255,
450 | "Price": 0.10260232,
451 | "Total": 0.01372742,
452 | "FillType": "FILL",
453 | "OrderType": "BUY"
454 | },
455 | {
456 | "Id": 72819961,
457 | "TimeStamp": "2017-06-10T10:45:21.443",
458 | "Quantity": 0.11182967,
459 | "Price": 0.10200001,
460 | "Total": 0.01140662,
461 | "FillType": "PARTIAL_FILL",
462 | "OrderType": "BUY"
463 | },
464 | {
465 | "Id": 72819960,
466 | "TimeStamp": "2017-06-10T10:45:21.443",
467 | "Quantity": 0.0995173,
468 | "Price": 0.10200001,
469 | "Total": 0.01015076,
470 | "FillType": "PARTIAL_FILL",
471 | "OrderType": "BUY"
472 | },
473 | {
474 | "Id": 72819959,
475 | "TimeStamp": "2017-06-10T10:45:21.443",
476 | "Quantity": 0.00544506,
477 | "Price": 0.10200001,
478 | "Total": 0.00055539,
479 | "FillType": "PARTIAL_FILL",
480 | "OrderType": "BUY"
481 | },
482 | {
483 | "Id": 72819947,
484 | "TimeStamp": "2017-06-10T10:45:19.867",
485 | "Quantity": 0.09407224,
486 | "Price": 0.10200001,
487 | "Total": 0.00959536,
488 | "FillType": "FILL",
489 | "OrderType": "BUY"
490 | },
491 | {
492 | "Id": 72819946,
493 | "TimeStamp": "2017-06-10T10:45:19.867",
494 | "Quantity": 0.00446696,
495 | "Price": 0.10200001,
496 | "Total": 0.00045562,
497 | "FillType": "PARTIAL_FILL",
498 | "OrderType": "BUY"
499 | },
500 | {
501 | "Id": 72819937,
502 | "TimeStamp": "2017-06-10T10:45:18.193",
503 | "Quantity": 10.05864857,
504 | "Price": 0.1019777,
505 | "Total": 1.02575784,
506 | "FillType": "PARTIAL_FILL",
507 | "OrderType": "SELL"
508 | },
509 | {
510 | "Id": 72819936,
511 | "TimeStamp": "2017-06-10T10:45:18.193",
512 | "Quantity": 0.00135143,
513 | "Price": 0.10199516,
514 | "Total": 0.00013783,
515 | "FillType": "FILL",
516 | "OrderType": "SELL"
517 | },
518 | {
519 | "Id": 72819926,
520 | "TimeStamp": "2017-06-10T10:45:15.803",
521 | "Quantity": 0.01960809,
522 | "Price": 0.10199516,
523 | "Total": 0.00199993,
524 | "FillType": "PARTIAL_FILL",
525 | "OrderType": "SELL"
526 | },
527 | {
528 | "Id": 72819866,
529 | "TimeStamp": "2017-06-10T10:45:05.053",
530 | "Quantity": 0.09109068,
531 | "Price": 0.10200001,
532 | "Total": 0.00929125,
533 | "FillType": "FILL",
534 | "OrderType": "BUY"
535 | },
536 | {
537 | "Id": 72819864,
538 | "TimeStamp": "2017-06-10T10:45:04.787",
539 | "Quantity": 0.00395966,
540 | "Price": 0.10200001,
541 | "Total": 0.00040388,
542 | "FillType": "FILL",
543 | "OrderType": "BUY"
544 | },
545 | {
546 | "Id": 72819863,
547 | "TimeStamp": "2017-06-10T10:45:04.787",
548 | "Quantity": 0.08713102,
549 | "Price": 0.10200001,
550 | "Total": 0.00888736,
551 | "FillType": "PARTIAL_FILL",
552 | "OrderType": "BUY"
553 | },
554 | {
555 | "Id": 72819861,
556 | "TimeStamp": "2017-06-10T10:45:04.473",
557 | "Quantity": 0.01238676,
558 | "Price": 0.10200001,
559 | "Total": 0.00126344,
560 | "FillType": "FILL",
561 | "OrderType": "BUY"
562 | },
563 | {
564 | "Id": 72819860,
565 | "TimeStamp": "2017-06-10T10:45:04.46",
566 | "Quantity": 0.01143162,
567 | "Price": 0.10200001,
568 | "Total": 0.00116602,
569 | "FillType": "PARTIAL_FILL",
570 | "OrderType": "BUY"
571 | },
572 | {
573 | "Id": 72819858,
574 | "TimeStamp": "2017-06-10T10:45:04.24",
575 | "Quantity": 0.08808616,
576 | "Price": 0.10200001,
577 | "Total": 0.00898478,
578 | "FillType": "FILL",
579 | "OrderType": "BUY"
580 | },
581 | {
582 | "Id": 72819857,
583 | "TimeStamp": "2017-06-10T10:45:04.24",
584 | "Quantity": 0.00300452,
585 | "Price": 0.10200001,
586 | "Total": 0.00030646,
587 | "FillType": "PARTIAL_FILL",
588 | "OrderType": "BUY"
589 | },
590 | {
591 | "Id": 72819822,
592 | "TimeStamp": "2017-06-10T10:44:53.117",
593 | "Quantity": 0.01181054,
594 | "Price": 0.102,
595 | "Total": 0.00120467,
596 | "FillType": "FILL",
597 | "OrderType": "SELL"
598 | },
599 | {
600 | "Id": 72819821,
601 | "TimeStamp": "2017-06-10T10:44:53.117",
602 | "Quantity": 3,
603 | "Price": 0.102,
604 | "Total": 0.306,
605 | "FillType": "FILL",
606 | "OrderType": "SELL"
607 | },
608 | {
609 | "Id": 72819820,
610 | "TimeStamp": "2017-06-10T10:44:53.117",
611 | "Quantity": 5.5338937,
612 | "Price": 0.102,
613 | "Total": 0.56445715,
614 | "FillType": "FILL",
615 | "OrderType": "SELL"
616 | },
617 | {
618 | "Id": 72819815,
619 | "TimeStamp": "2017-06-10T10:44:51.49",
620 | "Quantity": 0.09651278,
621 | "Price": 0.10200001,
622 | "Total": 0.0098443,
623 | "FillType": "FILL",
624 | "OrderType": "BUY"
625 | },
626 | {
627 | "Id": 72819814,
628 | "TimeStamp": "2017-06-10T10:44:51.49",
629 | "Quantity": 0.09951778,
630 | "Price": 0.10200001,
631 | "Total": 0.01015081,
632 | "FillType": "PARTIAL_FILL",
633 | "OrderType": "BUY"
634 | },
635 | {
636 | "Id": 72819813,
637 | "TimeStamp": "2017-06-10T10:44:51.49",
638 | "Quantity": 0.09951778,
639 | "Price": 0.10200001,
640 | "Total": 0.01015081,
641 | "FillType": "PARTIAL_FILL",
642 | "OrderType": "BUY"
643 | },
644 | {
645 | "Id": 72819812,
646 | "TimeStamp": "2017-06-10T10:44:51.49",
647 | "Quantity": 0.09951778,
648 | "Price": 0.10200001,
649 | "Total": 0.01015081,
650 | "FillType": "PARTIAL_FILL",
651 | "OrderType": "BUY"
652 | },
653 | {
654 | "Id": 72819811,
655 | "TimeStamp": "2017-06-10T10:44:51.49",
656 | "Quantity": 0.09608638,
657 | "Price": 0.10200001,
658 | "Total": 0.00980081,
659 | "FillType": "PARTIAL_FILL",
660 | "OrderType": "BUY"
661 | },
662 | {
663 | "Id": 72819778,
664 | "TimeStamp": "2017-06-10T10:44:48.1",
665 | "Quantity": 0.0034314,
666 | "Price": 0.10200001,
667 | "Total": 0.00035,
668 | "FillType": "FILL",
669 | "OrderType": "BUY"
670 | },
671 | {
672 | "Id": 72819777,
673 | "TimeStamp": "2017-06-10T10:44:48.1",
674 | "Quantity": 0.00147858,
675 | "Price": 0.10200001,
676 | "Total": 0.00015081,
677 | "FillType": "PARTIAL_FILL",
678 | "OrderType": "BUY"
679 | },
680 | {
681 | "Id": 72819767,
682 | "TimeStamp": "2017-06-10T10:44:46.333",
683 | "Quantity": 0.29855192,
684 | "Price": 0.102,
685 | "Total": 0.03045229,
686 | "FillType": "PARTIAL_FILL",
687 | "OrderType": "SELL"
688 | },
689 | {
690 | "Id": 72819766,
691 | "TimeStamp": "2017-06-10T10:44:45.817",
692 | "Quantity": 29.89713513,
693 | "Price": 0.102,
694 | "Total": 3.04950778,
695 | "FillType": "PARTIAL_FILL",
696 | "OrderType": "SELL"
697 | },
698 | {
699 | "Id": 72819764,
700 | "TimeStamp": "2017-06-10T10:44:44.77",
701 | "Quantity": 0.29855192,
702 | "Price": 0.102,
703 | "Total": 0.03045229,
704 | "FillType": "PARTIAL_FILL",
705 | "OrderType": "SELL"
706 | },
707 | {
708 | "Id": 72819763,
709 | "TimeStamp": "2017-06-10T10:44:44.553",
710 | "Quantity": 0.29855192,
711 | "Price": 0.102,
712 | "Total": 0.03045229,
713 | "FillType": "PARTIAL_FILL",
714 | "OrderType": "SELL"
715 | },
716 | {
717 | "Id": 72819762,
718 | "TimeStamp": "2017-06-10T10:44:44.317",
719 | "Quantity": 0.29855192,
720 | "Price": 0.102,
721 | "Total": 0.03045229,
722 | "FillType": "PARTIAL_FILL",
723 | "OrderType": "SELL"
724 | },
725 | {
726 | "Id": 72819761,
727 | "TimeStamp": "2017-06-10T10:44:44.1",
728 | "Quantity": 0.29855192,
729 | "Price": 0.102,
730 | "Total": 0.03045229,
731 | "FillType": "PARTIAL_FILL",
732 | "OrderType": "SELL"
733 | },
734 | {
735 | "Id": 72819760,
736 | "TimeStamp": "2017-06-10T10:44:43.757",
737 | "Quantity": 0.29855192,
738 | "Price": 0.102,
739 | "Total": 0.03045229,
740 | "FillType": "PARTIAL_FILL",
741 | "OrderType": "SELL"
742 | },
743 | {
744 | "Id": 72819758,
745 | "TimeStamp": "2017-06-10T10:44:43.24",
746 | "Quantity": 0.29855192,
747 | "Price": 0.102,
748 | "Total": 0.03045229,
749 | "FillType": "PARTIAL_FILL",
750 | "OrderType": "SELL"
751 | },
752 | {
753 | "Id": 72819757,
754 | "TimeStamp": "2017-06-10T10:44:43.037",
755 | "Quantity": 0.29855192,
756 | "Price": 0.102,
757 | "Total": 0.03045229,
758 | "FillType": "PARTIAL_FILL",
759 | "OrderType": "SELL"
760 | },
761 | {
762 | "Id": 72819755,
763 | "TimeStamp": "2017-06-10T10:44:42.333",
764 | "Quantity": 0.29855192,
765 | "Price": 0.102,
766 | "Total": 0.03045229,
767 | "FillType": "PARTIAL_FILL",
768 | "OrderType": "SELL"
769 | },
770 | {
771 | "Id": 72819754,
772 | "TimeStamp": "2017-06-10T10:44:42.037",
773 | "Quantity": 0.29855192,
774 | "Price": 0.102,
775 | "Total": 0.03045229,
776 | "FillType": "PARTIAL_FILL",
777 | "OrderType": "SELL"
778 | },
779 | {
780 | "Id": 72819751,
781 | "TimeStamp": "2017-06-10T10:44:41.66",
782 | "Quantity": 0.29855192,
783 | "Price": 0.102,
784 | "Total": 0.03045229,
785 | "FillType": "PARTIAL_FILL",
786 | "OrderType": "SELL"
787 | },
788 | {
789 | "Id": 72819747,
790 | "TimeStamp": "2017-06-10T10:44:40.35",
791 | "Quantity": 0.11205408,
792 | "Price": 0.102,
793 | "Total": 0.01142951,
794 | "FillType": "PARTIAL_FILL",
795 | "OrderType": "SELL"
796 | },
797 | {
798 | "Id": 72819746,
799 | "TimeStamp": "2017-06-10T10:44:40.35",
800 | "Quantity": 0.00490918,
801 | "Price": 0.102,
802 | "Total": 0.00050073,
803 | "FillType": "FILL",
804 | "OrderType": "SELL"
805 | },
806 | {
807 | "Id": 72819745,
808 | "TimeStamp": "2017-06-10T10:44:40.35",
809 | "Quantity": 0.18158866,
810 | "Price": 0.102,
811 | "Total": 0.01852204,
812 | "FillType": "FILL",
813 | "OrderType": "SELL"
814 | },
815 | {
816 | "Id": 72819744,
817 | "TimeStamp": "2017-06-10T10:44:39.943",
818 | "Quantity": 0.11841134,
819 | "Price": 0.102,
820 | "Total": 0.01207795,
821 | "FillType": "PARTIAL_FILL",
822 | "OrderType": "SELL"
823 | },
824 | {
825 | "Id": 72819743,
826 | "TimeStamp": "2017-06-10T10:44:39.943",
827 | "Quantity": 0.18014058,
828 | "Price": 0.102,
829 | "Total": 0.01837433,
830 | "FillType": "FILL",
831 | "OrderType": "SELL"
832 | },
833 | {
834 | "Id": 72819741,
835 | "TimeStamp": "2017-06-10T10:44:39.723",
836 | "Quantity": 0.15288856,
837 | "Price": 0.102,
838 | "Total": 0.01559463,
839 | "FillType": "PARTIAL_FILL",
840 | "OrderType": "SELL"
841 | },
842 | {
843 | "Id": 72819736,
844 | "TimeStamp": "2017-06-10T10:44:39.007",
845 | "Quantity": 0.15288856,
846 | "Price": 0.102,
847 | "Total": 0.01559463,
848 | "FillType": "PARTIAL_FILL",
849 | "OrderType": "SELL"
850 | },
851 | {
852 | "Id": 72819735,
853 | "TimeStamp": "2017-06-10T10:44:38.647",
854 | "Quantity": 0.15288856,
855 | "Price": 0.102,
856 | "Total": 0.01559463,
857 | "FillType": "PARTIAL_FILL",
858 | "OrderType": "SELL"
859 | },
860 | {
861 | "Id": 72819731,
862 | "TimeStamp": "2017-06-10T10:44:38.35",
863 | "Quantity": 0.29855192,
864 | "Price": 0.102,
865 | "Total": 0.03045229,
866 | "FillType": "PARTIAL_FILL",
867 | "OrderType": "SELL"
868 | },
869 | {
870 | "Id": 72819685,
871 | "TimeStamp": "2017-06-10T10:44:33.927",
872 | "Quantity": 0.0980392,
873 | "Price": 0.10200001,
874 | "Total": 0.00999999,
875 | "FillType": "FILL",
876 | "OrderType": "SELL"
877 | },
878 | {
879 | "Id": 72819683,
880 | "TimeStamp": "2017-06-10T10:44:33.6",
881 | "Quantity": 0.00494465,
882 | "Price": 0.10260239,
883 | "Total": 0.00050733,
884 | "FillType": "FILL",
885 | "OrderType": "BUY"
886 | },
887 | {
888 | "Id": 72819658,
889 | "TimeStamp": "2017-06-10T10:44:21.24",
890 | "Quantity": 0.03135133,
891 | "Price": 0.10260241,
892 | "Total": 0.00321672,
893 | "FillType": "FILL",
894 | "OrderType": "BUY"
895 | },
896 | {
897 | "Id": 72819628,
898 | "TimeStamp": "2017-06-10T10:44:07.253",
899 | "Quantity": 0.259,
900 | "Price": 0.102,
901 | "Total": 0.026418,
902 | "FillType": "PARTIAL_FILL",
903 | "OrderType": "SELL"
904 | },
905 | {
906 | "Id": 72819623,
907 | "TimeStamp": "2017-06-10T10:44:04.69",
908 | "Quantity": 0.40054142,
909 | "Price": 0.10260242,
910 | "Total": 0.04109651,
911 | "FillType": "FILL",
912 | "OrderType": "BUY"
913 | },
914 | {
915 | "Id": 72819622,
916 | "TimeStamp": "2017-06-10T10:44:04.69",
917 | "Quantity": 0.00783242,
918 | "Price": 0.10251701,
919 | "Total": 0.00080295,
920 | "FillType": "PARTIAL_FILL",
921 | "OrderType": "BUY"
922 | },
923 | {
924 | "Id": 72819621,
925 | "TimeStamp": "2017-06-10T10:44:04.69",
926 | "Quantity": 1.14603513,
927 | "Price": 0.10204571,
928 | "Total": 0.11694796,
929 | "FillType": "PARTIAL_FILL",
930 | "OrderType": "BUY"
931 | },
932 | {
933 | "Id": 72819620,
934 | "TimeStamp": "2017-06-10T10:44:04.69",
935 | "Quantity": 0.27367894,
936 | "Price": 0.1020457,
937 | "Total": 0.02792775,
938 | "FillType": "PARTIAL_FILL",
939 | "OrderType": "BUY"
940 | },
941 | {
942 | "Id": 72819580,
943 | "TimeStamp": "2017-06-10T10:43:50.533",
944 | "Quantity": 0.0780353,
945 | "Price": 0.102,
946 | "Total": 0.0079596,
947 | "FillType": "PARTIAL_FILL",
948 | "OrderType": "SELL"
949 | },
950 | {
951 | "Id": 72819579,
952 | "TimeStamp": "2017-06-10T10:43:50.533",
953 | "Quantity": 2.06369597,
954 | "Price": 0.102,
955 | "Total": 0.21049698,
956 | "FillType": "FILL",
957 | "OrderType": "SELL"
958 | },
959 | {
960 | "Id": 72819578,
961 | "TimeStamp": "2017-06-10T10:43:50.533",
962 | "Quantity": 3,
963 | "Price": 0.102,
964 | "Total": 0.306,
965 | "FillType": "FILL",
966 | "OrderType": "SELL"
967 | },
968 | {
969 | "Id": 72819577,
970 | "TimeStamp": "2017-06-10T10:43:50.533",
971 | "Quantity": 0.05,
972 | "Price": 0.102,
973 | "Total": 0.0051,
974 | "FillType": "FILL",
975 | "OrderType": "SELL"
976 | },
977 | {
978 | "Id": 72819576,
979 | "TimeStamp": "2017-06-10T10:43:50.533",
980 | "Quantity": 5.1869737,
981 | "Price": 0.102,
982 | "Total": 0.52907131,
983 | "FillType": "FILL",
984 | "OrderType": "SELL"
985 | },
986 | {
987 | "Id": 72819575,
988 | "TimeStamp": "2017-06-10T10:43:50.533",
989 | "Quantity": 1.99123016,
990 | "Price": 0.10204571,
991 | "Total": 0.20319649,
992 | "FillType": "FILL",
993 | "OrderType": "SELL"
994 | },
995 | {
996 | "Id": 72819560,
997 | "TimeStamp": "2017-06-10T10:43:44.317",
998 | "Quantity": 0.14685277,
999 | "Price": 0.10260243,
1000 | "Total": 0.01506745,
1001 | "FillType": "FILL",
1002 | "OrderType": "BUY"
1003 | },
1004 | {
1005 | "Id": 72819559,
1006 | "TimeStamp": "2017-06-10T10:43:44.317",
1007 | "Quantity": 0.21083686,
1008 | "Price": 0.10219382,
1009 | "Total": 0.02154622,
1010 | "FillType": "PARTIAL_FILL",
1011 | "OrderType": "BUY"
1012 | },
1013 | {
1014 | "Id": 72819554,
1015 | "TimeStamp": "2017-06-10T10:43:42.987",
1016 | "Quantity": 12.8130263,
1017 | "Price": 0.102,
1018 | "Total": 1.30692868,
1019 | "FillType": "PARTIAL_FILL",
1020 | "OrderType": "SELL"
1021 | },
1022 | {
1023 | "Id": 72819553,
1024 | "TimeStamp": "2017-06-10T10:43:42.987",
1025 | "Quantity": 0.00568908,
1026 | "Price": 0.102,
1027 | "Total": 0.00058028,
1028 | "FillType": "FILL",
1029 | "OrderType": "SELL"
1030 | },
1031 | {
1032 | "Id": 72819552,
1033 | "TimeStamp": "2017-06-10T10:43:42.987",
1034 | "Quantity": 2.12748665,
1035 | "Price": 0.10200001,
1036 | "Total": 0.21700365,
1037 | "FillType": "FILL",
1038 | "OrderType": "SELL"
1039 | },
1040 | {
1041 | "Id": 72819551,
1042 | "TimeStamp": "2017-06-10T10:43:42.987",
1043 | "Quantity": 0.01511273,
1044 | "Price": 0.10200002,
1045 | "Total": 0.00154149,
1046 | "FillType": "FILL",
1047 | "OrderType": "SELL"
1048 | },
1049 | {
1050 | "Id": 72819550,
1051 | "TimeStamp": "2017-06-10T10:43:42.987",
1052 | "Quantity": 0.00491234,
1053 | "Price": 0.10200002,
1054 | "Total": 0.00050105,
1055 | "FillType": "FILL",
1056 | "OrderType": "SELL"
1057 | },
1058 | {
1059 | "Id": 72819537,
1060 | "TimeStamp": "2017-06-10T10:43:37.067",
1061 | "Quantity": 0.2860041,
1062 | "Price": 0.10219382,
1063 | "Total": 0.02922785,
1064 | "FillType": "FILL",
1065 | "OrderType": "BUY"
1066 | },
1067 | {
1068 | "Id": 72819519,
1069 | "TimeStamp": "2017-06-10T10:43:27.317",
1070 | "Quantity": 1.54050955,
1071 | "Price": 0.10260243,
1072 | "Total": 0.15806002,
1073 | "FillType": "FILL",
1074 | "OrderType": "BUY"
1075 | },
1076 | {
1077 | "Id": 72819518,
1078 | "TimeStamp": "2017-06-10T10:43:27.317",
1079 | "Quantity": 0.01506172,
1080 | "Price": 0.10260242,
1081 | "Total": 0.00154536,
1082 | "FillType": "PARTIAL_FILL",
1083 | "OrderType": "BUY"
1084 | },
1085 | {
1086 | "Id": 72819517,
1087 | "TimeStamp": "2017-06-10T10:43:27.317",
1088 | "Quantity": 0.05954074,
1089 | "Price": 0.10251008,
1090 | "Total": 0.00610352,
1091 | "FillType": "PARTIAL_FILL",
1092 | "OrderType": "BUY"
1093 | },
1094 | {
1095 | "Id": 72819516,
1096 | "TimeStamp": "2017-06-10T10:43:27.317",
1097 | "Quantity": 4.82188303,
1098 | "Price": 0.10245765,
1099 | "Total": 0.4940388,
1100 | "FillType": "PARTIAL_FILL",
1101 | "OrderType": "BUY"
1102 | },
1103 | {
1104 | "Id": 72819514,
1105 | "TimeStamp": "2017-06-10T10:43:23.58",
1106 | "Quantity": 17.94946301,
1107 | "Price": 0.10200001,
1108 | "Total": 1.8308454,
1109 | "FillType": "PARTIAL_FILL",
1110 | "OrderType": "SELL"
1111 | },
1112 | {
1113 | "Id": 72819513,
1114 | "TimeStamp": "2017-06-10T10:43:23.58",
1115 | "Quantity": 2.42342474,
1116 | "Price": 0.10200008,
1117 | "Total": 0.24718951,
1118 | "FillType": "FILL",
1119 | "OrderType": "SELL"
1120 | },
1121 | {
1122 | "Id": 72819512,
1123 | "TimeStamp": "2017-06-10T10:43:23.58",
1124 | "Quantity": 0.106,
1125 | "Price": 0.10203516,
1126 | "Total": 0.01081572,
1127 | "FillType": "FILL",
1128 | "OrderType": "SELL"
1129 | },
1130 | {
1131 | "Id": 72819511,
1132 | "TimeStamp": "2017-06-10T10:43:23.58",
1133 | "Quantity": 0.00842917,
1134 | "Price": 0.10203657,
1135 | "Total": 0.00086008,
1136 | "FillType": "FILL",
1137 | "OrderType": "SELL"
1138 | },
1139 | {
1140 | "Id": 72819510,
1141 | "TimeStamp": "2017-06-10T10:43:23.58",
1142 | "Quantity": 0.01307539,
1143 | "Price": 0.10206197,
1144 | "Total": 0.0013345,
1145 | "FillType": "FILL",
1146 | "OrderType": "SELL"
1147 | },
1148 | {
1149 | "Id": 72819509,
1150 | "TimeStamp": "2017-06-10T10:43:23.58",
1151 | "Quantity": 0.01485395,
1152 | "Price": 0.10206353,
1153 | "Total": 0.00151604,
1154 | "FillType": "FILL",
1155 | "OrderType": "SELL"
1156 | },
1157 | {
1158 | "Id": 72819508,
1159 | "TimeStamp": "2017-06-10T10:43:23.58",
1160 | "Quantity": 0.2170183,
1161 | "Price": 0.10208725,
1162 | "Total": 0.0221548,
1163 | "FillType": "FILL",
1164 | "OrderType": "SELL"
1165 | },
1166 | {
1167 | "Id": 72819507,
1168 | "TimeStamp": "2017-06-10T10:43:23.58",
1169 | "Quantity": 1,
1170 | "Price": 0.1021,
1171 | "Total": 0.1021,
1172 | "FillType": "FILL",
1173 | "OrderType": "SELL"
1174 | },
1175 | {
1176 | "Id": 72819506,
1177 | "TimeStamp": "2017-06-10T10:43:23.58",
1178 | "Quantity": 0.14270509,
1179 | "Price": 0.10210481,
1180 | "Total": 0.01457087,
1181 | "FillType": "FILL",
1182 | "OrderType": "SELL"
1183 | },
1184 | {
1185 | "Id": 72819505,
1186 | "TimeStamp": "2017-06-10T10:43:23.58",
1187 | "Quantity": 0.16556548,
1188 | "Price": 0.10211259,
1189 | "Total": 0.01690631,
1190 | "FillType": "FILL",
1191 | "OrderType": "SELL"
1192 | },
1193 | {
1194 | "Id": 72819460,
1195 | "TimeStamp": "2017-06-10T10:43:17.69",
1196 | "Quantity": 0.49616972,
1197 | "Price": 0.10212564,
1198 | "Total": 0.05067165,
1199 | "FillType": "FILL",
1200 | "OrderType": "SELL"
1201 | },
1202 | {
1203 | "Id": 72819459,
1204 | "TimeStamp": "2017-06-10T10:43:17.69",
1205 | "Quantity": 0.0131636,
1206 | "Price": 0.10218086,
1207 | "Total": 0.00134506,
1208 | "FillType": "FILL",
1209 | "OrderType": "SELL"
1210 | },
1211 | {
1212 | "Id": 72819458,
1213 | "TimeStamp": "2017-06-10T10:43:17.69",
1214 | "Quantity": 0.050137,
1215 | "Price": 0.10219382,
1216 | "Total": 0.00512369,
1217 | "FillType": "FILL",
1218 | "OrderType": "SELL"
1219 | },
1220 | {
1221 | "Id": 72819435,
1222 | "TimeStamp": "2017-06-10T10:43:11.893",
1223 | "Quantity": 0.015931,
1224 | "Price": 0.10220431,
1225 | "Total": 0.00162821,
1226 | "FillType": "FILL",
1227 | "OrderType": "SELL"
1228 | },
1229 | {
1230 | "Id": 72819434,
1231 | "TimeStamp": "2017-06-10T10:43:11.893",
1232 | "Quantity": 0.4949626,
1233 | "Price": 0.10223437,
1234 | "Total": 0.05060218,
1235 | "FillType": "FILL",
1236 | "OrderType": "SELL"
1237 | },
1238 | {
1239 | "Id": 72819433,
1240 | "TimeStamp": "2017-06-10T10:43:11.893",
1241 | "Quantity": 0.21023051,
1242 | "Price": 0.10223773,
1243 | "Total": 0.02149349,
1244 | "FillType": "FILL",
1245 | "OrderType": "SELL"
1246 | },
1247 | {
1248 | "Id": 72819432,
1249 | "TimeStamp": "2017-06-10T10:43:11.893",
1250 | "Quantity": 0.02893384,
1251 | "Price": 0.10226012,
1252 | "Total": 0.00295877,
1253 | "FillType": "FILL",
1254 | "OrderType": "SELL"
1255 | },
1256 | {
1257 | "Id": 72819431,
1258 | "TimeStamp": "2017-06-10T10:43:11.893",
1259 | "Quantity": 0.08,
1260 | "Price": 0.10234571,
1261 | "Total": 0.00818765,
1262 | "FillType": "FILL",
1263 | "OrderType": "SELL"
1264 | },
1265 | {
1266 | "Id": 72819419,
1267 | "TimeStamp": "2017-06-10T10:43:07.36",
1268 | "Quantity": 0.17286413,
1269 | "Price": 0.10260243,
1270 | "Total": 0.01773627,
1271 | "FillType": "FILL",
1272 | "OrderType": "BUY"
1273 | },
1274 | {
1275 | "Id": 72819413,
1276 | "TimeStamp": "2017-06-10T10:43:05.813",
1277 | "Quantity": 0.34989389,
1278 | "Price": 0.10260243,
1279 | "Total": 0.03589996,
1280 | "FillType": "FILL",
1281 | "OrderType": "BUY"
1282 | },
1283 | {
1284 | "Id": 72819410,
1285 | "TimeStamp": "2017-06-10T10:43:05.08",
1286 | "Quantity": 0.03447534,
1287 | "Price": 0.10226012,
1288 | "Total": 0.00352545,
1289 | "FillType": "PARTIAL_FILL",
1290 | "OrderType": "SELL"
1291 | },
1292 | {
1293 | "Id": 72819409,
1294 | "TimeStamp": "2017-06-10T10:43:05.08",
1295 | "Quantity": 0.407571,
1296 | "Price": 0.10228744,
1297 | "Total": 0.04168939,
1298 | "FillType": "FILL",
1299 | "OrderType": "SELL"
1300 | },
1301 | {
1302 | "Id": 72819408,
1303 | "TimeStamp": "2017-06-10T10:43:05.08",
1304 | "Quantity": 0.06304728,
1305 | "Price": 0.10228745,
1306 | "Total": 0.00644894,
1307 | "FillType": "FILL",
1308 | "OrderType": "SELL"
1309 | },
1310 | {
1311 | "Id": 72819407,
1312 | "TimeStamp": "2017-06-10T10:43:05.08",
1313 | "Quantity": 3.47690238,
1314 | "Price": 0.10249765,
1315 | "Total": 0.35637432,
1316 | "FillType": "FILL",
1317 | "OrderType": "SELL"
1318 | },
1319 | {
1320 | "Id": 72819401,
1321 | "TimeStamp": "2017-06-10T10:43:04.423",
1322 | "Quantity": 0.3242125,
1323 | "Price": 0.10249765,
1324 | "Total": 0.03323101,
1325 | "FillType": "PARTIAL_FILL",
1326 | "OrderType": "SELL"
1327 | },
1328 | {
1329 | "Id": 72819400,
1330 | "TimeStamp": "2017-06-10T10:43:04.41",
1331 | "Quantity": 0.9150085,
1332 | "Price": 0.10260242,
1333 | "Total": 0.09388208,
1334 | "FillType": "FILL",
1335 | "OrderType": "SELL"
1336 | },
1337 | {
1338 | "Id": 72819398,
1339 | "TimeStamp": "2017-06-10T10:43:03.957",
1340 | "Quantity": 0.45,
1341 | "Price": 0.10249765,
1342 | "Total": 0.04612394,
1343 | "FillType": "PARTIAL_FILL",
1344 | "OrderType": "SELL"
1345 | },
1346 | {
1347 | "Id": 72819388,
1348 | "TimeStamp": "2017-06-10T10:43:02.673",
1349 | "Quantity": 0.00946967,
1350 | "Price": 0.10249765,
1351 | "Total": 0.00097061,
1352 | "FillType": "PARTIAL_FILL",
1353 | "OrderType": "BUY"
1354 | },
1355 | {
1356 | "Id": 72819368,
1357 | "TimeStamp": "2017-06-10T10:43:00.813",
1358 | "Quantity": 0.00580322,
1359 | "Price": 0.10228745,
1360 | "Total": 0.00059359,
1361 | "FillType": "PARTIAL_FILL",
1362 | "OrderType": "SELL"
1363 | },
1364 | {
1365 | "Id": 72819367,
1366 | "TimeStamp": "2017-06-10T10:43:00.813",
1367 | "Quantity": 0.1804467,
1368 | "Price": 0.10228745,
1369 | "Total": 0.01845743,
1370 | "FillType": "FILL",
1371 | "OrderType": "SELL"
1372 | },
1373 | {
1374 | "Id": 72819366,
1375 | "TimeStamp": "2017-06-10T10:43:00.813",
1376 | "Quantity": 0.06187908,
1377 | "Price": 0.10229725,
1378 | "Total": 0.00633005,
1379 | "FillType": "FILL",
1380 | "OrderType": "SELL"
1381 | },
1382 | {
1383 | "Id": 72819365,
1384 | "TimeStamp": "2017-06-10T10:43:00.813",
1385 | "Quantity": 0.00803918,
1386 | "Price": 0.10234571,
1387 | "Total": 0.00082277,
1388 | "FillType": "FILL",
1389 | "OrderType": "SELL"
1390 | },
1391 | {
1392 | "Id": 72819344,
1393 | "TimeStamp": "2017-06-10T10:42:57.97",
1394 | "Quantity": 2,
1395 | "Price": 0.10236703,
1396 | "Total": 0.20473406,
1397 | "FillType": "FILL",
1398 | "OrderType": "SELL"
1399 | },
1400 | {
1401 | "Id": 72819343,
1402 | "TimeStamp": "2017-06-10T10:42:57.97",
1403 | "Quantity": 0.00926901,
1404 | "Price": 0.10236703,
1405 | "Total": 0.00094884,
1406 | "FillType": "FILL",
1407 | "OrderType": "SELL"
1408 | },
1409 | {
1410 | "Id": 72819342,
1411 | "TimeStamp": "2017-06-10T10:42:57.97",
1412 | "Quantity": 0.00946967,
1413 | "Price": 0.10249765,
1414 | "Total": 0.00097061,
1415 | "FillType": "FILL",
1416 | "OrderType": "SELL"
1417 | },
1418 | {
1419 | "Id": 72819341,
1420 | "TimeStamp": "2017-06-10T10:42:57.893",
1421 | "Quantity": 0.68053904,
1422 | "Price": 0.10260242,
1423 | "Total": 0.06982495,
1424 | "FillType": "FILL",
1425 | "OrderType": "BUY"
1426 | },
1427 | {
1428 | "Id": 72819144,
1429 | "TimeStamp": "2017-06-10T10:42:19.407",
1430 | "Quantity": 0.01536868,
1431 | "Price": 0.1025,
1432 | "Total": 0.00157528,
1433 | "FillType": "PARTIAL_FILL",
1434 | "OrderType": "SELL"
1435 | },
1436 | {
1437 | "Id": 72819035,
1438 | "TimeStamp": "2017-06-10T10:42:08.987",
1439 | "Quantity": 2.7214189,
1440 | "Price": 0.10230241,
1441 | "Total": 0.27840771,
1442 | "FillType": "FILL",
1443 | "OrderType": "SELL"
1444 | },
1445 | {
1446 | "Id": 72819028,
1447 | "TimeStamp": "2017-06-10T10:42:07.78",
1448 | "Quantity": 1.09080819,
1449 | "Price": 0.10230241,
1450 | "Total": 0.1115923,
1451 | "FillType": "PARTIAL_FILL",
1452 | "OrderType": "SELL"
1453 | },
1454 | {
1455 | "Id": 72819027,
1456 | "TimeStamp": "2017-06-10T10:42:07.78",
1457 | "Quantity": 0.0975599,
1458 | "Price": 0.10236247,
1459 | "Total": 0.00998647,
1460 | "FillType": "FILL",
1461 | "OrderType": "SELL"
1462 | },
1463 | {
1464 | "Id": 72819026,
1465 | "TimeStamp": "2017-06-10T10:42:07.78",
1466 | "Quantity": 0.01007604,
1467 | "Price": 0.10237504,
1468 | "Total": 0.00103153,
1469 | "FillType": "FILL",
1470 | "OrderType": "SELL"
1471 | },
1472 | {
1473 | "Id": 72819025,
1474 | "TimeStamp": "2017-06-10T10:42:07.78",
1475 | "Quantity": 0.1,
1476 | "Price": 0.10237875,
1477 | "Total": 0.01023787,
1478 | "FillType": "FILL",
1479 | "OrderType": "SELL"
1480 | },
1481 | {
1482 | "Id": 72819024,
1483 | "TimeStamp": "2017-06-10T10:42:07.78",
1484 | "Quantity": 0.1,
1485 | "Price": 0.10238344,
1486 | "Total": 0.01023834,
1487 | "FillType": "FILL",
1488 | "OrderType": "SELL"
1489 | },
1490 | {
1491 | "Id": 72819023,
1492 | "TimeStamp": "2017-06-10T10:42:07.78",
1493 | "Quantity": 0.0111033,
1494 | "Price": 0.10248076,
1495 | "Total": 0.00113787,
1496 | "FillType": "FILL",
1497 | "OrderType": "SELL"
1498 | },
1499 | {
1500 | "Id": 72819022,
1501 | "TimeStamp": "2017-06-10T10:42:07.78",
1502 | "Quantity": 0.00488747,
1503 | "Price": 0.1025,
1504 | "Total": 0.00050096,
1505 | "FillType": "FILL",
1506 | "OrderType": "SELL"
1507 | },
1508 | {
1509 | "Id": 72819021,
1510 | "TimeStamp": "2017-06-10T10:42:07.78",
1511 | "Quantity": 0.025,
1512 | "Price": 0.1025,
1513 | "Total": 0.0025625,
1514 | "FillType": "FILL",
1515 | "OrderType": "SELL"
1516 | },
1517 | {
1518 | "Id": 72818836,
1519 | "TimeStamp": "2017-06-10T10:41:19.81",
1520 | "Quantity": 2.41875454,
1521 | "Price": 0.10288396,
1522 | "Total": 0.24885104,
1523 | "FillType": "FILL",
1524 | "OrderType": "BUY"
1525 | },
1526 | {
1527 | "Id": 72818835,
1528 | "TimeStamp": "2017-06-10T10:41:19.81",
1529 | "Quantity": 0.97799501,
1530 | "Price": 0.10288392,
1531 | "Total": 0.10061996,
1532 | "FillType": "PARTIAL_FILL",
1533 | "OrderType": "BUY"
1534 | },
1535 | {
1536 | "Id": 72818831,
1537 | "TimeStamp": "2017-06-10T10:41:17.937",
1538 | "Quantity": 0.00494465,
1539 | "Price": 0.10288394,
1540 | "Total": 0.00050872,
1541 | "FillType": "FILL",
1542 | "OrderType": "BUY"
1543 | },
1544 | {
1545 | "Id": 72818779,
1546 | "TimeStamp": "2017-06-10T10:41:06.797",
1547 | "Quantity": 0.14048826,
1548 | "Price": 0.10288398,
1549 | "Total": 0.01445399,
1550 | "FillType": "FILL",
1551 | "OrderType": "BUY"
1552 | },
1553 | {
1554 | "Id": 72818750,
1555 | "TimeStamp": "2017-06-10T10:41:01.407",
1556 | "Quantity": 0.0048916,
1557 | "Price": 0.1026025,
1558 | "Total": 0.00050189,
1559 | "FillType": "FILL",
1560 | "OrderType": "SELL"
1561 | },
1562 | {
1563 | "Id": 72818749,
1564 | "TimeStamp": "2017-06-10T10:41:01.407",
1565 | "Quantity": 1,
1566 | "Price": 0.1026025,
1567 | "Total": 0.1026025,
1568 | "FillType": "FILL",
1569 | "OrderType": "SELL"
1570 | },
1571 | {
1572 | "Id": 72818748,
1573 | "TimeStamp": "2017-06-10T10:41:01.407",
1574 | "Quantity": 0.2019343,
1575 | "Price": 0.1026025,
1576 | "Total": 0.02071896,
1577 | "FillType": "FILL",
1578 | "OrderType": "SELL"
1579 | },
1580 | {
1581 | "Id": 72818742,
1582 | "TimeStamp": "2017-06-10T10:41:00.56",
1583 | "Quantity": 0.04390979,
1584 | "Price": 0.10288398,
1585 | "Total": 0.00451761,
1586 | "FillType": "FILL",
1587 | "OrderType": "BUY"
1588 | },
1589 | {
1590 | "Id": 72818740,
1591 | "TimeStamp": "2017-06-10T10:41:00.06",
1592 | "Quantity": 0.04390978,
1593 | "Price": 0.102884,
1594 | "Total": 0.00451761,
1595 | "FillType": "FILL",
1596 | "OrderType": "BUY"
1597 | },
1598 | {
1599 | "Id": 72818720,
1600 | "TimeStamp": "2017-06-10T10:40:55.547",
1601 | "Quantity": 0.015,
1602 | "Price": 0.1026025,
1603 | "Total": 0.00153903,
1604 | "FillType": "PARTIAL_FILL",
1605 | "OrderType": "SELL"
1606 | },
1607 | {
1608 | "Id": 72818633,
1609 | "TimeStamp": "2017-06-10T10:40:26.03",
1610 | "Quantity": 1,
1611 | "Price": 0.1026025,
1612 | "Total": 0.1026025,
1613 | "FillType": "PARTIAL_FILL",
1614 | "OrderType": "SELL"
1615 | },
1616 | {
1617 | "Id": 72818624,
1618 | "TimeStamp": "2017-06-10T10:40:24.42",
1619 | "Quantity": 0.596334,
1620 | "Price": 0.10288445,
1621 | "Total": 0.06135349,
1622 | "FillType": "FILL",
1623 | "OrderType": "BUY"
1624 | },
1625 | {
1626 | "Id": 72818509,
1627 | "TimeStamp": "2017-06-10T10:40:13.64",
1628 | "Quantity": 0.02067454,
1629 | "Price": 0.10288447,
1630 | "Total": 0.00212708,
1631 | "FillType": "FILL",
1632 | "OrderType": "SELL"
1633 | },
1634 | {
1635 | "Id": 72818507,
1636 | "TimeStamp": "2017-06-10T10:40:12.92",
1637 | "Quantity": 0.97932546,
1638 | "Price": 0.10288447,
1639 | "Total": 0.10075738,
1640 | "FillType": "PARTIAL_FILL",
1641 | "OrderType": "BUY"
1642 | },
1643 | {
1644 | "Id": 72818503,
1645 | "TimeStamp": "2017-06-10T10:40:12.7",
1646 | "Quantity": 0.2980657,
1647 | "Price": 0.1026025,
1648 | "Total": 0.03058228,
1649 | "FillType": "PARTIAL_FILL",
1650 | "OrderType": "SELL"
1651 | },
1652 | {
1653 | "Id": 72818465,
1654 | "TimeStamp": "2017-06-10T10:39:59.467",
1655 | "Quantity": 0.95599029,
1656 | "Price": 0.10250025,
1657 | "Total": 0.09798924,
1658 | "FillType": "FILL",
1659 | "OrderType": "SELL"
1660 | },
1661 | {
1662 | "Id": 72818344,
1663 | "TimeStamp": "2017-06-10T10:39:49.67",
1664 | "Quantity": 1.84440932,
1665 | "Price": 0.10250026,
1666 | "Total": 0.18905243,
1667 | "FillType": "FILL",
1668 | "OrderType": "SELL"
1669 | },
1670 | {
1671 | "Id": 72818306,
1672 | "TimeStamp": "2017-06-10T10:39:40.967",
1673 | "Quantity": 0.02586439,
1674 | "Price": 0.10288452,
1675 | "Total": 0.00266104,
1676 | "FillType": "FILL",
1677 | "OrderType": "BUY"
1678 | },
1679 | {
1680 | "Id": 72818302,
1681 | "TimeStamp": "2017-06-10T10:39:40.42",
1682 | "Quantity": 0.02592921,
1683 | "Price": 0.10288454,
1684 | "Total": 0.00266771,
1685 | "FillType": "FILL",
1686 | "OrderType": "SELL"
1687 | },
1688 | {
1689 | "Id": 72818301,
1690 | "TimeStamp": "2017-06-10T10:39:40.42",
1691 | "Quantity": 0.02592921,
1692 | "Price": 0.10288454,
1693 | "Total": 0.00266771,
1694 | "FillType": "FILL",
1695 | "OrderType": "SELL"
1696 | },
1697 | {
1698 | "Id": 72818298,
1699 | "TimeStamp": "2017-06-10T10:39:39.56",
1700 | "Quantity": 4.77313487,
1701 | "Price": 0.10250026,
1702 | "Total": 0.48924756,
1703 | "FillType": "PARTIAL_FILL",
1704 | "OrderType": "SELL"
1705 | },
1706 | {
1707 | "Id": 72818297,
1708 | "TimeStamp": "2017-06-10T10:39:39.543",
1709 | "Quantity": 0.00683479,
1710 | "Price": 0.10251776,
1711 | "Total": 0.00070068,
1712 | "FillType": "FILL",
1713 | "OrderType": "SELL"
1714 | },
1715 | {
1716 | "Id": 72818296,
1717 | "TimeStamp": "2017-06-10T10:39:39.543",
1718 | "Quantity": 0.0061167,
1719 | "Price": 0.10252672,
1720 | "Total": 0.00062712,
1721 | "FillType": "FILL",
1722 | "OrderType": "SELL"
1723 | },
1724 | {
1725 | "Id": 72818295,
1726 | "TimeStamp": "2017-06-10T10:39:39.543",
1727 | "Quantity": 0.0848183,
1728 | "Price": 0.10253075,
1729 | "Total": 0.00869648,
1730 | "FillType": "FILL",
1731 | "OrderType": "SELL"
1732 | },
1733 | {
1734 | "Id": 72818294,
1735 | "TimeStamp": "2017-06-10T10:39:39.543",
1736 | "Quantity": 0.0053639,
1737 | "Price": 0.10253731,
1738 | "Total": 0.00054999,
1739 | "FillType": "FILL",
1740 | "OrderType": "SELL"
1741 | },
1742 | {
1743 | "Id": 72818293,
1744 | "TimeStamp": "2017-06-10T10:39:39.543",
1745 | "Quantity": 0.44092427,
1746 | "Price": 0.10255,
1747 | "Total": 0.04521678,
1748 | "FillType": "FILL",
1749 | "OrderType": "SELL"
1750 | },
1751 | {
1752 | "Id": 72818292,
1753 | "TimeStamp": "2017-06-10T10:39:39.543",
1754 | "Quantity": 0.15909235,
1755 | "Price": 0.10255,
1756 | "Total": 0.01631492,
1757 | "FillType": "FILL",
1758 | "OrderType": "SELL"
1759 | },
1760 | {
1761 | "Id": 72818291,
1762 | "TimeStamp": "2017-06-10T10:39:39.543",
1763 | "Quantity": 4.3769197,
1764 | "Price": 0.102555,
1765 | "Total": 0.44887499,
1766 | "FillType": "FILL",
1767 | "OrderType": "SELL"
1768 | },
1769 | {
1770 | "Id": 72818290,
1771 | "TimeStamp": "2017-06-10T10:39:39.543",
1772 | "Quantity": 0.01651201,
1773 | "Price": 0.1025567,
1774 | "Total": 0.00169341,
1775 | "FillType": "FILL",
1776 | "OrderType": "SELL"
1777 | },
1778 | {
1779 | "Id": 72818289,
1780 | "TimeStamp": "2017-06-10T10:39:39.543",
1781 | "Quantity": 0.1,
1782 | "Price": 0.10257864,
1783 | "Total": 0.01025786,
1784 | "FillType": "FILL",
1785 | "OrderType": "SELL"
1786 | },
1787 | {
1788 | "Id": 72818288,
1789 | "TimeStamp": "2017-06-10T10:39:39.543",
1790 | "Quantity": 0.09722219,
1791 | "Price": 0.10260003,
1792 | "Total": 0.00997499,
1793 | "FillType": "FILL",
1794 | "OrderType": "SELL"
1795 | },
1796 | {
1797 | "Id": 72818287,
1798 | "TimeStamp": "2017-06-10T10:39:39.543",
1799 | "Quantity": 0.01800128,
1800 | "Price": 0.10260492,
1801 | "Total": 0.00184701,
1802 | "FillType": "FILL",
1803 | "OrderType": "SELL"
1804 | }
1805 | ]
1806 | }
--------------------------------------------------------------------------------
/src/test/resources/publicapi/getmarketsummary.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": [
5 | {
6 | "MarketName": "BTC-ETH",
7 | "High": 0.1045651,
8 | "Low": 0.09273596,
9 | "Volume": 65286.93974209,
10 | "Last": 0.1026025,
11 | "BaseVolume": 6449.37522068,
12 | "TimeStamp": "2017-06-10T10:40:56.147",
13 | "Bid": 0.1026025,
14 | "Ask": 0.102884,
15 | "OpenBuyOrders": 4208,
16 | "OpenSellOrders": 2351,
17 | "PrevDay": 0.094,
18 | "Created": "2015-08-14T09:02:24.817"
19 | }
20 | ]
21 | }
--------------------------------------------------------------------------------
/src/test/resources/publicapi/getticker.json:
--------------------------------------------------------------------------------
1 | {
2 | "success": true,
3 | "message": "",
4 | "result": {
5 | "Bid": 0.10260982,
6 | "Ask": 0.10268089,
7 | "Last": 0.10266399
8 | }
9 | }
--------------------------------------------------------------------------------