Skip to content

Releases: CashScript/cashscript

v0.6.1

27 Mar 10:48
Compare
Choose a tag to compare

CashScript SDK

  • 🐛 Fix bug with incorrect fee calculation when providing custom fee per byte

v0.6.0

16 Mar 18:50
Compare
Choose a tag to compare

cashc compiler

  • ✨ Add date literal (gets converted to int timestamp) (authored by @nathanielCherian through #90)
  • 🛠️ Update ParseError messages
  • 🐛 The final statement in a contract now MUST be a require statement (in all branches)
  • 🐛 Empty contracts and functions are now considered invalid
  • 🐛 Fix bug where certain covenants could become unspendable due to incorrect bytesize calculation
    • 💥 BREAKING: Covenants using tx.bytecode now include a placeholder OP_NOP that gets replaced when constructor arguments are provided in the CashScript SDK. If you're not using the CashScript SDK, refer to the replaceBytecodeNop() function to see the steps required to do so manually.
  • 💥 BREAKING: Remove --args parameter from the CLI, since this is too error prone with the recent changes in mind
  • 💥 BREAKING: Restructure exports

CashScript SDK

  • ✨ Add BitcoinRpcNetworkProvider that connects to a BCH node RPC (authored by @blockparty-sh through #89)
  • 💥 Remove dependency on cashc and remove CashCompiler export

@cashscript/utils

  • 🎉 Publish package with CashScript utilities
  • 🚨 Add tests

https://twitter.com/RoscoKalis/status/1371896417443282956

v0.5.7

17 Nov 17:30
Compare
Choose a tag to compare

cashc compiler

  • 🐛 Better error reporting for parsing/lexing errors

v0.5.6

17 Nov 14:58
Compare
Choose a tag to compare

cashc compiler

  • 🐛 Make compiler fail early when encountering lexing/parsing errors, rather than performing error recovery (#83)
  • 🐛 Allow empty hex literals (i.e. 0x)

v0.5.5

11 Nov 15:43
Compare
Choose a tag to compare

CashScript SDK

  • ✨ Add 'regtest' as a possible network for NetworkProviders (authored by @2qx through #82).

v0.5.4

28 Oct 07:38
Compare
Choose a tag to compare

cashc compiler

  • 📦 Add dual build process (commonjs and ES modules) to accommodate tree-shaking.

CashScript SDK

  • 📦 Add dual build process (commonjs and ES modules) to accommodate tree-shaking.

v0.5.3

07 Oct 18:35
Compare
Choose a tag to compare

CashScript SDK

  • ✨ Add getRedeemScriptHex() function to the Contract class.
  • 🐛 Fix a bug where transaction locktime could not specifically be set to 0.
  • 🐛 Fix a bug where signature buffers were not checked for size.

v0.5.2

08 Sep 19:03
Compare
Choose a tag to compare

cashc compiler

  • 🐛 Fix a bug where an incorrect error message was displayed in Firefox when an incompatible pragma version was used.

v0.5.1

03 Sep 14:06
Compare
Choose a tag to compare

CashScript SDK

  • ✨ The .send() function now returns a TransactionDetails object. This extends the libauth Transaction with added txid and hex fields.
    • Because it extends the previous return type, this is backwards compatible.
    • Since this now returns the transaction hex as a field, using .send(true) to return the transaction hex is deprecated and will be removed in a future release.
  • 🐛 Improve reliability of the ElectrumNetworkProvider when sending multiple concurrent requests.

v0.5.0

26 Aug 18:12
Compare
Choose a tag to compare

cashc compiler

  • 🛠️ Replace BITBOX with Libauth.

CashScript SDK

CashScript used to be very tightly coupled with BITBOX. This proved to be problematic after maintenance for BITBOX was stopped. The main objective of this update is to allow CashScript to be used with many different BCH libraries.

  • ✨ Add withoutChange() function to disable change outputs for a transaction.
  • SignatureTemplate can now be used with BITBOX keypairs, bitcore-lib-cash private keys, WIF strings, and raw private key buffers, rather than only BITBOX.
  • 💥 Remove Sig alias for SignatureTemplate that was deprecated in v0.4.1.
  • 💥 BREAKING: Refactor contract instantiation flow
    • A contract is now instantiated by providing a compiled artifact, constructor arguments and an optional network provider.
    • Anyone can implement the NetworkProvider interface to create a custom provider. The CashScript SDK offers three providers out of the box: one based on electrum-cash (default), one based on FullStack.cash' infrastructure, and one based on BITBOX. See the NetworkProvider docs for details.
    • See the migration notes for details on migrating from the old contract instantiation flow.
  • 💥 BREAKING: Remove the artifacts 'networks' field and .deployed() functionality, This proved to be confusing and is better suited to be handled outside of the CashScript SDK.
  • 💥 BREAKING: .send() now returns a libauth Transaction instead of a BITBOX Transaction object. Alternatively a raw flag can be passed into the function to return a raw hex string.
  • 🛠️ Removed BITBOX as a dependency in favour of libauth for utility functions.

https://twitter.com/RoscoKalis/status/1298645699559596033