Skip to content

Releases: CardanoSolutions/ogmios

v6.4.0

06 Jun 08:53
v6.4.0
4dbf1f3
Compare
Choose a tag to compare

Photo: Sammy Wong

Added

  • Integrated with cardano-node==8.11.0-pre.

  • A new transaction submission / evaluation error:

    • UnauthorizedGovernanceAction (code=3165) raised when trying to submit a governance action other than protocol parameters change, hard fork initiation or info during the bootstrapping phase of the Conway era.
  • A new queryNetwork error:

    • InvalidGenesis (code=2004) raised when trying to query a genesis configuration which is invalid or missing (for instance, when there's a mismatch between the Conway configuration and the underlying ledger library parsing it). (🐞 @AndrewWestberg)

Changed

  • The data.providedCollateral and data.computedTotalCollateral from submission errors with code 3128 and 3135 can now be negative Ada values.

  • TypeScript Fixed missing conway option in the state query client for the genesisConfiguration query.

Removed

  • N/A

Tested with

  • cardano-node == 8.9.3 (Mainnet, Preprod, Preview)
  • cardano-node == 8.11.0-pre (SanchoNet)

Docker image(s)

Standalone

With cardano-node

Details

v6.3.0...v6.4.0

v6.3.0

07 May 16:21
v6.3.0
f6fd8d6
Compare
Choose a tag to compare

Photo: Hudson Hintze

Added

Changed

Warning

  • BREAKING-CHANGE: Adjusted the schema of constitutional committee certificates in order to harmonize responses between certificates and the new constitutionalCommittee ledger query.
beforeafter
{
  "type": "constitutionalCommitteeHotKeyRegistration",
  "member": {
    "id": "0000",
  },
  "hotKey": "0000"
}
{
  "type": "constitutionalCommitteeDelegation",
  "member": {
    "id": "0000",
  },
  "delegate": {
    "status": "authorized",
    "id": "000"
  }
}
  • Fixed integer overflow happening when encoding relative time bounds in era summary, causing times to be shown as negative values. (🐞 @codybutz, 🔨@KtorZ)

  • Fixed parsing of the constitution ledger query which now resolves properly. (🔨 @KtorZ)

Removed

  • N/A

Tested with

  • cardano-node == 8.9.2 (Mainnet, Preprod, Preview)
  • cardano-node == 8.10.1-pre (SanchoNet)

Docker image(s )

Details

v6.2.0...v6.3.0

v6.2.0

22 Mar 17:07
v6.2.0
088501e
Compare
Choose a tag to compare

Photo: Etienne Girardet

Added

  • Transaction evaluation now automatically UTxO available from processing the mempool. This allows for chaining smart-contract transactions without the need to track the UTxO state on from the client's side. Ogmios now internally maintains a view of the node's mempool and ensure a consistent access to it when evaluating transaction. See also #375.

  • More log traces around transaction evaluation and submission.

Changed

  • Retry HasTx on false with id wrapped in different eras, to cope with the hard-fork combinator inability to compare transaction id across eras. See also #376.

Removed

  • N/A

Tested with

  • cardano-node == 8.9.0 (Mainnet, Preprod, Preview, SanchoNet)

Docker image(s )

Details

v6.1.0...v6.2.0

v6.1.0

21 Feb 13:23
v6.1.0
dabab14
Compare
Choose a tag to compare

Photo: Joseph Barrientos

Added

  • Two new script purposes (available from the Conway era onward):

    • propose: for proposing new governance actions. When itemized, comes with a proposal field that documents the associated governance proposal.
    • vote: for voting on a proposed governance action. When itemized, comes with an issuer field that documents the associated governance issuer.
  • A new field guardrails is now present on governance proposals of type treasuryWithdrawals and protocolParametersUpdate. It is either null or contains a script hash (blake2b, 28 bytes) that indicates the additional guardrails script that must successfully pass for the governance proposal to be considered valid.

  • The object returned from ledgerState/rewardAccountSummaries now contain an extra deposit field equals to the amount deposited and held by the associated stake credential.

  • A new query queryLedgerState/constitution to obtain the current on-chain constitution. This query is only available when the ledger is in the Conway era onwards.

Changed

  • Configuration files no longer contain mainnet_p2p, preprod_p2p, preview_p2p and sanchonet_p2p folders. The p2p configs are now replacing the default configurations; so we're back to configuration folders for mainnet, preprod, preview and sanchonet.

  • The constitution hash is now wrapped in a singleton object guardrails, to better capture its meaning. It isn't the hash of the constitution script (which is covered by the anchor already), but the hash of the additional script policy which controls governance proposals of certain actions (e.g. treasury withdrawals, protocol parameters).

  • Renamed all fields anchor to metadata in the Conway era objects to be more consistent with other occurences of metadata in previous eras.

  • Fixed a few minor JSON-schema oversights such as TransactionOutputReference's index now being a UInt64 (instead of UInt32).

Removed

  • InternalLedgerTypeConversionError which can no longer occur.

Tested with

  • cardano-node == 8.7.3 (Mainnet, Preprod, Preview)
  • cardano-node == 8.8.0-pre (SanchoNet)

Docker image(s )

Details

v6.0.3...v6.1.0

v6.0.3

03 Feb 10:51
v6.0.3
523f1cd
Compare
Choose a tag to compare

Photo: Mikhail Vasilyev

Added

  • A new transaction submission / evaluation error (code: 3161) returned when a script evaluation goes beyond its allocated budget.

Changed

  • Mapped some internal errors to actual predicate failures. Before, Ogmios would simply return an InternalLedgerTypeConversionError with code 3999 in cases where it should have been returning a more meaningful error resulting from either an excessive script evaluation (see new introduced error 3161) or a failed attempt to create a script context for a given transaction.

  • TypeScript Renamed types regarding Metadatum in the TypeScript client to provide more meaningful names.

Removed

  • N/A

Tested with

  • cardano-node == 8.7.2 (Mainnet, Preprod, Preview, SanchoNet)
  • cardano-node == 8.7.3 (Mainnet, Preprod, Preview, SanchoNet)

Details

v6.0.2...v6.0.3

v6.0.2

31 Jan 09:59
v6.0.2
155aa4b
Compare
Choose a tag to compare

Photo: Michel Bosma

Added

  • N/A

Changed

  • Fixed 'preview' showing as 'preprod' (and vice-versa) in error message on start-up when connecting to a wrong test network.

  • Fixed parsing of base16-encoded CBOR transaction on ogmios inspect transaction; would wrongly expect an extra singleton object before that.

  • TypeScript Fixes identification of submit/evaluate transaction responses, now using the method field instead of relying on the mirror. Should fix clashes with other requests. (🔨 @mirelon)

Removed

  • N/A

Tested with

  • cardano-node == 8.7.2 (Mainnet, Preprod, Preview, SanchoNet)
  • cardano-node == 8.7.3 (Mainnet, Preprod, Preview, SanchoNet)

Details

v6.0.1...v6.0.2

v6.0.1

22 Jan 19:55
v6.0.1
c1a2e30
Compare
Choose a tag to compare

Photo: Sigmund

Added

  • Introduced a new runtime configuration flag --strict-rpc to allow removing the extra 'method' field provided in the server response. While the JSON-RPC specification doesn't explicitly disallow the use of extra fields in the response, some libraries have proven being quite strict in the inputs they accept, resulting in errors when receiving Ogmios' responses. The flag is off by default. 🐛 @szg251 - see #360.

Changed

  • Fixed various descriptions and oversights in the JSON specifications (and thus documentation). In particular, the Getting Started section on the website has been slightly reworked to be easier to navigate and to include information about configuring Ogmios. 🔎 @AndrewWestberg

Removed

  • N/A

Tested with

  • cardano-node == 8.7.2 (Mainnet, Preprod, Preview, SanchoNet)
  • cardano-node == 8.7.3 (Mainnet, Preprod, Preview, SanchoNet)

Details

v6.0.0...v6.0.1

v6.0.0

10 Jan 08:26
v6.0.0
f73f2da
Compare
Choose a tag to compare

Photo: National Cancer Institute

Caution

For those integrating from a previous release candidate (e.g. v6.0.0-rc5), please acknowledge the following (hopefully last) important changes to the API:

  • The old format (pre v6.0.0-rc1) for metadata can be recovered on-demand using the --metadata-detailed-schema flag.
  • All values are now returned as a map of maps; including in places where there's only lovelace (e.g. fee, total collateral, etc..)
    Old (v6.0.0-rc5) New (v6.0.0)
    
    {
      "lovelace": 123
    }
    
    
    {
      "ada": {
        "lovelace": 123
      }
    }
    
  • The format of redeemer pointers has now changed; redeemers are no longer encoded as plain strings, but as objects. Maps from redeemer pointers to validators have therefore been inlined as associative lists. As follows:
    Old (v6.0.0-rc5) New (v6.0.0)
    
    
    {
      "publish:2": "a0"
    }
    
    
    {
      "validator": {
        "index": 2,
        "purpose": "publish"
      },
      "redeemer": "a0"
    }
    

Added

  • 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 but mostly stable, there's a non-zero chance some of the interface will slightly adjust in the future.

  • 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. It is a reasonable approach for many queries that aren't stateful (e.g. direct queries via the local-state-query protocol, or simply transactions submission / evaluation).

    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.

  • Multi-arch (amd64, arm64) docker images are now also available.

Changed

  • 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.

  • TypeScript 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.

Changed

Tip

There are still many test vectors available for every element of the Ogmios API. Use them!

  • ⚠️ 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).

  • 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.

