Full node 0.13.2 (Testnet Only)


In the release

  • We have fixed the bug with a rollback of a Fee Sponsorship transaction
  • New in Smart Accounts:
    • Union Types, Case Types and Type Matching: Transaction = TransferTransaction | IssueTransaction | DataTransaction ...
    • Initialization of arrays using base64 text
    • Useful information in error message then a transaction is not allowed by the script
  • Update to RIDE IDE: multiple tabs and Base64 support

What are Union Types, Case Types and Type Matching

Previously it was not neccessary but very important to check transaction type before accessing field:

if (tx.type == 4) tx.recipent == ...

But that's error-prone, because

if (tx.type == 44) tx.recipent == ...

would still compile and result in execution error.

With this change, each transaction type has its own fields, and you have to match tx type first:

match tx {
 case t: TransferTransaction => t.recipient = ...          # works
 case d: DataTransaction =>     d.recipient = ...          # won't compile!
 case _ => false

In this example, txd don't have recipient field, but t has. All calls to transaction fields are now exception-free.

Update notes

Due to changes to RIDE scripts serialization we have to truncate the Testnet's blockchain. Please, delete existing data and resync from the network.

Is this article helpful for you?