Set Type Serialization: All set types are now serialized with a tag "258", which will become mandatory after the next hard fork (HF). There is no way to force serialization without the tag. The period between the current and the next era serves as a transition between the old CBOR format and the new CBOR format for sets.
Preservation of Original Transaction Bytes: Only the FixedTransaction type can preserve original transaction bytes. This is crucial when signing a transaction from a third party, as there is no guarantee that all CBOR types will be in a specific format.
Redeemers Collection Serialization: The redeemers collection is now serialized as a map by default. After the next HF, redeemers will only be allowed as a map.
API Changes:
New Function has_transaction_set_tag: We've added the has_transaction_set_tag function to help you check if all sets in a transaction have the tag. It returns TransactionSetsState based on the transaction's content. This is useful for determining whether a transaction can be signed by a hardware wallet. In the case of MixedSets, it might be impossible to sign a transaction with a hardware wallet. Once the tag "258" becomes mandatory, we will remove the has_transaction_set_tag function.
Removal of hash_transaction: The hash_transaction function has been removed because it cannot guarantee the correctness of a transaction hash for a transaction from a third-party tool. Instead, you should use the FixedTransaction type.
WARNING: If you need to sign a transaction from a third party, use the FixedTransaction type. Do not use the Transaction type, as it is not serialization round-trip safe and the transaction hash might be incorrect.
Examples:
Getting a Transaction Hash from a Third-Party Transaction:
let transaction = FixedTransaction::from_hex("tx_hex")?; // Or use from_bytes if you have a byte array.
let tx_hash = transaction.transaction_hash();
Getting a Transaction Hash from a Transaction from a Transaction Builder:
let tx = tx_builder.build_tx()?;
let transaction = FixedTransaction::from_bytes(tx.to_bytes())?;
let tx_hash = transaction.transaction_hash();
Getting a Transaction Hash from a Transaction Body from a Transaction Builder:
let tx_body = tx_builder.build()?;
let transaction = FixedTransaction::new_from_body_bytes(tx_body.to_bytes())?;
let tx_hash = transaction.transaction_hash();
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps @emurgo/cardano-serialization-lib-nodejs from 11.5.0 to 13.0.0.
Release notes
Sourced from
@emurgo/cardano-serialization-lib-nodejs
's releases.... (truncated)
Commits
b6f7b26
update js.flow3fa975f
version bump4a5df88
remove hash_transaction function942a4eb
add has_transaction_set_tag functionafbceba
preserve original tag/no-tag for FixedTxWitnessesSet84db6dd
remove extra functions601c285
PlutusList always with set tagebe60c5
BootstrapWitnesses, Plutus script witnesses always with set taga198ecd
Merge branch 'refs/heads/master' into evgenii/sets_and_tags31d929d
Merge pull request #695 from Emurgo/evgenii/bootstrap_witnesses_fakesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show