Added
-
Integrated with the Cardano eco-system corresponding to cardano-node@1.28.0 & latest testnet (alonzo-purple). Bumped the docker-compose installation accordingly.
-
New possible errors from the transaction submission:
collateralHasNonAdaAssets
collateralIsScript
collateralTooSmall
collectErrors
datumsMismatch
executionUnitsTooLarge
extraDataMismatch
extraRedeemers
mirNegativeTransferNotCurrentlyAllowed
mirProducesNegativeUpdate
mirTransferNotCurrentlyAllowed
missingDatumHashesForInputs
missingRequiredDatums
missingRequiredSignatures
outsideForecast
poolMetadataHashTooBig
tooManyCollateralInputs
unredeemableScripts
unspendableDatums
unspendableScriptInputs
validationTagMismatch
-
Added missing properties in Byron's protocol parameters update. Somehow, an
additionalProperties: true
had slipped through and caused the tests to pass with an incomplete schema. -
The TypeScript
ChainSyncClient
now implements an in-memory queue to ensurerequestNext
responses are processed sequentially when there are async operations in the message handlers. This behaviour can be bypassed where sequential processsing is not required, by setting the new construction optionsequential
tofalse
. -
Nested logs are now also structured, in particular those coming from the Handshake or TxSubmission protocols. Before, any message from these layers where actually plain strings with unprocessable gibberish. Now, the submitted transaction payload is shown encoded as hexadecimals and errors are also serialized to json using the same model / codec as the one used for websockets. The handshake is also more verbose now clearly showing what version is being requested and what the node replies / select. All in all, better logs.
-
The Dockerfile now includes a build definition for including
cardano-node
andogmios
in the same image, which is the default and suggested mode of operation. To build an image with only Ogmios, use the build targetogmios
. Docker Hub now hosts two image repositories:cardanosolutions/cardano-node-ogmios
andcardanosolutions/ogmios
. - Docker Hub images are now tagged with-mainnet
to make all network images consistent. This more specific tag is optional, and points to the same build as the defaults.
Changed
-
The
memory
andsteps
JSON representations forprices
are no longer coins, but ratio (represented as strings in the API). -
lovelacePerUtxoWord
has been renamed intocoinsPerUtxoWord
in the AlonzoGenesis. -
Changes in the TypeScript's client:
Tip
&Point
have been renamed toTipOrOrigin
andPointOrOrigin
. As a consequence,Tip1
andPoint1
are now simplyTip
andPoint
.Origin
is now a standalone type, merged withOrigin1
.SubmitTx
no-longer returns Byron errors. Consequently, submit errors are no longer scoped undererrors.byron
orerrors.shelley
but simplyerrors
.- Fixed
proposedProtocolParameters
query. All fields are actually required AND, more importantly, it can now return either Shelley protocol parameters or, Alonzo protocol parameters.
-
The
moveInstantaneousRewards
certificates have a new optional fieldvalue
and not only arewards
map as before. Whenvalue
is present, it signifies that rewards are moved to the other pot. -
Auxiliary data's
scriptPreImages
in Allegra & Mary has been replaced with a fieldscripts
which has one fieldnative
. The value ofnative
corresponds to what used to be the value ofscriptPreImages
. In Alonzo,scripts
may also have another fieldplutus
with a serialized Plutus script. -
Transactions witnesses'
address
has been renamed intosignatures
, and the structure of the object has been changed to be a map from public keys to signatures (instead of an object with two fieldkey
&signature
). -
Transactions witnesses'
script
has been renamed intoscripts
. -
Transaction submission errors'
networkMismatch
now returns aninvalidEntities
list of object in the form of{ "type": ..., "entity": }
wheretype
is a text tag designating the type of entity for which there is a network identifier mismatch. Values can beaddress
,rewardAccount
and since AlonzotransactionBody
. Theentity
field contains some details specific to the type of entity. Before, it used to be two distinct fieldsinvalidAddresses
andinvalidRewardAccounts
. -
Empty transaction metadata are no longer materialized by an object with two null fields (
{ "hash": null, "body": null }
). Empty transaction metadata are now equal tonull
. -
map
metadatum in transactions' metadata are no longer materialized as a list of list of singleton objects:[[{ "k": ... }, { "v": ... }], ...]
but instead, as a list of object with two fieldsk
andv
:[{ "k": ..., "v": ...}, ...]
. This was an oversight from the encoder which was never intended to end up that way but happened to slip in because the schema for metadatum was not specified / documented (and therefore, also escaped testing). This is now documented properly. -
The
TxOut
(and thus Utxo) model definitions have been unified and harmonized across all eras. That is, pre-Mary eras now also wrap Ada values in an object with a field"coins": ...
. This reduces the discrepancy between eras for there's now a single TxOut representation valid across all eras. Some fields are however optional and only present in some eras (e.g.datum
starting from Alonzo) -
Various reworks and renaming of the TypeScript types
- AssetQuantity is now a native bigint
- Metadatum's Int are now native bigint
- Type
DelegationsAndRewards
renamed intoDelegationsAndRewardsByAccounts
- Type
DelegationsAndRewards1
renamed intoDelegationsAndRewards
- Type
NonMyopicMemberRewards1
renamed intoNonMyopicMemberRewards
- Type
TxTooLarge1
renamed intoTxTooLarge
- Type
FeeTooSmall1
renamed intoFeeTooSmall
- Type
NetworkMismatch1
renamed intoNetworkMismatch
- Type
Proposal
renamed intoUpdateProposalShelley
- Types
Utxo1
,Utxo2
,UtxoMary
have been unified into a singleUtxo
type. Refer to server breaking changes for details. - Many types
NullX
merged into a singleNull
type - Query types have been renamed from
ledgerTip1
toGetLedgerTip
and so forth for all queries.
-
ChainSyncClient
no longer exposes a requestNext function. Instead you must invoke the callback provided as the second argument in each of rollBackward and rollForward handlers. -
ChainSyncClient
no longer exposes JSON-WSP reflection as there would be unexpected results given the first n messages would all share the same reflected value. -
The
ChainSyncClientMessageHandlers
methods now must return a promise.
Removed
-
A previous introduced error from the transaction submission has been removed / replaced:
datumsMismatch
-
SubmitTx
can no longer returnSubmitTxError[Byron]
. All the child error types have been removed accordingly, namely:UtxoValidationError
TxValidationError
LovelaceError