Skip to content

Releases: geniusyield/atlas

v0.3.0

13 Sep 11:35
9e80824
Compare
Choose a tag to compare

What's Changed

  • Feat 129: Update to PSM test suite to have memory of paid lovelaces for fees & min ada requirements by @sourabhxyz in #131 - This is useful to not hard-code these extra involved ada in the PSM tests. Example at https://atlas-app.io/getting-started/unit-tests would be soon updated to illustrate for it.
  • Feat 128: Change package name to atlas-cardano by @sourabhxyz in #133 - This was mainly done as there is already a package named atlas in Hackage.
  • Feat 126: Blockfrost provider for tests by @sourabhxyz in #127 - Atlas now also has a Blockfrost provider. However, for some of the provider functions (the ones which allow getting datum information of the UTxO in case UTxO only has hash of the datum) provided by Atlas, it's usage is not optimal. As mentioned, Atlas has a provider function to query for UTxOs at address(s) along with their datum information. Maestro (see resolve_datums query parameter) allows getting datums for the asked UTxOs in the same request, however, for Blockfrost, we would have to hit datums for each of the returned UTxO having the datum hash, which is clearly not optimal. Having said this, having an option of one more remote provider is useful to test results of Maestro provider, etc.
  • Feat 152: Transaction requirements for interoperability with hardware wallets @sourabhxyz in
    • #153 (sort for integer keys in map & also simplify outputs to legacy_transaction_output format)

    • #180 (sort for more type of keys)

    • #174 (ensure no indefinite-length terms are present in CBOR encoding of transaction)

      These were done in accordance CIP-21. Now the generated transaction body should work well with hardware wallets.

  • Feat 155: Multi-Sig support by @sourabhxyz in #156 - Kindly see the transaction signing functions here.
  • Feat 130: Integrate Maestro SDK, Feat 135: Extending GYTxQueryMonad with utxosAtAddressesWithDatums & Feat 139: Providers mashup test by @sourabhxyz in #134 - Haskell Maestro SDK was integrated. Few more functions were added to our provider abstraction in the GYTxQueryMonad class to allow for querying of UTxOs along with their datums. This is useful for providers which provide optimal support for such an request.
  • Allow multi sigs in test by @piyushthapa in #158 - Allows signing with multiple wallets in unit tests written using our plutus-simple-model provider with the help of sendSkeletonWithWallets function.
  • Feat 159: Bug fix in coin selection by @sourabhxyz in #160 - Internal bug fix.
  • Feat 141: Better error messages by @sourabhxyz in #142 - Now BuildTxExUnitsTooBig, BuildTxSizeTooBig also give the corresponding bounds as mentioned in the protocol parameters. BuildTxCollateralShortFall also mentions the transaction collateral requirement besides the shortfall.
  • runGyTxMonadParallel with strategy by @piyushthapa in #164 - new function runGYTxMonadNodeParallelWithStrategy which allows running runGYTxMonadNodeParallelF with given strategy.
  • Feat 140: Quick Jump haddock fix by @sourabhxyz in #165 - Fixes "Quick Jump" header for our haddock documentation.
  • Feat 143: Improve coin selection by @sourabhxyz in #163 - Brings various internal improvements into our coin selection computation.
  • Feat 170: Remove over-bound for change address as we already know it's value by @sourabhxyz in #171 - Internal coin selection improvement.
  • Feat 161: Return built transaction bodies in same order as given by @sourabhxyz in #162.
  • Fixes availableUTxOs function to use optimized utxosAtAddresses endpoint by @Micrograx in #183.
  • Feat 181: Maestro V1 endpoints support by @sourabhxyz in #182 - Maestro recently released V1 family of endpoints, correspondingly Atlas was updated for the same.
  • Feat 175: Pure variant of utxosDatums, Feat 177: utxosAtTxOutRefsWithDatums provider method by @sourabhxyz in #176 - In case you already have datum information for your UTxOs (say by using utxosAtAddressesWithDatums) you can call utxosDatumsPure instead of utxosDatums.
  • Feat 190: Latest era type for Tx Witness by @sourabhxyz in #191 - Our witness parser was from ShellyMA era which was sufficient for witnesses returned by browser wallet's signTx CIP-30 method. However, Eternl at times gave witness with more information, hence we updated this parser.
  • Add some JSON key instances (and swagger paramschema) for GYMintingPolicyId and GYAssetClass by @TotallyNotChase in #192.
  • Feat 193: Reference script support for minting policies by @sourabhxyz in #198 - Earlier, we were only supporting creation of outputs (& likewise referring to them later for witness) containing validators, but now Atlas is extended to also support minting policies.
  • Add Support for Maestro Preview Network by @Dr-Mazen-Khaddaj in #214.
  • Feat 216: Forwarding correct UTxO information to avoid it being overridden by @sourabhxyz in #217 - This is an internal bug fix.
  • Feat 207: Avoid simplifying outputs to pre-babbage format by @sourabhxyz in #208 - We were earlier simplifying outputs of generated transaction body to legacy_transaction_output whenever possible. But this is now no longer done.
  • Feat 186: Query by payment credential by @sourabhxyz in #188 - A new GYTxQueryMonad method is added to allow query for UTxOs at a payment credential. It's named utxosAtPaymentCredential.
  • Feat 166 & 167: Update to latest node 8.1.1 & GHC v9.2.8 support by @sourabhxyz in #202 - Big PR integrating all the latest changes from the involved Cardano libraries to make Atlas up to date. With this, we dropped the support of GHC 8.10.7 (plutus-tx-plugin requires higher GHC version) and now instead support GHC 9.2.8. Our PSM fork was updated with changes mentioned here. Also, the privnet is changed to work with latest node (8.1.2) here. Since writing smart contract is slightly different in latest haskell Plutus libraries, https://atlas-app.io/getting-started/smart-contract-intro would soon be updated to illustrate for it, likewise https://atlas-app.io/getting-started/integration-tests would be updated to illustrate usage of privnet against node 8.1.2.
  • Adding ref-script to the script map for PSM to work. by @alegadea in #227 - In case the mentioned reference input (via mustHaveRefInput) is also have a script in it, i.e., if the UTxO mentioned as reference input was also having a script, our plutus-simple-provider was throwing an error, which is resolved for in this PR.
  • Feat 199: Add awaitTxConfirmation function by @alegadea in #203 - This feature allows to wait until submitted transaction is seen on chain, under the constraints of specified GYAwaitTxParameters.
  • Feat [219, 220, 221]: Make privnet submitTx robust, rename gyGetCurrentSlot, disable cache option by @sourabhxyz in #222 - This breaking change renames currentSlot method of GYTxQueryMonad to slotOfCurrentBlock to clarify it's intent as it gives the slot of the chain tip, i.e., the most recent block. Also, now whenever a transaction is submitted for in privnet, the submitTx function would return only when it sees that the submitted transaction is successfully onchain, using the feature introduced in #203 to await for transaction. Also, Atlas had an undocumented support of experimental "cache" feature. As this feature is still in development, it's decided to not expose it to end users.
  • Feat 224: Fixed wrong calculation of executi...
