Releases: Emurgo/cardano-serialization-lib
12.0.0 Conway's Game Of Li... CSL
We are happy to announce a new CSL release.
Release Summary
1. Address Types:
- Added
network_id
getter to Address types. - Introduced new address type:
Malformed
. Used when it's impossible to deserialize an address in structs where the address is a nested type. - New getter for address:
kind()
. Returns an enum with address type. - New getter for address:
payment_cred()
. Returns payment credential. - New function for address:
is_malformed()
.
2. PlutusV3 Support:
- Added PlutusV3 support in all Plutus-specific structures.
3. Token Handling:
- Prohibited sending and minting of zero tokens.
4. New Certificates:
Added support for the following certificates (can be added via CertificatesBuilder
):
CommitteeColdResign
CommitteeHotAuth
DrepDeregistration
DrepRegistration
DrepUpdate
StakeAndVoteDelegation
StakeRegistrationAndDelegation
StakeVoteRegistrationAndDelegation
VoteDelegation
VoteRegistrationAndDelegation
5. Reference Script Fee:
TransactionBuilderConfigBuilder
: Addedref_script_coins_per_byte
setter to account for new fees for reference script inputs.PlutusScriptSource
: Now requires an additional mandatory parameter for script size for reference inputs.
6. New Builder Types:
VotingBuilder
: For participation in voting for governance actions.VotingProposalBuilder
: For proposing voting actions.TransactionBuilder
: Now has setters for these new builders.
7. Extended Coin Selection Functions:
TransactionBuilder
has two new coin selection functions to account for change output and collateral return during fee estimation:
add_inputs_from_and_change
: Considers change calculation; no need to calladd_change_if_needed
after it.add_inputs_from_and_change_with_collateral_return
: Considers change calculation and collateral return; no need to calladd_change_if_needed
after it.- NOTE:
add_inputs_from_and_change_with_collateral_return
doesn't perform coin selection for collateral inputs; you need to specify collateral inputs manually.
- NOTE:
8. New Protocol Types for Governance-related Actions:
VotingProcedure
: Vote for specific governance action proposal.VotingProcedures
: Collection of votes.VotingProposal
: Proposal of specific governance action.VotingProposals
: Collection of VotingProposal.DRep
: Abstraction of delegate representative; can be a credential or a predefined DRep type.Voter
: Abstraction of voter; can be DRep, SPO, or CC member.GovernanceActionId
: ID of governance action; tuple of (tx_hash, index_of_voting_proposal). Similar to tx input abstraction.Anchor
: Abstraction to specify off-chain data; tuple of URL and data hash.- Governance action types:
HardForkInitiationAction
InfoAction
NewConstitutionAction
NoConfidenceAction
ParameterChangeAction
TreasuryWithdrawalsAction
UpdateCommitteeAction
9. Serialization Improvement:
- CSL now doesn't serialize empty collections for most witness types, in accordance with CDDL.
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:
Credentials
Ed25519KeyHashes
Vkeywitnesses
VotingProposals
TransactionInputs
Certificates
11. New Transaction Builder Functions:
TransactionBuilder
has a new functions to set donation to the treasury (TransactionBuilder.set_donation()
) and the current treasury value (TransactionBuilder.set_current_treasury_value()
). However, if you use these fields, the Cardano node will reject all non-Plutus V3 scripts. These transaction fields can help facilitate direct donations to the treasury and limit transaction execution based on the current treasury value.
12. New Packages With GC Support (EXPERIMENTAL):
CSL now includes NPM packages with GC (Garbage Collection) support, which means you no longer need to manually call .free
for every CSL object. This was achieved by enabling the WEAK_REF
flag on wasm_bindgen
, and it utilizes FinalizationRegistry
to automatically call free
for each CSL struct when it is no longer needed. However, please use this feature with caution, as it may lead to unpredictable behavior. For package links, refer to the packages in the "Published" section.
Breaking Changes:
StakeCredential Renaming:
StakeCredential
was renamed toCredential
.StakeCredKind
was renamed toCredKind
.StakeCredentials
was renamed toCredentials
.
TransactionBody Struct Changes:
- Removed:
multiassets()
due to its confusing naming. - Note: Use
mint()
to obtain information about minting in a transaction.
Fee Calculation Functions Changes:
- Removed: All functions based on 'cons per word', aligning with the protocol's transition to 'coins per byte' in the Babbage era.
- Replacement Guidelines:
- Use
new_coins_per_byte
instead of the removednew_coins_per_word
inDataCost
. - In
TransactionOutputAmountBuilder
, switch towith_asset_and_min_required_coin_by_utxo_cost
, aswith_asset_and_min_required_coin
is now removed.
- Use
ADA Requirement Function Updates:
- Removed:
min_ada_required
due to its inability to account for full transaction output fields and reliance on the outdated coins per word parameter. - Replacement Guideline: Use
min_ada_for_output
.
TransactionBuilderConfigBuilder Adjustments:
- Removed:
coins_per_utxo_word
. - Replacement Guideline: Use
coins_per_utxo_byte
.
NetworkInfo Simplification:
- Removed:
testnet()
function, as the testnet has been replaced by testnet preprod and testnet preview.
Script Transaction Inputs Overhaul:
- Removed: Functions like
add_script_input
,add_input
,count_missing_input_scripts
,add_required_script_input_witnesses
, andadd_required_plutus_input_scripts
, used for adding script transaction inputs without a script witness. - Replacement Guideline:
- For non-script inputs: Use
add_regular_input
,add_key_input
, oradd_bootstrap_input
. - For script inputs: Use
add_native_script_input
oradd_plutus_script_input
.
- For non-script inputs: Use
PlutusScriptSource Enhancement:
- Updated:
new_ref_input
inPlutusScriptSource
now includes a language version argument, replacing the oldnew_ref_input
. - Removed:
new_ref_input_with_lang_ver
becausenew_ref_input
has the same functionality and no need for a specific function with a language version. - Changed:
PlutusScriptSource.new_ref_input
now requiresscript_size
parameter to respectref_script_coins_per_byte
from protocol parameters and correct fee calculation from Conway era. You need also setref_script_coins_per_byte
viaTransactionBuilderConfig
to use it correctly.
NativeScriptSource Enhancement:
- Changed:
NativeScriptSource.new_ref_input
now requiresscript_size
parameter to respectref_script_coins_per_byte
from protocol parameters and correct fee calculation from Conway era. You need also setref_script_coins_per_byte
viaTransactionBuilderConfig
to use it correctly.
Script Source Unification:
- Updated:
NativeScriptSource
andPlutusScriptSource
now hasrequired_signers
option. To set it, useNativeScriptSource.set_required_signers
orPlutusScriptSource.set_required_signers
andTrsansactionBuilder
will allocate space for theserequired_signers
during fee calculation.
Multiple Mints:
- Updated:
Mint.get()
now returnsMintsAssets
type to respect key duplication inMint
field. - Replacement Guideline: Use
MintsAssets
instead ofMintAssets
.
Referenced Native Script:
- Changed:
TxInputsBuilder.add_native_script_input
now requiresNativeScriptSource
to support referenced native script. UseNativeScriptSource::new
to useNativeScript
witness as before, and useNativeScriptSource::new_ref_input
to use referenced native script. - Replacement Guideline: Use
NativeScriptSource::new(NativeScript::new())
instead ofNativeScript::new()
.
Duplicated Keys Support in Plutus Datum Maps:
- Changed:
PlutusMap.get
returns an instance ofPlutusMapValues
,PlutusMap.insert
accepts an instance ofPlutusMapValues
to support duplicated keys in a datum map. - Replacement Guideline: Use
PlutusMapValues.add
and thenPlutusMap.insert
or just usePlutusMap.add_value
.PlutusMapValues
has an accessor functionPlutusMapValues.get()
to get a specific value andPlutusMapValues.len()
to get the total number of values.
Ref Script Fee Support:
- Changed:
TransitionBuilder
now can throw an error during the building process if you are using reference inputs with a Plutus script. To avoid it, you need to useTransactionBuilderConfigBuilder.ref_script_coins_per_byte
to specify ref script byte cost and have correct fee calculations.PlutusScriptSource.new_ref_input
requires script size to have correct fee calculation. - Note: If you use CSL in a pre-Conway environment, you can set script size and
ref_script_coins_per_byte
to zero.
Transaction Inputs and Reference Inputs Deduplication:
- Changed:
TransactionBuilder
now automatically removes reference inputs that are also present in the transaction inputs field. The Cardano node will not accept a transaction that has the same transaction input in both the transaction inputs field and the reference inputs field. The deduplication logic applies to all reference inputs set via builders, except for those explicitly set usingTransactionBuilder.set_ref_inputs()
. If there is a duplicate between explicitly set reference inputs (via `...
12.0.0 beta 1
THIS IS A BETA RELEASE, AND SOME THINGS MIGHT CHANGE IN THE FINAL 12.0.0
Update Summary
1. Address Types:
- Added
network_id
getter to Address types. - Introduced new address type:
Malformed
. Used when it's impossible to deserialize an address in structs where the address is a nested type. - New getter for address:
kind()
. Returns an enum with address type. - New getter for address:
payment_cred()
. Returns payment credential. - New function for address:
is_malformed()
.
2. PlutusV3 Support:
- Added PlutusV3 support in all Plutus-specific structures.
3. Token Handling:
- Prohibited sending and minting of zero tokens.
4. New Certificates:
Added support for the following certificates (can be added via CertificatesBuilder
):
CommitteeColdResign
CommitteeHotAuth
DrepDeregistration
DrepRegistration
DrepUpdate
StakeAndVoteDelegation
StakeRegistrationAndDelegation
StakeVoteRegistrationAndDelegation
VoteDelegation
VoteRegistrationAndDelegation
5. Reference Script Fee:
TransactionBuilderConfigBuilder
: Addedref_script_coins_per_byte
setter to account for new fees for reference script inputs.PlutusScriptSource
: Now requires an additional mandatory parameter for script size for reference inputs.
6. New Builder Types:
VotingBuilder
: For participation in voting for governance actions.VotingProposalBuilder
: For proposing voting actions.TransactionBuilder
: Now has setters for these new builders.
7. Extended Coin Selection Functions:
TransactionBuilder
has two new coin selection functions to account for change output and collateral return during fee estimation:
add_inputs_from_and_change
: Considers change calculation; no need to calladd_change_if_needed
after it.add_inputs_from_and_change_with_collateral_return
: Considers change calculation and collateral return; no need to calladd_change_if_needed
after it.- NOTE:
add_inputs_from_and_change_with_collateral_return
doesn't perform coin selection for collateral inputs; you need to specify collateral inputs manually.
- NOTE:
8. New Protocol Types for Governance-related Actions:
VotingProcedure
: Vote for specific governance action proposal.VotingProcedures
: Collection of votes.VotingProposal
: Proposal of specific governance action.VotingProposals
: Collection of VotingProposal.DRep
: Abstraction of delegate representative; can be a credential or a predefined DRep type.Voter
: Abstraction of voter; can be DRep, SPO, or CC member.GovernanceActionId
: ID of governance action; tuple of (tx_hash, index_of_voting_proposal). Similar to tx input abstraction.Anchor
: Abstraction to specify off-chain data; tuple of URL and data hash.- Governance action types:
HardForkInitiationAction
InfoAction
NewConstitutionAction
NoConfidenceAction
ParameterChangeAction
TreasuryWithdrawalsAction
UpdateCommitteeAction
9. Serialization Improvement:
- CSL now doesn't serialize empty collections for most witness types, in accordance with CDDL.
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:
Credentials
Ed25519KeyHashes
Vkeywitnesses
VotingProposals
TransactionInputs
Certificates
Breaking Changes:
StakeCredential Renaming:
StakeCredential
was renamed toCredential
.StakeCredKind
was renamed toCredKind
.StakeCredentials
was renamed toCredentials
.
TransactionBody Struct Changes:
- Removed:
multiassets()
due to its confusing naming. - Note: Use
mint()
to obtain information about minting in a transaction.
Fee Calculation Functions Changes:
- Removed: All functions based on 'cons per word', aligning with the protocol's transition to 'coins per byte' in the Babbage era.
- Replacement Guidelines:
- Use
new_coins_per_byte
instead of the removednew_coins_per_word
inDataCost
. - In
TransactionOutputAmountBuilder
, switch towith_asset_and_min_required_coin_by_utxo_cost
, aswith_asset_and_min_required_coin
is now removed.
- Use
ADA Requirement Function Updates:
- Removed:
min_ada_required
due to its inability to account for full transaction output fields and reliance on the outdated coins per word parameter. - Replacement Guideline: Use
min_ada_for_output
.
TransactionBuilderConfigBuilder Adjustments:
- Removed:
coins_per_utxo_word
. - Replacement Guideline: Use
coins_per_utxo_byte
.
NetworkInfo Simplification:
- Removed:
testnet()
function, as the testnet has been replaced by testnet preprod and testnet preview.
Script Transaction Inputs Overhaul:
- Removed: Functions like
add_script_input
,add_input
,count_missing_input_scripts
,add_required_script_input_witnesses
, andadd_required_plutus_input_scripts
, used for adding script transaction inputs without a script witness. - Replacement Guideline:
- For non-script inputs: Use
add_regular_input
,add_key_input
, oradd_bootstrap_input
. - For script inputs: Use
add_native_script_input
oradd_plutus_script_input
.
- For non-script inputs: Use
PlutusScriptSource Enhancement:
- Updated:
new_ref_input
inPlutusScriptSource
now includes a language version argument, replacing the oldnew_ref_input
. - Removed:
new_ref_input_with_lang_ver
becausenew_ref_input
has the same functionality and no need for a specific function with a language version. - Changed:
PlutusScriptSource.new_ref_input
now requiresscript_size
parameter to respectref_script_coins_per_byte
from protocol parameters and correct fee calculation from Conway era. You need also setref_script_coins_per_byte
viaTransactionBuilderConfig
to use it correctly.
Script Source Unification:
- Updated:
new_ref_input
inNativeScriptSource
now requiresrequired_signers
. To set it, useNativeScriptSource.set_required_signers
.
Multiple Mints:
- Updated:
Mint.get()
now returnsMintsAssets
type to respect key duplication inMint
field. - Replacement Guideline: Use
MintsAssets
instead ofMintAssets
.
Referenced Native Script:
- Changed:
TxInputsBuilder.add_native_script_input
now requiresNativeScriptSource
to support referenced native script. UseNativeScriptSource::new
to useNativeScript
witness as before, and useNativeScriptSource::new_ref_input
to use referenced native script. - Replacement Guideline: Use
NativeScriptSource::new(NativeScript::new())
instead ofNativeScript::new()
.
Duplicated Keys Support in Plutus Datum Maps:
- Changed:
PlutusMap.get
returns an instance ofPlutusMapValues
,PlutusMap.insert
accepts an instance ofPlutusMapValues
to support duplicated keys in a datum map. - Replacement Guideline: Use
PlutusMapValues.add
and thenPlutusMap.insert
or just usePlutusMap.add_value
.PlutusMapValues
has an accessor functionPlutusMapValues.get()
to get a specific value andPlutusMapValues.len()
to get the total number of values.
Ref Script Fee Support:
- Changed:
TransitionBuilder
now can throw an error during the building process if you are using reference inputs with a Plutus script. To avoid it, you need to useTransactionBuilderConfigBuilder.ref_script_coins_per_byte
to specify ref script byte cost and have correct fee calculations.PlutusScriptSource.new_ref_input
requires script size to have correct fee calculation. - Note: If you use CSL in a pre-Conway environment, you can set script size and
ref_script_coins_per_byte
to zero.
Published
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/12.0.0-beta.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/12.0.0-beta.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/12.0.0-beta.1
https://crates.io/crates/cardano-serialization-lib/12.0.0-beta.1
Experimental packages with gc support
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs-gc
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser-gc
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs-gc
Full Changelog: 11.5.0...12.0.0-beta.1
11.5.0 "Amnesia"
Release PR: #633
Changes
Added add_change_if_needed_with_datum
function to the TransactionBuilder
type. The function provides ability to send change to a plutus script address with a datum or datum hash. Added a new type OutputDatum
specify datum or datum hash as function argument. .
Fixed memory issue for asmjs version.
Updated link in the CSL doc. Thanks @katomm
Published
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.5.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.5.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.5.0
https://crates.io/crates/cardano-serialization-lib/11.5.0
11.4.0 "Who are you, mister tx output"
Release PR: #612
Changes
Added from_address
function to the PlutusData
type. The function converts address to a datum format.
Added serialization_format
function to the TransactionOutput
type. This function provides access to information about TransactionOutput
format after deserialization.
Published
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.4.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.4.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.4.0
https://crates.io/crates/cardano-serialization-lib/11.4.0
11.3.1 "Small steps"
Release PR: #603
Changes
- Fixed reordering in the PlutusMap
- Fixed protocol_magic -> network_id mapping for the ByronAddress
- Updated Plutus cost models for the new HF
Published:
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.3.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.3.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.3.1
https://crates.io/crates/cardano-serialization-lib/11.3.1
11.3.0 "I know that reference"
API Changes
Safe transaction body serialization roundtrip. #582
We introduce FixedTransaction
. That new type can help you save the original CBOR bytes of a transaction body for reasons you need to keep it unchanged. For example, when you need to add a new witness to a transaction.
Example:
let mut original_tx = FixedTransaction::from_hex("tx hex").unwrap();
original_tx.set_witness_set(get_new_witness_set().to_bytes())
let tx_bytes = original_tx.to_bytes()
// submit your tx or use it somewhere else
Non API Changes
Plutus script minting by ref script. #568
Despite that you can use PlutusScriptSource
in the MinBuilder
. The MinBuilder
doesn't support ref inputs inside itself. Since this version we fixed that and you can easily mint something by plutus script ref.
Published:
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.3.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.3.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.3.0
https://crates.io/crates/cardano-serialization-lib/11.3.0
11.2.1 "Unbelievable protocol params"
Release PR: #566
Fixed ProtocolParamUpdate
serialization
Published:
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.2.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.2.1
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.2.1
https://crates.io/crates/cardano-serialization-lib/11.2.1
11.2.0 "Mint 'em all"
Release PR: #560
API Changes
Mint builder and plutus mint support. #551
We introduce MintBuilder
. MintBuilder
can help you to make mints with native scripts or Plutus scripts.
Example:
let mut mint_builder = MintBuilder::new();
let plutus_script_source = PlutusScriptSource::new(&get_plutus_script());
let mint_witnes = MintWitness::new_plutus_script(&plutus_script_source, &get_redeemer());
let mint_witnes_native_script = MintWitness::new_native_script(&get_native_script());
mint_builder.add_asset(&mint_witnes, &get_asset_name(), &get_amount());
mint_builder.add_asset(&mint_witnes_native_script, &get_asset_name(), &get_amount());
Send all #480
Added create_send_all
function. The fuction prepares batch of Transaction
with all utxos that you put to the create_send_all
argument. NOTE: create_send_all
supports only non script inputs.
Lang version and ref script input #544
Now PlutusScriptSource
has function .new_ref_input_with_lang_ver
. The new function consider plutus lang version in its argument. .new_ref_input_with_lang_ver
helps for correct .calc_script_data_hash
calculation in TransactionBuilder
. We recommend to use .new_ref_input_with_lang_ver
instead .new_ref_input
.
Multiple script inputs #539
We fixed logic for inputs with the same script addresses. Now if you wanna add missed scripts to your inputs you should use .add_required_script_input_witnesses
instead of .add_required_plutus_input_scripts
.
set_prefer_alonzo_format #522
Added .set_prefer_alonzo_format
function to AuxiliaryData
. It helps to keep alonzo format during AuxiliaryData
serialization.
New testnet NetworkInfo #563
Added testnet_preview
and testnet_preprod
functions for preview and preprod networks.
Published:
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.2.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.2.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.2.0
https://crates.io/crates/cardano-serialization-lib/11.2.0
11.1.1 "Plumbing"
Release PR: #555
Bindgen library dependency updated
11.1.0 "Dancing Babbage"
Release PR: #529
API Changes
Reference inputs support. #514
We introduce DatumSource
and PlutusScriptSource
types for easily use plutus scripts and datums references. Just create them and put to a new PlutusWitness
instance by PlutusWitness::new_with_ref()
. See example below.
let datum: PlutusData = get_datum();
let input_with_ref_datum: TransactionInput = get_input_with_ref_datum();
//You can create datum source with a datum or with a ref input
let datum_source = DatumSource::new(&datum);
let datum_ref_source = DatumSource::new_ref_input(&input_with_ref_datum);
let script: PlutusScript = get_script();
let input_with_ref_script: TransactionInput = get_input_with_ref_script();
let script_hash: ScriptHash = get_script_hash();
//You can create script source with a script or with a ref input
let script_source = PlutusScriptSource::new(&script);
let script_ref_source = PlutusScriptSource::new_ref_input(&script_hash, &input_with_ref_script);
//and use script and datum source to create a plutus witness
let plutus_witness = PlutusWitness::new_with_ref(&script_ref_source, &datum_ref_source, &get_redeemer());
//also possible to mix ref inputs source and non-ref inputs source or use just non-ref inputs sources
let plutus_witness = PlutusWitness::new_with_ref(&script_source, &datum_ref_source, &get_redeemer());
//and in the and you just add plutus script input as you do it before
let tx_inputs_builder = TxInputsBuilder::new();
tx_inputs_builder.add_plutus_script_input(&plutus_witness, &get_script_input(), &get_amount());
Json and hex serialization support for protocol types. #345 #489 #293
Now, most of the protocol types (but not all) in the CSL contains to_json
, from_json
, to_hex
, from_hex
functions.
By to_hex
and from_hex
you can serialize and deserialize a type instance to or from string with CBOR represented in hex format.
By to_json
, from_json
you can serialize and deserialize a type instance to or from JSON string, that might help to provide more information when you create an issue on CSL GitHub. Or to build or change protocol type instance by your hands.
There is alsoto_js_value
that is available only in js API. to_js_value
map a type instance to a js type. For example TransactionInput
instance maps to a TransactionInputJSON
type. All available ***JSON types you can see in js API.
Cardano-cli JSON datum format support. #357
Despite that we have to_json
, from_json
support for protocol types. Datum JSON in the cardano-cli format can be represented in two ways by BasicConversions
(ScriptDataJsonNoSchema
in cardano node ) and DetailedSchema
(ScriptDataJsonDetailedSchema
in cardano node ). For the PlutusDatum type the functions to_json
and from_json
are implemented with additional parameter of PlutusDatumSchema
type. Also there are 'old style' functions encode_json_str_to_plutus_datum
and decode_plutus_datum_to_json_str
like as for a metadatum.
Additional changes.
- Now error text from
add_change_if_needed
contains information about how much assets or ada not enough to cover all outputs, except a change. #520 - The
min_ada_for_output
function now uses only babbage era algorithm, it usually calculates less ada then pre-babbage algorithm. #526 - Fixed the
add_mint_asset
function. Now it adds mint assets without replacing old value. #513 - Fixed
RandomImproveMultiAsset
algorithm foradd_inputs_from
function. Now it take into account previously added assets and ada into a tx builder. #523 DeserializeError
andJsError
now implementsstd::error::Error
#506
Thank all who took part in this release!
Published:
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser/v/11.1.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs/v/11.1.0
https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs/v/11.1.0
https://crates.io/crates/cardano-serialization-lib/11.1.0