Skip to content

Latest commit

 

History

History
574 lines (376 loc) · 18.9 KB

CHANGELOG.adoc

File metadata and controls

574 lines (376 loc) · 18.9 KB

OmniJ Changes

A mid-level view of the changes in each OmniJ binary release.

v0.5.14-SNAPSHOT

Released: in development

v0.5.13

Released: 2020.08.10

omnij-jsonrpc

  • Workaround for bitcoinj compareTo() issue where some addresses were missing from the SortedMap returned by omniGetAllBalancesForId

  • Added omniGetAllBalancesForIdAsList to return a List instead of a SortedMap

  • Fixes to how frozen is included in total balances

omnij-netapi

  • Fixes to how frozen is read from Omniwallet API

All modules

  • Add support for publishing JARs (and SNAPSHOT JARs) to Github Packages

  • JavaDoc cleanup and improvements

  • Project "site" (including JavaDoc) can now be published to Github Pages

v0.5.12

Released: 2020.08.04

omnij-core

  • Make toString() abstract in OmniValue and implement in subclasses

  • Add toPlainString() method

  • Add toFormattedString method

  • OmniDivisibleValue.bigDecimalValue() use movePointLeft rather than divide

  • OmniDivisibleValue.of(BigDecimal) use movePointRight rather than multiply

  • Fix bug in OmniValue.equals() that would identify OmniDivisibleValue and OmniIndivisibleValue of the same number of willetts "equal" (Object equality)

omnij-dsl

  • Use .longValueExact() for Number.getDivisible()

  • Remove unneeded/unused/incorrect .equals() on Number

omnij-netapi

  • Add constants for https://api.omniexplorer.info and https://api.omniwallet.org

  • Improved Omniwallet client support for Bitcoin Testnet

    • NetworkParameters defaults to null in OmniwalletAbstractClient

    • Ability to set NetworkParameters in the constructor

  • Add support for returning frozen balances in verifyAddresses() and getConsensusForCurrency()

  • OmniCoreClient — update to new ConsensusFetcher, make more async

  • Omniwallet*Client — update to new ConsensusFetcher, make more async

omnij-rest-client

  • see omnij-netapi

omnij-rest-client-mjdk

  • see omnij-netapi

omnij-jsonrpc

  • Add BalanceEntry.totalBalance static method.

  • OmniValueSerializer use OmniValue::toJsonFormattedString.

  • Change OmniValueSerializerSpec to require a decimal point for divisible currencies

omnij-rpc (Integration Test support)

  • RegTest/Integation now Require JDK11+

  • Omniwallet Integration test/consensus tools use OmniwalletModernJDKClient

  • Drop openjdk8 job from TravisCI

  • Deprecate OmniwalletConsensusFetcher

  • Deprecate ExplorerConsensusTool (was OmniChest, Explorer and Omniwallet now have the same API)

  • Remove obsolete OmniChest/OmniExplorer tests

  • Refactor ConsensusTool/OmniWalletConsensusTool from Groovy to Java

  • Rework ConsensusFetcher interface

    • Focus on Async (remote some synch calls, add more async calls)

    • default methods some synchronous calls (so subclasses don’t have to implement)

    • default methods to compose getBeforeheight-getConsensus-getAfterheight-retry

  • semi-deprecate DBConsensusTool by making it abstract

  • further deprecate ExplorerConsensusTool by making it abstract

  • further deprecate OmniwalletConesnsusTool by making it abstract

  • Move save, print, and output methods from ConsensusTool to ConsensusToolOutput

  • MultiPropertyComparison - use CompletableFuture and “combine” to fetch property lists and consensus data from both servers in parallel

omnij-cli

  • Add Graal native-image build of ConsensusCLI tool (omnij-consensus-tool)

  • Add manual page for omnij-consensus-tool.

  • Consensus tool can now fetch and display or save data from Omniwallet server URLs.

  • Port ConsensusCLI tool from Groovy to Java

  • Re-enable and fix RegTest integration tests of ConsensusCLI tool

  • Remove -omnichest-url option and use of ExplorerConsensusTool from ConsensusCLI tool

