@cardano-ogmios/schema
Advanced tools
Changelog
[5.6.0] - 2023-02-02
![TypeScript][] Add a new helper function unsafeMetatumAsJSON
which converts a detailed metadata schema into plain JavaScript, whenever possible.
For example:
{ "list": [ { "string": "foo" }, { "int": 42 } ] }
→ ["foo", 42]
This should work for any CIP-0025 metadata, and a few other formats. Yet it is unsound in the general case since not every on-chain metadata can actually be represented as JavaScript objects.
![TypeScript][] Now targets ES2020.
![TypeScript][] Fixed a bug in the JSON parser where coins
quantities from all eras prior to Mary would be parsed as Number
instead of BigInt
.
N/A
Changelog
[5.5.8] - 2023-01-25
N/A
Bump internal packages to match cardano-node@1.35.4 dependencies set.
Bundle the docker image with more recent versions of the cardano-configurations.
![TypeScript][] Fix TxMonitorClient
's nextTx
wrongly throwing an error when called with no argument. The signature of that method has also been reworked slightly to provide better usage at call-site.
![TypeScript][] Add missing required
constraints in the JSON schema for Byron witness representation that caused TypeScript types to be generated as optional.
N/A
Changelog
[5.5.7] - 2022-10-27
delegationAndRewards
and nonMyopicMemberRewards
queries now both accept credentials in the form of bech32 strings as parameters, with the following expected prefixes and semantic (according to CIP-0005:
stake
(resp. stake_test
on test networks) for stake addressesstake_vkh
for stake key hash digestsscript
for stake script hash digestsSee also #277.
![TypeScript][] Allow additionalUtxoSet
to be passed as argument in the repl.
additionalUtxoSet
being ignored in the TxSubmissionClient
of the TypeScript client.N/A
Changelog
[5.5.6] - 2022-10-21
Prometheus metrics exported at /metrics
endpoint
Schema definitions are now included in the 📘 API reference. This makes it a little easier to find a specific schema without having to drill into a messages definitions.
Fixed network synchronization reporting 0.99999
even when fully synchronized. There was sometimes a possible discrepancy between the ledger internal clock and Ogmios' clock, causing a few seconds of drift time.
![TypeScript][] Fixed a couple of data-types with fields parsed as number
instead of bigint
. See #274
[!WARNING] This is technically an internal breaking-change, however it actually comes as a bug fix since this does not change the announced interface in the TypeScript schema (which was correctly indicated 'bigint'). Still, this may cause issues with those using
number
where there will now bebigint
.
![TypeScript][] Fixed browser detection for the IsomorphicWebSocket
abstraction. See #273
N/A
Changelog
[5.5.5] - 2022-08-19
![TypeScript][] Support for the TxMonitor mini-protocol in the REPL.
Link to a new Java client for Ogmios.
ScriptFailures
coming out of the evaluateTx
command. Before this patch, the client would simply throw undefined
when such an error was encountered. They are now properly transcribed as EvaluateTxError
.testnet
has been removed from the target networks by the Docker workflow; which means that until further notice, there will be no more Docker images pushed for testnet. However, support for preprod
and preview
environment has been added.Changelog
[5.5.4] - 2022-08-11
collectErrors
. See #244.Slot lengths are now encoded as floating numbers (double precision) instead of integers (still representing a number of seconds). However, to maintain backward-compatibility, integers value are encoded without decimal, as they used to. #245
![TypeScript][] Blocks' properties (header
, headerHash
, body
) are no longer marked as optional in the JSON specification (and consequently, in the TypeScript SDK). #238
N/A
Changelog
[5.5.3] - 2022-07-31
N/A
Bumped cardano-node's version (continuous integration & docker image) to 1.35.2.
⚠️ Fixed Plutus' data / datum serialization function. See 3f614c3c for details. As a consequence, some datums (either inline or in the witness set) that have been reported in the past (since v5.5.0
) may have been wrong. Note that the datum hashes were however correct, so it is possible to identify the "corrupted" ones by trying to re-hash (blake2b-256) them and see whether they match their associated hash digest.
Changed the Docker image tagging's scheme of cardano-node-ogmios
to now include the cardano-node's version. This allows to more easily bundle more recent version of cardano-node with old versions of Ogmios without the need to make a whole new release. This is in effect from v5.5.2
and onwards.
| image | repository | tags |
| --- | --- | --- |
| cardano-node-ogmios | cardanosolutions/cardano-node-ogmios | latest
<br/>latest-{NETWORK}
<br/>v*.*.*_{CARDANO_NODE_VERSION}
<br/>v*.*.*_{CARDANO_NODE_VERSION}-{NETWORK}
|
| ogmios | cardanosolutions/ogmios | latest
<br/>latest-{NETWORK}
<br/>v*.*.*
<br/>v*.*.*-{NETWORK}
|
Fixed incongruous error message from the command-line when failing to parse protocol parameters from genesis files. The error reporting has been slightly improved to give a more fine-grained error per invalid parameter. See #242.
N/A
Changelog
[5.5.0] - 2022-06-29
babbage
with:
references
, collateralReturn
, totalCollateral
;datum
and script
;plutus:v2
script language;mirNegativeTransfer
: return when attempting to perform a negative MIR transfer from a reward pot to another;totalCollateralMismatch
: returned when totalCollateral
is set but does not match what is actually computed by the ledger (i.e. sum of collateral inputs minus collateral return);malformedReferenceScripts
: returned when the script
specified in an output isn't actually a well-formed Plutus script;malformedScriptWitnesses
, occurs when a script witness specified in the transaction does not properly deserialize to a Plutus script.corruptCostModelForLanguage
: An artifact from a distant past. This is unused but somehow still present in the ledger internal definitions. Should be removed eventually.NotEnoughSynced
: Happens when attempting to evaluate execution units on a node that isn't enough synchronized. This is, if the node is still in an era prior to Alonzo, evaluation of execution units won't be possible.CannotCreateEvaluationContext
: Happens when the ledger fails to create an evaluation context from a given transaction. This is mostly due to the transaction being malformed (e.g. wrong redeemer pointer, missing UTxO).Updated cardano-configurations to include the vasil-dev
network and switch to cardano-world as a source instead of Hydra artifacts -- now being deprecated.
Partially fixed an issue causing websocket connection to be terminated by the server when p2p is enabled on the underlying node. Ogmios now has a workaround which makes the issue less likely, but the real fix belongs in the upstream networking stack. See #230, #208.
The missingRequiredScripts
error now contains an extra field resolved
that is a map of (pointer → script hash) that have been correctly resolved by said pointers.
The introduction of the Babbage era comes with some minor (albeit possibly breaking) changes and deprecations:
⚠️ datums
, redeemerData
and plutus:v1
scripts are no longer encoded as base64
strings, but are encoded as base16
strings. The data payload remains however identical.
This change is meant for more compatibility across the API since those data-types can now also be submitted to the server when evaluating execution units for transactions. Using
base64
for input data here is a bit awkward since most existing interfaces in the ecosystem favor base16
;
⚠️ When passing transaction outputs to the server (e.g. when providing an additional UTxO for script evaluation), datum hashes in output must now be specified as datumHash
(instead of datum
). However, the server does a best-effort for the sake of backward compatibility and should still work if provided with a valid hash under datum
. However, after the Vasil hard-fork, it'll be possible to also pass inline-datums using datum
, while datum hash digest are expected to be specified as datumHash
. Said differently, existing applications relying on this functionality will keep working without a change on this release, but applications willing to make use of the new inline-datum functionality coming in Vasil must abide by the new notation;
⚠️ Similarly, Alonzo transaction outputs will now contain a datumHash
field, carrying the datum hash digest. However, they will also contain a datum
field with the exact same value for backward compatibility reason. In Babbage however, transaction outputs will carry either datum
or datumHash
depending on the case; and datum
will only contain inline datums;
⚠️ The outputTooSmall
errors from transaction submission will slightly change format for transactions submitted during the Babbage era. Instead of an array of outputs, it is an array of objects with output
and minimumRequiredValue
fields;
⚠️ A slightly modified block header: leaderValue
and nounce
fields are gone and replaced by a single inputVrf
field;
⚠️ Few protocol parameters changes:
A new protocol parameter coinsPerUTxOByte
comes to replace coinsPerUtxoWord
with a slightly different semantic. coinsPerUTxOByte
is meant to compute the minimum Lovelace requirement on transaction outputs, and is simply a coefficient in a linear function of the serialized (CBOR) output:
minUTxOValue(output) = |serialise(output)| * coinsPerUTxOByte
The decentralizationParameter
no longer exists.<br/>
The block production is forever decentralized :tada:!
The extraEntropy
no longer exists.
UnknownInputs
and UncomputableSlotArithmetic
errors have been removed from the top-level possible cases of EvaluationFailure
. Instead, those errors are now comprised in the CannotCreateEvaluationContext
case.
The corruptCostModelForLanguage
error has been removed from the top-level possible cases of ScriptFailure
. This one was effectively dead-code that couldn't be reached and was there for completeness. The code has now been removed upstream.