Emurgo / cardano-serialization-lib

This is a library, written in Rust, for serialization & deserialization of data structures used in Cardano's Haskell implementation of Alonzo along with useful utility functions.
Other
230 stars 124 forks source link

Conway #636

Open lisicky opened 11 months ago

lisicky commented 11 months ago

Update Summary

1. Address Types:

2. PlutusV3 Support:

3. Token Handling:

4. New Certificates:

Added support for the following certificates (can be added via CertificatesBuilder):

5. Reference Script Fee:

6. New Builder Types:

7. Extended Coin Selection Functions:

TransactionBuilder has two new coin selection functions to account for change output and collateral return during fee estimation:

8. New Protocol Types for Governance-related Actions:

9. Serialization Improvement:

10. Set Behavior and Add Function:

The following types work as a set, and their add function returns a boolean. It returns true if the element is added and false if the element already exists in the collection. In the case of false, the size of the collection remains unchanged:

Breaking Changes:

StakeCredential Renaming:

TransactionBody Struct Changes:

Fee Calculation Functions Changes:

ADA Requirement Function Updates:

TransactionBuilderConfigBuilder Adjustments:

NetworkInfo Simplification:

Script Transaction Inputs Overhaul:

PlutusScriptSource Enhancement:

Script Source Unification:

Multiple Mints:

Referenced Native Script:

Duplicated Keys Support in Plutus Datum Maps:

Ref Script Fee Support:

sonarqube-yoroi[bot] commented 4 months ago

SonarQube Quality Gate

Quality Gate failed

Failed condition 0.0% 0.0% Coverage on New Code (is less than 80%)

See analysis details on SonarQube

klarkc commented 4 months ago

@lisicky I'm using this branch in mlabs-haskell/cardano-serialization-lib-gc#1, it looks MintsAssets flow definition is not matching MintsAssets rust definition

lisicky commented 4 months ago

Hi @klarkc ! Could you explain the problem ?

lisicky commented 4 months ago

@klarkc thanks, double checked it. Will fix it in 1h

lisicky commented 4 months ago

@klarkc CSL12 alpha 23 is released

klarkc commented 4 months ago

Tested here, fixed, thanks.

Just another thing, it looks like Mint:get now returns MintsAssets instead of MintAssets, this caused a breaking change here because MintsAssets lacks the keys function. It might be helpful for users to notice this change in the changelog - not only a rename, but a whole different structure.

https://github.com/Emurgo/cardano-serialization-lib/blob/ce1cad2276de3f26ed6140e79a33bb305d498b7a/rust/src/lib.rs#L3607

https://github.com/Emurgo/cardano-serialization-lib/blob/3e3380ce3ea8c1f2f27bf81b48ea489756b38f37/rust/src/lib.rs#L2074

lisicky commented 4 months ago

Thanks @klarkc, CSL 12 is not finished yet, and something can be missed

errfrom commented 2 months ago

Hi there, I'm integrating these changes into https://github.com/mlabs-haskell/purescript-cardano-serialization-lib/pull/4 right now and noticed that PoolVotingThresholds is lacking a getter for security_relevant_threshold. Also, committee_term_limit in ProtocolParamUpdate should probably be of type Option<Epoch> rather than Option<u32>.

lisicky commented 1 month ago

Hi there, I'm integrating these changes into mlabs-haskell/purescript-cardano-serialization-lib#4 right now and noticed that PoolVotingThresholds is lacking a getter for security_relevant_threshold. Also, committee_term_limit in ProtocolParamUpdate should probably be of type Option<Epoch> rather than Option<u32>.

Thanks @errfrom ! We will fix it shortly

errfrom commented 1 month ago

Thanks for addressing it, @lisicky! Can you publish the latest version on NPM?

lisicky commented 1 month ago

@errfrom new alpha has been released