Releases: CashScript/cashscript
Releases · CashScript/cashscript
v0.10.2
cashc compiler
- ✨ Add support for using underscores in numeric literals to improve readability, e.g.
1_000_000. - ✨ Add support for using scientific notation in numeric literals, e.g.
1e6or1E6.
CashScript SDK
- 🐛 Fix fee calculation when using
SignatureAlgorithm.ECDSA. - 🛠️ Clean up dependencies.
v0.10.1
v0.10.0
In this version we added proper debugging support for transactions and integration with the BitAuth IDE.
Thanks mainnet_pat for the initiative and significant contributions!
cashc compiler
- ✨ Add
console.log()statements for debugging. - ✨ Extend
require()statements to allow custom error messages for debugging. - 🛠️ Update artifact format to allow for new debugging features.
- 🛠️ Update dependencies to new major versions.
CashScript SDK
- ✨ Add support for transaction evaluation and debugging using libauth templates.
transaction.debug()&transaction.bitauthUri()- Output BitAuth IDE URI for debugging when transaction is rejected.
- ✨ Add
MockNetworkProviderto simulate network interaction for debugging and testing.- Add
randomUtxo(),randomToken()andrandomNft()functions to generate dummy UTXOs for testing.
- Add
- ✨ Add CashScript Jest utilities for automated testing.
expect(transaction).toLog(message)expect(transaction).toFailRequire()expect(transaction).toFailRequireWith(message)
- 🐛 Fix bug with type exports.
- 🛠️ Update visibility of several classes.
- Make
artifact,networkProvider,addressTypeandencodedConstructorArgspublic onContractclass. - Make
contract,abiFunction,encodedFunctionArgs,inputsandoutputspublic onTransactionclass. - Make
networkProvider,inputsandoutputspublic onTransactionBuilderclass. - Make
privateKeypublic onSignatureTemplateclass and addgetSignatureAlgorithm()method.
- Make
- 🛠️ Improve some error messages.
- 🛠️ Add new
FailedRequireError,FailedTransactionEvaluationErrorandFailedTransactionErrorclasses. - 💥 BREAKING: Remove exported transaction error
Reasonenum +FailedTimeCheckErrorandFailedSigCheckErrorclasses in favour of the new error classes. - 💥 BREAKING: Remove all deprecated references to
meepincludingmeepstrings from errors andtransaction.meep(). - 💥 BREAKING: Separate the
Argumenttype intoFunctionArgumentandConstructorArgumentand renameencodeArgumenttoencodeFunctionArgument.
https://twitter.com/CashScriptBCH/status/1833454128426615174
v0.9.3
v0.9.2
CashScript SDK
- 🐛 Fix bug where UTXOs would be needlessly retrieved from the network during
build()calls. - 🐛 Fix off-by-one fee calculation error with transactions that have many outputs.
- 🐛 Fix bug where no error was thrown when invalid NFT commitment or token category were provided.
- 🛠️ Export all interfaces from CashScript's
interfaces.ts. - 🛠️ Merge duplicate code between Transaction.ts and TransactionBuilder.ts
v0.9.1
v0.9.0
CashScript SDK
- ✨ Add new advanced
TransactionBuilderclass that allows combining UTXOs from multiple different smart contracts and P2PKH UTXOs in a single transaction. - 🛠️ Deprecate all
meepfunctionality. Meep has been unmaintained for years and does not support many new CashScript features. Meep functionality will be removed in a future release.
v0.8.2
v0.8.1
v0.8.0
require() to import cashscript or cashc.
This release also contains several breaking changes, please refer to the migration notes for more information.
cashc compiler
- ✨ Add support for the new CashTokens introspection functionality (
tokenCategory,nftCommitmentandtokenAmountfor both in- and outputs). - ✨ Add
LockingBytecodeP2SH32to generate the new P2SH32 standard locking script. - 🐛 Fix optimisation bug that caused
OP_0NOTEQUALto be applied to non-integer values. - 💥 BREAKING: Move to Pure ESM.
- 💥 BREAKING: Rename
LockingBytecodeP2SHtoLockingBytecodeP2SH20- but it is recommended to change over to the new P2SH32 for security reasons.
CashScript SDK
- ✨ Add support for CashTokens.
.to()now takes atokenparameter that can be used to send CashTokens.- UTXOs that are retrieved with
contract.getUtxos()include atokenfield if they are token UTXOs. - UTXOs that are passed into
.from()can also include thistokenfield to send tokens. - Add
.withoutTokenChange()to disable automatic token change outputs. - Note that only the
ElectrumNetworkProvidersupports CashTokens at this time. - Note that NFTs do not support automatic UTXO selection
- ✨ Add
contract.tokenAddressto get the token-enabled address of a contract. - ✨ Add
fromP2PKH()to add P2PKH inputs to a smart contract transaction.- Note: this was in the SDK before as
experimentalFromP2PKH(). It has now been released as an official feature.
- Note: this was in the SDK before as
- 💥 BREAKING: Move to Pure ESM.
- 💥 BREAKING: Remove
"testnet"&"staging"network options. - 💥 BREAKING:
contract.addressreturnsp2sh32address by default, this can be configured to bep2sh20on contract initialization. - 💥 BREAKING: Move the configuration of the network provider to an options object on contract initialization.
- 💥 BREAKING: Use
bigintrather thannumberfor all instances of "script numbers" (e.g. function arguments) and satoshi amounts. - 💥 BREAKING: Replace
contract.getRedeemScriptHex()withcontract.bytecode. - 💥 BREAKING: Remove
BitboxNetworkProvider. - 💥 BREAKING: All signature templates use
SIGHASH_ALL | SIGHASH_UTXOSnow, this new default can be overwritten in the constructor of theSignatureTemplate.