All modules

  • Add Github Actions builds for 3 workflows:

    • Regular Gradle build

    • Run RegTests

    • GraalVM build of omnij-consensus-tool

  • Enable Gradle build scans

  • Update to Groovy 3.0.5

v0.5.11

Released: 2020.07.14

omnij-core

  • Fixed bug in OmniIndivisibleValue.of(BigInteger) for large, but valid values.

  • Provide an implementation of OmniValue.doubleValue() (Warning: this will use rounding and should only be used for charting and similar applications.)

omnij-core

  • Remove deprecated ConsensusSnapshot constructor that took a Long for blockheight. (The remaining constructor takes an int)

v0.5.10

Released: 2020.07.07

omnij-core

  • Prototype Omni safe Bech32 (SegWit) address implementation OLE 300 implementation (PR #170)

omnij-jsonrpc

  • By default, tell Jackson to ignore unknown JSON Properties, see 6d98308

  • Breaking: omniGetProperty() now returns OmniPropertyInfo (instead of a Map)

  • New OmniPropertyInfo record (extends SmartPropertyListInfo), , see: 90e1598

  • Remove deprecated getters from SmartPropertyListInfo

  • Remove deprecated OmniExtendedClient.

REST

  • Refactor REST client modules

    • omnij-net-api: base definitions for OmniWallet REST API and universal Omni Core

    • omnij-rest-client: Retrofit-based Omniwallet client (Android-compatible)

    • omnij-rest-client-mjdk: Modern JDK Omniwallet client (JDK 11+)

  • By default, tell Jackson to ignore unknown JSON Properties, see 6d98308

  • OmniPropertyInfo support, see: 90e1598

  • Add isFreezingEnabled to OmniwalletPropertyInfo

  • Add PropertyInfoFromJsonFile to read Omni smart property list from a JSON String or InputStream.

Regression Tests / Integration Tests

  • RegTests now default to using server RPC Port 18443. (Bitcoin Core default since 0.16.0)

  • Running with Spock 2.0-M3, Groovy 3, JUnitPlatform, spock-junit4 adapter

  • Add delays after invalidating blocks see Issue #185

  • Fix RegTest and Integration Test classpath issues (PR #168)

  • Run RegTest integration tests against Omni Core 0.8.2

  • Other test scripting improvements for RegTest on Travis CI

omnij-cli

  • Requires JDK11+

  • Stop using deprecated OptionBuilder, other internal improvements

omnij-money

  • Remove dependency on consensusj-exchange

  • TetherUSDIdentityRateProvider no longer implements ObservableExchangeRateProvider

All modules

  • Use Gradle java-library plugin and declare api dependencies

  • Gradle: Set reproducibleFileOrder, preserveFileTimestamps (helps make builds reproducible)

  • TravisCI: Full build in addition to running regTest

  • Update to ConsensusJ 0.5.4

  • Update to bitcoinj 0.15.7 (Guava 28.2-android)

  • Update to Java Money BP 1.4 (API BP 1.0.4)

  • Update to Gradle 6.5

  • Update to Groovy 3.0.4

  • Update to Spock 2.0-M3

  • Update to JUnit 4.13

  • Asciidoctor Gradle plugin to 3.1.0

v0.5.9

Released: 2020.03.06

omnij-rest-client-mjdk

New module: A JDK 11+ java.net.http asynchronous client for Omniwallet. It extends OmniwalletAbstractClient and implements ConsensusService and is compatible with the existing Retrofit-based OmniwalletClient. If you are using JDK 11+ and are looking for an Omniwallet API client with minimal dependencies, this is your JAR.

omnij-rest-client-micronaut

New module: Experimental, incomplete Omniwallet Client that uses the Micronaut Http client. This is a proof-of-concept, but development was discontinued in favor of the Modern JDK mjdk client above. Use at your own risk. Comments welcome.

omnij-rest-client

  • Upgrade to Retrofit 2.6.4 (OkHTTP 3.12.8)

omnij-rpc

  • Omni integration tests have temporary workarounds to keep the Travis Omni RegTest tests passing until we update to newer Omni Core for those tests. This is related ot a Bitcoin Core change to the default RPC port for RegTest mode. (The consensusj constant RpcURI.RPCPORT_REGTEST was changed to reflect Bitcoin Core 0.16.0 and later)

omnij-money

  • Upgrade to moneta-bp-1.3

All modules

  • Official build now using JDK 11 (but most modules are src/target JDK 8)

  • Travis CI — build with both JDK 11 and JDK 8 (skip JDK11 dependent module when building under JDK 8)

  • Update to bitcoinj 0.15.6 (Guava 28.1-android)

  • Update to ConsensusJ 0.5.0

  • Update to SLF4J 1.7.30 (has Automatic-Module-Name in MANIFEST.MF)

  • Update to Groovy 2.5.9

  • Update to Gradle 6.2

v0.5.8

Released: 2019.03.28

All modules

  • Upgrade to bitcoinj 0.15.1. This is a major upgrade to bitcoinj to provide support for Segregated Witness transactions.

  • Upgrade to ConsensusJ 0.4.0.

  • Bug fixes for handling frozen Omni asset balances.

  • Breaking: Switch to correct spelling of Willett - Issue #142

  • adoc directory renamed to doc

omnij-cli

Known issue

Shadow JAR build is temporarily disabled.

v0.5.7

Released: 2018.11.27

omnij-core

  • Remove deprecated CurrencyIDs (e.g. TetherUS is now USDT)

omnij-rpc

  • Updates for new OmniExplorer API

  • Get omni-mainnet-consensus tests working again

  • Support frozen field in more places

  • ChestConsensusTool renamed ExplorerConsensusTool

v0.5.6

Released: 2018.10.24

omnij-core

  • Update to JavaMoney API 1.0.3 (Java 7 Backport)

omnij-money

  • Update to JavaMoney RI 1.2.1 (Java 7 Backport)

  • Remove deprecated `ExchangeRateProvider`s

omnij-rpc

  • Moved Java-only OmniClient to omnij-jsonrpc module

  • The Groovy additions to the OmniClient and the Omni JSONRPC-based integration tests remain in this module.

omnij-jsonrpc

  • New module containing Java-only OmniClient and supporting classes.

  • Handle new frozen field in AddressBalanceEntry and elsewhere

  • Add name field in PropertyBalanceEntry

omnij-rest-client

  • Handle frozen field added to AddressBalanceEntry

  • Increase Timeout in OmniwalletClient to 2 minutes

  • Better handle timeout errors in OmniwalletClient.getConsensusForCurrency()

  • Improvements to OmniwalletClientSpec

  • Upgrade to Retrofit 2.4.0

  • Upgrade to OkHttp3 logging-interceptor 3.10.0

All modules

  • BREAKING: Upgrade all modules to require Java 8 or later

  • Upgrade to ConsensusJ (formerly bitcoinj-addons) 0.3.1

  • Upgrade to bitcoinj 0.14.7

  • Upgrade to Groovy 2.5.3

  • Upgrade to Spock 1.2

  • Upgrade to Gradle 4.10.2

v0.5.5

Released: 2017.10.16

All modules

  • Upgrade to bitcoinj 0.14.5

  • Upgrade to bitcoinj-addons 0.2.6

  • Upgrade to Groovy 2.5.0-beta-2

Omni Java Money support (omnij-money)

  • Upgrade to XChange 4.2.3

v0.5.4

Released: 2017.08.17

All modules

  • Upgrade to bitcoinj-addons 0.2.5

  • Upgrade to Gradle 4.1

OmniJ Core (omnij-core)

  • Add methods/constants for OmniValue value validation/conversion

  • SEC → SAFEX ticker symbol rename

Omniwallet REST client (omnij-rest-client)

  • Improved exception and error handling

  • Most remote methods now throw InterruptedException, IOException

  • Add optional strictMode flag to OmniwalletClient

Omni Java Money support (omnij-money)

  • Update to XChange 4.2.1

  • Use dynamic classloading to load XChange ExchangeRateProviders

  • Enable Kraken USDT/USD pair

  • SEC → SAFEX ticker symbol rename

v0.5.3

Released: 2017.07.16

All modules

  • Upgrade to bitcoinj-addons 0.2.4

  • Use invokedynamic ("indy") version of Groovy

v0.5.2

Released: 2017.06.28

All modules

  • Gradle build cleanup (remove RoboVM support, etc)

  • Minor documentation improvements

OmniJ Core (omnij-core)

  • Remove dependency on java.xml.bind.DatatypeConverter (for Android support)

Omniwallet REST client (omnij-rest-client)

  • Add asynchronous interfaces to OmniwalletClient and OmniCoreClient (using CompleteableFuture)

  • Add handling of upstream rate-limit in BTC results in OW multi-address-balance requests

  • Add support for Omni protocol "reserved" balances (OmniCoreClient only for now)

  • Code cleanup/simplification

Omni RPC client, Omni Core integration tests (omnij-rpc)

  • Use https to communicate with Omni Explorer

Omni Java Money support (omnij-money)

  • BaseXChangeExchangeRateProvider implementations can take ScheduledExecutorService in constructor

  • Add Kraken exhange (USDT/USD pair disabled till XChange 4.2.1 released)

Dependency updates

  • Update to Groovy 2.5.0-beta-1 (Groovy 2.5 fixes Issue #109)

  • Gradle Bintray plugin 1.7.3

  • JavaMoney money-api-bp 1.0.1

v0.5.1

Released: 2017.05.23

Features/Changes

All modules

  • build.gradle reads JDK7_HOME environment variable to compile Java 7 modules with correct classpath

  • Assorted code, build, JavaDoc improvements

Omniwallet REST client (omnij-rest-client)

  • Implement Omniwallet multi-address balance request

  • Fix issues with accessing Omniwallet via CloudFlare

  • OmniBalanceService methods now throw IOException

Omni RPC client, Omni Core integration tests (omnij-rpc)

  • Updated for generate RPC API changes in Bitcoin Core / bitcoinj-addons

  • Use non-segwit serialization for RPC tests (Dexx)

  • Bump rpcWaitTimeoutSeconds in consensus tests to 10 hours.

  • Use http://omniexplorer.info instead of http://omnichest.info in tests, etc.

  • Deprecated ConsensusEntry Groovy class removed

  • Updates for OmniChest → OmniExplorer

Dependency updates

  • Update to Gradle 3.5

  • Update to bitcoinj-addons 0.2.3

  • Update to Groovy 2.4.11

  • Update to Spock 1.1

  • Update to SLF4j 1.7.25

  • omnij-money: Update to Moneta 1.1

  • omnij-money: Update to XChange 4.2.0

  • omnij-rest-client: Update to Retrofit 2.3.0

  • omnij-rest-client: Update to OkHttp 3.8.0

Potentially Breaking

  • Some exceptions, such as ParseException are no longer declared, you may need to remove some catch statements.

v0.5.0

Released: 2016.11.16

Potentially Breaking

  • The 0.5.x branch requires Omni Core 0.0.11.1 or later

  • d067b26 - Send omni_* RPC method names rather than *_MP

  • PR #135 -OmniExtendedClient is deprecated (use methods/RPCs in OmniClient instead)

Features/Changes

  • Tweaks to integration tests for Omni Core Bitcoin 0.13 rebase

  • Update to bitcoinj-addons 0.2.1

Internal

  • 03e447e - The value protected member of OmniValue is now called willets

v0.4.0

Released: 2016.09.28

Features/Changes

  • The 0.4.x branch will be the last to support Omni Core releases 0.0.10 and earlier

  • Add RPCs for fee distribution system

  • Pluggable fee calculator interface for OmniTxBuilder

  • Add OmniScriptingClient with dynamic method support for all RPC methods

  • Add PDC currency ticker symbol

  • Proof-of-concept address converters for Omni "Safe" addresses

  • Additional tests for fee distribution and feature activation

  • Further improvements in omnij-rest-client module to support OmniPortfolio

  • Bug fix for Omni transaction generation on TestNet

  • All modules except omnij-rest-client should now be Java 7 compatible JARs

  • Fix Issue #127: Test log spammed since update to bitcoinj 0.14.1

  • Update to Groovy 2.4.7

  • Update to bitcoinj-addons 0.1.3

  • Update to bitcoinj 0.14.3

  • Other library updates

v0.3.7

Released: 2016.05.25

Features/Changes

  • Token rename MSCOMNI and TMSCTOMNI (old names are still present, but deprecated)

  • 2-way conversion between ISO-style currency codes (e.g. "OMNI", "USDT") and CurrencyID

  • Code cleanup in OmniTxBuilder in preparation for improved fee calculation

  • All-pair trading integration tests added

  • Upgrade to bitcoinj-addons 0.1.0

  • Upgrade to bitcoinj 0.14.1

v0.3.6

Released: 2016.05.04

Features/Changes

  • New omnij-money module (Java Money implementation for OMNI and all Omni smart properties)

  • New omnij-rest-client module (common interface for OmniCore and Omniwallet REST API)

  • Add CurrencyID constants for USDT, EURT, MAID, AMP, SEC, AGRS

  • Upgrade to bitcoinj-addons 0.0.13

  • Upgrade to Groovy 2.4.6, bitcoinj 0.13.6, and Gradle 2.12

v0.3.5

Released: 2015.12.01

Potentially Breaking

  • BigDecimal had been replaced by OmniValue in many places (same as v0.3.4 which wasn’t published)

Features/Changes

  • Omni Chest consensus tool can now distinguish between divisible/indivisible OmniValues by '.'

  • Fix numeric type issues in OverOfferDeactivationSpec.groovy

v0.3.4

Tagged: 2015.11.24 (no JARs were published)

Potentially Breaking

  • BigDecimal had been replaced by OmniValue in many places

  • Omni Chest consensus tool has hardcoded divisible/indivisible OmniValue selection that needs work

Features/Changes

  • Explicitly set transaction and relay fees for regtests

  • OmniClient createProperty() method with full parameters.

  • Omni Chest and Omniwallet consensus tools update

  • Update to bitcoinj 0.13.3, bitcoinj-addons 0.0.11

  • Replace BigDecimal with OmniValue in many more places

    • rename MPBalanceEntry to BalanceEntry

    • BalanceEntry replaces ConsensusEntry

    • BalanceEntry using OmniValue rather than BigDecimal

  • Use Jackson JSON mapping more effectively

v0.3.3

Released: 2015.10.06

Potentially Breaking

  • OmniClient constructor now requires a bitcoinj NetworkParameters instance.

Features/Changes

  • Update to bitcoinj-addons 0.0.10

  • Simplify OmniClient, OmniExtendedClient with better use of Jackson

  • omniNetParams read-only property on OmniClient

  • Add omniCreateToken.groovy demonstration script and integration test

  • Improvements to integration tests of Omni Core

  • RegTest tests now run on TravisCI - and on Pull Requests, too.

v0.3.2

Released: 2015.09.30

Use OmniValue over BigDecimal in RPC method parameters. JSON-RPC results still use BigDecimal and Map structures. They will migrate to POJOs and OmniValue soon.

Potentially Breaking

  • Use OmniValue over BigDecimal in RPC method parameters.

Features/Changes

  • Update to bitcoinj-addons v0.0.9.

  • All "number of coins" parameters in OmniClient are now OmniValue

  • All "number of coins" parameters in OmniExtendedClient are now OmniValue

  • Conversion to using OmniValue and Coin in test is near complete.

v0.3.1

Last release before API starts changing to use OmniValue rather than BigDecimal

Features/Changes

  • Update to bitcoinj-addons v0.0.8

  • Support for creating unsigned Omni transactions.

  • Improvements to non-dust and minimum transaction fee calculations.

  • More RegTest integration tests of Omni Core.

REL-0.3.0

First release. See commit history for details.