A mid-level view of the changes in each OmniJ binary release.
Released: 2023-10-05
The 0.7.0 release of OmniJ will require the forthcoming ConsensusJ 0.7.0 and bitcoinj v0.17 (currently in alpha release.) There will likely be multiple alpha releases of OmniJ and ConsensusJ as bitcoinj is updated.
Released: 2023.07.13
-
All modules now require a minimum of JDK 11 or later (
omnij-txrecords
andomnij-cli
still require JDK 17 or later) -
bitcoinj 0.17-alpha1
-
ConsensusJ 0.7.0-alpha1
-
jackson-module-parameter-names 2.15.2
-
Groovy 4.0.13
-
OkHttp 3.4.19, Retrofit 2.9.0 (in
omnij-rest-client-retrofit
)
-
OmniTransactionInfo
: addtotalAmount
property forSendToMany
-
OmniTradeInfo.Match
: addblockTime
property -
Remove unused/incorrect thrown exceptions from
OmniClient.isOmniServer()
Released: 2022-10-11
This release has some major refactoring (some breaking) in order to upgrade to ConsensusJ 0.6.4 , simplify the OmniClient
class hierarchy, and simplify the inheritance hierarchy of the OmniJ Spock RegTests.
The BitcoinClient
and BitcoinExtendedClient
of ConsensusJ 0.6.4 add support for Bitcoin Core v0.23 and its changes to wallet functionality (such as defaulting to descriptor wallets and using wallet names in the JSON-RPC URL path.) This will help us with the planned rebase of Omni Core to the latest Bitcoin Core codebase.
-
BalanceEntry
,AddressBalanceEntry
,PropertyBalancEntry
moved fromomnij-jsonrpc
-
Compile with
-parameters
option
-
OmniClient
: AddisOmniServer()
method for checking if server is Omni Core -
OmniProxyMethods
moved here fromomnij-net-api
-
OmniClient
: pull-upRxOmniClient
features (and deprecateRxOmniClient
) -
OmniClient
: Add no-args constructor that readsbitcoin.conf
-
Move
BalanceEntry
,AddressBalanceEntry
,PropertyBalancEntry
toomnij-core
-
Deprecate
OmniClientModule
constructor that takesNetworkParameters
argument -
Move 4 "pojos" from f.o.rpc to f.o.json.pojo
-
Add
jackson-module-parameter-names
dependency and use it inOmniClient
Jackson mapper -
Compile with
-parameters
option
-
Rename
RxOmniTestClient
toOmniTestClient
-
Deprecate
OmniCLIClient
andOmniScriptingClient
-
Deprecate
OmniClientDelegate
,OmniTestClientDelegate
, andRawTxDelegate
traits
Released: 2022-09-13
-
RawTxBuilder: Fix bug in
toHexString(byte[])
-
(Minor breaking) align
enum
names inTransactionType
withomnicore.h
-
Further improvements to (still WIP)
Transactions.TransactionType
-
Add
omniListTransactions()
method,OmniTransactionInfo
POJO. -
Add
omniGetTradeHistoryforAddress
-
Breaking: Return
OmniTradeInfo
foromniGetTrade
-
Set minimum required JDK back (down!) to Java 9.
-
omnij-core
-
Class C transaction signing
-
DevOmni
: Independent (and not thoroughly tested) implementation of DevOmni calculations
-
-
omnij-txrecords
-
Omni transaction building using Java
record
types -
Class C transaction signing
-
OmniSendService
-
OmniSigningService
-
Released: 2021-11-18
-
OmniPropertyInfo
Improvements-
Make sure Issuer
Address
is for the correct network (NetworkParameters
) -
Constructor and factory method changes to require
NetworkParameters
-
For Bitcoin values, use creation TxID from genesis block
-
For Bitcoin info add URL and set
managedissuance
totrue
-
Released: 2021-11-17
-
Convert
Ecosystem
toenum
-
Convert
PropertyType
toenum
-
Remove deprecated
Ecosystem
constants (MSC
/TMSC
)
-
OmniCoreClient: Use OmniProxy if available
-
OmniCoreClient: Improved implementations of
balancesForAddress*
: notablybalancesForAddressesAsync
now uses parallel requests to fetch balances and can merge in BTC balances when Address Index or OmniProxy is available.
Released: 2021-11-11
-
omnij-net-api
now includes Reactive Streams and RxJava support -
Omniwallet clients now support and require the https://api.omniexplorer.info and https://api.omniwallet.org versions
-
Omniwallet clients now return best block hash in ChainTip
-
Now contains
omnij-analytics
-
Add
balancesForAddressAsync()
toOmniBalanceService
(common API for Omni Core JSON-RPC and Omniwallet)
-
OmniClient
now extends onRxBitcoinClient
from ConsensusJcj-btc-rx-jsonrpc
(add JDK 9 dependency) -
OmniPropertyInfo
created fromSmartPropertyListInfo
now has placeholders instead of null
-
ConsensusJ 0.5.12
-
bitcoinj-0.16-rc1
-
RxJava 3.1.2 (used in
omnij-analytics
) -
JavaMoney API 1.1 (non-backport, modular version)
-
JavaMoney Moneta 1.4.2 (non-backport, modular version)
-
Groovy 3.0.9
Released: 2021.02.02
-
Bech32 address conversion methods are now public
-
Refactoring in
OmniTxBuilder
towards Class C and P2SH
-
Make
OmniTestClient
a singleton (soregTestMiningAddress
doesn’t change) -
Github Actions build with JDK 11/15 instead of JDK 11/14
-
GraalVM build uses 21.0.0.java11
-
Replace
jcenter()
withmavenCentral()
-
Gradle 6.8.2
-
Spock 2.0-M4-groovy-3.0
-
Replace
jcenter()
withmavenCentral()
inbuild.gradle
Released: 2020.08.10
-
Workaround for bitcoinj compareTo() issue where some addresses were missing from the
SortedMap
returned byomniGetAllBalancesForId
-
Added
omniGetAllBalancesForIdAsList
to return aList
instead of aSortedMap
-
Fixes to how
frozen
is included in total balances
Released: 2020.08.04
-
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 identifyOmniDivisibleValue
andOmniIndivisibleValue
of the same number of willetts "equal" (Object
equality)
-
Use
.longValueExact()
forNumber.getDivisible()
-
Remove unneeded/unused/incorrect
.equals()
onNumber
-
Add constants for https://api.omniexplorer.info and https://api.omniwallet.org
-
Improved Omniwallet client support for Bitcoin Testnet
-
NetworkParameters defaults to
null
inOmniwalletAbstractClient
-
Ability to set
NetworkParameters in the constructor
-
-
Add support for returning
frozen
balances inverifyAddresses()
andgetConsensusForCurrency()
-
OmniCoreClient — update to new ConsensusFetcher, make more async
-
Omniwallet*Client — update to new ConsensusFetcher, make more async
-
Add
BalanceEntry.totalBalance
static method. -
OmniValueSerializer use OmniValue::toJsonFormattedString.
-
Change OmniValueSerializerSpec to require a decimal point for divisible currencies
-
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
, andoutput
methods from ConsensusTool to ConsensusToolOutput -
MultiPropertyComparison - use CompletableFuture and “combine” to fetch property lists and consensus data from both servers in parallel
-
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 ofExplorerConsensusTool
fromConsensusCLI
tool
Released: 2020.07.14
-
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.)
Released: 2020.07.07
-
By default, tell Jackson to ignore unknown JSON Properties, see 6d98308
-
Breaking:
omniGetProperty()
now returnsOmniPropertyInfo
(instead of aMap
) -
New
OmniPropertyInfo
record (extends SmartPropertyListInfo), , see: 90e1598 -
Remove deprecated getters from
SmartPropertyListInfo
-
Remove deprecated
OmniExtendedClient
.
-
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
toOmniwalletPropertyInfo
-
Add
PropertyInfoFromJsonFile
to read Omni smart property list from a JSONString
orInputStream
.
-
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
-
Remove dependency on
consensusj-exchange
-
TetherUSDIdentityRateProvider
no longer implementsObservableExchangeRateProvider
-
Use Gradle
java-library
plugin and declareapi
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
Released: 2020.03.06
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.
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.
-
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
constantRpcURI.RPCPORT_REGTEST
was changed to reflect Bitcoin Core 0.16.0 and later)
-
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
inMANIFEST.MF
) -
Update to Groovy 2.5.9
-
Update to Gradle 6.2
Released: 2019.03.28
-
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 todoc
Released: 2018.10.24
-
Update to JavaMoney RI 1.2.1 (Java 7 Backport)
-
Remove deprecated `ExchangeRateProvider`s
-
Moved Java-only
OmniClient
toomnij-jsonrpc
module -
The Groovy additions to the
OmniClient
and the Omni JSONRPC-based integration tests remain in this module.
-
New module containing Java-only
OmniClient
and supporting classes. -
Handle new
frozen
field inAddressBalanceEntry
and elsewhere -
Add
name
field inPropertyBalanceEntry
-
Handle
frozen
field added toAddressBalanceEntry
-
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
Released: 2017.08.17
-
Add methods/constants for OmniValue value validation/conversion
-
SEC → SAFEX ticker symbol rename
-
Improved exception and error handling
-
Most remote methods now throw InterruptedException, IOException
-
Add optional
strictMode
flag to OmniwalletClient
Released: 2017.06.28
-
Add asynchronous interfaces to
OmniwalletClient
andOmniCoreClient
(usingCompleteableFuture
) -
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
-
Use https to communicate with Omni Explorer
-
BaseXChangeExchangeRateProvider
implementations can takeScheduledExecutorService
in constructor -
Add Kraken exhange (USDT/USD pair disabled till XChange 4.2.1 released)
-
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
Released: 2017.05.23
-
build.gradle
readsJDK7_HOME
environment variable to compile Java 7 modules with correct classpath -
Assorted code, build, JavaDoc improvements
-
Implement Omniwallet multi-address balance request
-
Fix issues with accessing Omniwallet via CloudFlare
-
OmniBalanceService
methods now throwIOException
-
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 ofhttp://omnichest.info
in tests, etc. -
Deprecated
ConsensusEntry
Groovy class removed -
Updates for OmniChest → OmniExplorer
Released: 2016.11.16
-
Tweaks to integration tests for Omni Core Bitcoin 0.13 rebase
-
Update to bitcoinj-addons 0.2.1
-
03e447e - The
value
protected member ofOmniValue
is now calledwillets
Released: 2016.09.28
-
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
Released: 2016.05.25
-
Token rename
MSC
→OMNI
andTMSC
→TOMNI
(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
Released: 2016.05.04
-
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
Released: 2015.12.01
-
BigDecimal had been replaced by OmniValue in many places (same as v0.3.4 which wasn’t published)
Tagged: 2015.11.24 (no JARs were published)
-
BigDecimal had been replaced by OmniValue in many places
-
Omni Chest consensus tool has hardcoded divisible/indivisible OmniValue selection that needs work
-
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
Released: 2015.10.06
-
Update to bitcoinj-addons 0.0.10
-
Simplify
OmniClient
,OmniExtendedClient
with better use of Jackson -
omniNetParams
read-only property onOmniClient
-
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.
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.