Read more

v0.2.0

05 May 12:05
28f7d47
Compare
Choose a tag to compare

Breaking Framework Changes

  • Test suite to test against private network has undergone following changes:
    • Type to represent context's user now doesn't have collateral (in PR #108), see it's fields here.
    • Context now has one funder and 8 other users, these other users (ctxUser2 to ctxUser9) start with the same amount of funds and funder (ctxUserF) in contrast starts with a lot more ada (done in PR #96). See more details about exact funds in our guide for it, here.
    • Redundant type UserIdx is removed (in PR #87), changing the interface of functions in Ctx.hs, again refer to our guide to see use of latest interface.
    • Function assertUserFunds has been changed to check against exact transaction fees rather than in window in PR #100.
  • Framework now has support for multi-asset collateral (PR #97 & PR #108), removing the need for dapps to require a UTxO for collateral as framework is capable for selecting suitable UTxO for it. For more details, see these two pages of our guide, Creating Endpoints & Browser Integration. This has led to interface of functions in Node.hs to change where instead of requiring reference to collateral UTxO, it's now a tuple inside Maybe value where Nothing represents that framework is to choose for collateral (if required) and in Just case we get a tuple of reference to collateral with a boolean, if this boolean is False, given collateral is taken as collateral to build transaction and framework doesn't spend it (unless explicitly mentioned by transaction skeleton) and if the boolean is True, framework checks if the given collateral UTxO has exactly 5 ada or not, if yes, behavior is like False case and if no, behavior is as Nothing case, i.e., framework picks suitable UTxO to use as collateral and is also free to spend it.
  • someUTxO now takes parameter to denote for script language (changed for in PR #114) and only returns UTxO which is translatable to that language, i.e., usable by script of that language.
    • In particular, there is additions to GYTxMonad, namely, ownAddresses & availableUTxOs (in PR #124) which would help in writing custom version of someUTxO if required, such as one done in someUTxOWithoutRefScript.

Other Framework Features

  • Earlier, when performing browser integration, there was need to use a library such as CML to add for witness (obtained from wallet api's signTx method) to our transaction body, which just misses this key witness. Besides complication involved in using & understanding another library, this led to issues where transaction hash was getting modified due to different representation of CBOR for involved structures in such libraries. Adding for this is now possible to be done entirely using Atlas (done in PR #99), as illustrated in Creating Endpoints & Browser Integration section of guide.

All PR's involved in this Change

  • Issue #45: Remove redundant UserIdx type by @sourabhxyz in #87
  • Function to assert for exact fee in privnet by @sourabhxyz in #100
  • Remove redundant constraints in cabal.project by @iburzynski in #89
  • Replaced ctxUser1 usage with ctxUserF and creating new users - all having same status by @sourabhxyz in #96
  • Feat 98: Support to add witness (obtained from api.signTx) to original tx cbor by @sourabhxyz in #99
  • add logging to GYTxQueryMonad by @piyushthapa in #76
  • Feat 95: Multi asset collateral support by @sourabhxyz in #97
  • Feat 104: Utilize multi asset collateral support to not explicitly require collateral by @sourabhxyz in #108
  • Update CODEOWNERS by @MatD9 in #116
  • Add Pr template #17 by @Haluk-GeniusYield in #117
  • Logging skeletons before building the Txs by @alegadea in #111
  • Fix incorrect links in Readme file by @sourabhxyz in #115
  • Feat 109 & 113: Parametric someUTxO by @sourabhxyz in #114
  • Feat 123 & 125: Adding method to Node's monad to get for usable UTxOs & own addresses by @sourabhxyz in #124
  • Feat 105: Elaborate cabal file & include version bounds by @sourabhxyz in #112
  • support darwin arch by @piyushthapa in #120

New Contributors

  • @Haluk-GeniusYield made their first contribution in #117

Full Changelog: v0.1.0...v0.2.0

v0.1.0

06 Apr 16:57
c0754d2
Compare
Choose a tag to compare

What's Changed

  • Updated README.md - Turn logos into links by @4TT1L4 in #2
  • Initial commit by @Vardominator in #3
  • [DOCS] Wrong workflow link for GitHub Actions Badge by @4TT1L4 in #7
  • Create Security file by @MatD9 in #4
  • Move haskell-pre-commit-hooks to the Atlas repo#12 by @4TT1L4 in #14
  • Setup and deploy Haddock documentation page by @4TT1L4 in #11
  • Incorporate doctests into CI pipeline by @4TT1L4 in #9
  • Move haskell-pre-commit-hooks to the Atlas repo #12 by @4TT1L4 in #15
  • Add pre-commit hook to prevent commits to main#13 by @4TT1L4 in #16
  • add pre commit hook to prevent commits to main by @4TT1L4 in #55
  • capitalize badge titles and add build status badge by @4TT1L4 in #58
  • [TODO] Create issues for the TODO comments by @4TT1L4 in #41
  • Warning Tab character found in Gift.hs #60 by @4TT1L4 in #61
  • use Latest haskell.nix in flake.nix by @piyushthapa in #52
  • Generate haddock documentation on GitHub Actions by @4TT1L4 in #73
  • Adding new testing utility functions by @alegadea in #72
  • Update CODEOWNERS by @MatD9 in #79
  • Setup and deploy Haddock documentation page #10 by @4TT1L4 in #77
  • Update haddock links in README #80 by @4TT1L4 in #81
  • Issue #47: Add Reference Script in UTxO entry for PSM by @sourabhxyz in #74
  • [Issue #44] Prevent coin balancer from picking reference input UTxO from the set of additional UTxOs by @sourabhxyz in #59
  • Dynamic version in GH workflows by @4TT1L4 in #83
  • Update haddock links in README #80 by @4TT1L4 in #85
  • Remove duplicate cardano-address package from cabal.project by @iburzynski in #90
  • Removed unneeded additional version component by @sourabhxyz in #91
  • 19 release workflow by @4TT1L4 in #88

New Contributors

Full Changelog: https://github.com/geniusyield/atlas/commits/v0.1.0