Releases: geniusyield/atlas
Releases · geniusyield/atlas
v0.3.0
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 namedatlas
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
withutxosAtAddressesWithDatums
& Feat 139: Providers mashup test by @sourabhxyz in #134 - Haskell Maestro SDK was integrated. Few more functions were added to our provider abstraction in theGYTxQueryMonad
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 runningrunGYTxMonadNodeParallelF
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 callutxosDatumsPure
instead ofutxosDatums
. - 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
andGYAssetClass
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 namedutxosAtPaymentCredential
. - 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 ofGYTxQueryMonad
toslotOfCurrentBlock
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, thesubmitTx
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...
v0.2.0
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
toctxUser9
) 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 whereNothing
represents that framework is to choose for collateral (if required) and inJust
case we get a tuple of reference to collateral with a boolean, if this boolean isFalse
, 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 isTrue
, framework checks if the given collateral UTxO has exactly 5 ada or not, if yes, behavior is likeFalse
case and if no, behavior is asNothing
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 ofsomeUTxO
if required, such as one done insomeUTxOWithoutRefScript
.
- In particular, there is additions to
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'ssignTx
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 withctxUserF
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
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
- @4TT1L4 made their first contribution in #2
- @Vardominator made their first contribution in #3
- @MatD9 made their first contribution in #4
- @piyushthapa made their first contribution in #52
- @alegadea made their first contribution in #72
- @sourabhxyz made their first contribution in #74
- @iburzynski made their first contribution in #90
Full Changelog: https://github.com/geniusyield/atlas/commits/v0.1.0