Removed

  • ⚠️ 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).

Tested with

  • cardano-node == 8.7.2 (Mainnet, Preprod, Preview, SanchoNet)

Details

v5.6.0...v6.0.0

A big thank to all those who provided feedback, reported issues, suggested improvements and contributed to make them happen.

Contributions & acknowledgements

v5.6.0

11 Aug 16:48
v5.6.0
a8aab6b
Compare
Choose a tag to compare

Photo: Delaney Van

Added

  • 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 few other formats. Yet it is unsound in the general case since not every on-chain metadata can actually be represented as JavaScript objects.

Changed

  • 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. See #301 (:hammer: @mkazlauskas).

Removed

N/A

Details

v5.5.8...v5.6.0

v5.5.8

25 Jan 18:03
v5.5.8
0ad6733
Compare
Choose a tag to compare

Photo: USGS

Added

Changed

  • Bump internal packages to match cardano-node@1.35.4 dependencies set.

  • Bundle the docker image with more recent versions of the cardano-configurations. See #283 (:bug: @nejcr)

  • 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. See #298 (:bug: @Kartiiyer12)

  • TypeScript Add missing required constraints in the JSON schema for Byron witness representation that caused TypeScript types to be generated as optional. See #285 (:bug: @IvayloAndonov)

Removed

N/A

Details

v5.5.7...v5.5.8