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 execution units in case skeletons input also had datum by @sourabhxyz in #230 - This was an unfortunate bug in Atlas which has now been resolved.
- Feat 228: New local provider using Kupo by @sourabhxyz in #229 - Atlas now has an effecient, light-weight local provider with the help of Kupo which supports Mainnet, Preprod, Preview and our local private network. https://atlas-app.io/getting-started/integration-tests & https://atlas-app.io/getting-started/endpoints would soon be updated to illustrate it's usage. This PR also deleted some other local provider options that we were having partial support of, namely "Lite chain index" & "Cardano DB Sync" whose support was limited to only privnet tests.
- Feat 231: UTxO at payment credential support for all providers by @sourabhxyz in #232 - The
GYTxQueryMonad
methodutxosAtPaymentCredential
is now having support of all the providers that Atlas supports.
Other miscellaneous changes
- Maestro provider tests to test for all the functions by @TomasOsiecki in #132
- [CI] Maestro Token Secret #136 by @4TT1L4 in #137
- [CI] Secret for preprod-submit-test-wallet.skey #145 by @4TT1L4 in #146
- [CI] Secret for blockfrost-config.json #147 by @4TT1L4 in #148
- [CI] Secret for blockfrost-config.json #147 by @4TT1L4 in #149
- [CI] Secret for blockfrost-config.json#147 by @4TT1L4 in #151
- [CI] Run CI build in the base context #194 by @4TT1L4 in #195
- [CI] Run CI build in the base context #194 by @4TT1L4 in #200
- Feat 184 & 189: Reduce bound for collateral requirement & select coll input s.t. generated coll output satisfy min ada req. by @sourabhxyz in #187
- Feat 178: Fix for provider tests to work with Maestro free tier key by @sourabhxyz in #218
New Contributors
- @TomasOsiecki made their first contribution in #132
- @Micrograx made their first contribution in #183
- @TotallyNotChase made their first contribution in #192 - Chase has contributed a lot before Atlas was open-sourced.
- @Dr-Mazen-Khaddaj made their first contribution in #214
Full Changelog: v0.2.0...v0.3.0