@cardano-ogmios/repl
Advanced tools
Changelog
[6.0.0] - 2024-01-10
Integration with cardano-node==8.7.2
and cardano-ledger-conway==1.11.0.0
. It adds (preliminary) support for the Conway era. This support only covers what is currently available in the Cardano node / ledger. However, since the implementation of this era isn't finalized yet it will likely break in the future. New updates will be issued until Conway stabilizes.
Ogmios now accept queries via HTTP (POST). Request bodies are the same as those passed to the websocket and so are responses. In fact, most Ogmios queries follow a simple request/response pattern and are therefore well-suited to be run over HTTP. While there's an obvious performance trade-off (especially for the local-chain-sync protocol), it is a reasonable approach for many queries (e.g. the local-state-query protocol).
[!NOTE] The HTTP server and the WebSocket server are both mounted on the same port. So, it suffices to route HTTP requests through
/
. The JSON payload is the same.
Ability to retrieve any genesis configuration (Byron, Shelley, Alonzo or Conway) via the state-query protocol.
A new flag --metadata-detailed-schema
(disabled by default) to control how the server returns JSON metadata. When set, the server will return a JSON description of the encoded data; when omitted, it'll attempt to convert CBOR metadata as plain JSON object, and default to hex-encoded cbor otherwise. See also notes in ADR-017.
A new command inspect transaction
to help with debugging the deserialization of transaction.
The health now contains an extra network
and version
. Also, beware that era names are now returned in lowercase (first letter used to be capitalised!).
sanchonet
network to the list of well-known networks.
arm64
static executables for Linux are now available in the continuous delivery pipeline, and as release artifacts.
The server now return an internalError
when an unexpected error occurs in the communication between Ogmios and the node. Before, Ogmios would simply log an exception and no response would be sent back to client applications. Now, clients correctly receive an unsuccessful response with the same id
as present in the request. See #346.
![TypeScript][]
Add an extra promise handler to cope with unexpected websocket disconnections when submitting messages to the server. See #346.
Escape the word 'constructor' to constr
when present as key in metadata, and when not using --metadata-detailed-schema
. JavaScript (and thus TypeScript) forbids using that word as an object key.
⚠️ BREAKING-CHANGE ⚠️ Many major changes in the interface. A complete migration guide is available in ADR-017, yet please refer to the API reference for details and exhaustiveness. Many representations have been made easier to parse and field names have been improved (more consistent across the entire API and better self-documented).
[!NOTE] There are still many test vectors available for every element of the Ogmios API. Use them!
Ogmios will no longer retry connecting to a node that is configured for another network but exit with an non-zero code and a clear error message indicating the network mismatch.
The default dashboard on localhost has been greatly rework and simplified. It also better handles errors.
Responses from the server no longer includes raw binary cbor by default. This was the case in particular for transactions. This behavior can be restored by configuring the server with --include-cbor
to always include binary version of some specific objects such as transactions. This flag can be declined in more fine-grained flags if necessary:
--include-transaction-cbor
--include-metadata-cbor
--include-script-cbor
where --include-cbor
turns all three flags at once.
⚠️ BREAKING-CHANGE ⚠️ Compact mode is no more. Responses are more compact by default already and it is no longer possible to ask for a compact mode.
⚠️ BREAKING-CHANGE ⚠️ Ogmios no longer returns null or empty fields. Where a field's value would be null
prior to v6.0.0, Ogmios now simply omit the field altogether. This is also true for most responses that return empty lists as well. All-in-all, please refer to the documentation / JSON-schema in case of doubts (fields that may be omitted are no longer marked as required
).
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