github wavesplatform/Waves v1.3.5
Version 1.3.5 Jumeirah (Mainnet + Testnet + Stagenet)

latest releases: v1.5.8, v1.5.7, v1.5.6...
3 years ago

In this release

This release is accumulation of all previous 1.3.x releases. Now it's available for Mainnet.
After the activation of the feature #​16 all Protocol changes become available.

Protocol Enhancements

  • dApp-to-dApp invocation. A dApp callable function can invoke a callable function of another dApp, or another callable function of the same dApp, or even itself. All invoked functions are executed within a single Invoke Script transaction. The total complexity is limited. More about dApp-to-dApp invocation
  • Amended Invoke Script transaction:
    • Canceled the extra fee of 0.004 WAVES for smart assets in payments and script actions.
    • Transaction can contain up to 10 attached payments.
    • The total complexity for all callable functions and asset scripts involved is limited by 26,000 (the sender's account script complexity is not included in this limit).
    • The maximum complexity of a callable function of a dApp script is changed to 10,000.
  • For all types of transactions, canceled the extra fee of 0.004 WAVES for sending a transaction from a smart account or dApp unless the complexity of sender's account script or dApp script verifier function exceeds 200.

Ride

  • Issued version 5 of the Ride Standard library.

  • Enabled processing up to 10 payments attached to the Invoke Script transaction.

  • Added the functions for dApp-to-dApp invocation:

  • Added strict variables that are evaluated before the next expression to ensure executing callable functions and applying their actions in the right order.

  • Modified the callable function result by adding a return value.

  • Modified the Invocation structure: in case of dApp-to-dApp invocation, the structure contains the address and public key of both the sender of the Invoke Script transaction and the dApp account that invokes the callable function.

  • The maximum total number of Issue, Reissue, Burn, SponsorFee, ScriptTransfer, Lease, LeaseCancel script actions executed by all callable functions in a single transaction is 30.

  • The maximum total number of BinaryEntry, BooleanEntry, IntegerEntry, StringEntry, DeleteEntry script actions executed by all callable functions in a single transaction is 100.

  • Added script actions that the callable function can perform:

    Using these actions, you can change the amount of the lease, in particular, withdraw a part of the leased funds. If you cancel a lease for a larger amount and create a new lease for a smaller amount with the same recipient in the same script invocation, the recipient's generating balance decreases by the difference. Otherwise, if you send two separate transactions: a Lease Cancel transaction and a Lease transaction, they can be added to a different blocks and therefore generating balance decreases by the amount of the canceled lease immediately and increases by the amount of the new lease after 1000 blocks.

  • Added the function calculateLeaseId that calculates ID of the lease formed by the Lease structure.

  • Added an arbitrary data type — Any.

  • Added the BigInt data type of 64 bytes (512 bits) and functions.

  • Added the following built-in functions:

  • Added the following account data storage functions that allow the dApp script to read entries of its own data storage:

    • getBinary(key: String): ByteVector|Unit
    • getBinaryValue(key: String): ByteVector
    • getBoolean(key: String): Boolean|Unit
    • getBooleanValue(key: String): Boolean
    • getInteger(key: String): Int|Unit
    • getIntegerValue(key: String): Int
    • getString(key: String): String|Unit
    • getStringValue(key: String): String
  • The maximum complexity of a callable function of a dApp script is changed to 10,000.

Node REST API

Breaking Changes

A lease can be created both as a result of a Lease transaction and as a result of an Invoke Script transaction via a Lease script action. Therefore, the response of the following endpoints has been changed:

  • In the response of /transactions/address/{address}/limit/{limit} and /transactions/info/{id} endpoints for a Lease Cancel transaction, the lease structure now contains lease parameters instead of Lease transaction fields.
  • /leasing/active/{address} returns an array of structures containing lease parameters instead of array of Lease transactions.

Semantic Changes

  • dApp-to-dApp invocation results are added as the invokes array to the stateChanges structure returned by the following endpoints:

    • /transactions/info/{id}
    • /transactions/address/{address}/limit/{limit}

    Each element of invokes array, in turn, also contains stateChanges.

  • Results of the Lease and LeaseCancel script actions are added to the stateChanges structure.

  • Results of Lease and LeaseCancel script actions are also added to the trace structure returned by the following endpoints:

    • /transactions/broadcast
    • /debug/validate

Improvements

  • Added the /leasing/info endpoint that returns lease parameters by lease IDs.
  • Added the /blocks/heightByTimestamp endpoint that returns blockchain height at a given timestamp.

Activation

To activate the improvements listed above, vote for feature #16 “Ride V5, dApp-to-dApp invocations”.

Update Notes

If you are not using Blockchain Updates extension, there's no need to reimport state when updating from version 1.2.x.
Attention Blockchain Updates users:

  • Due to an issue with one of the previous versions, current extension data is likely inconsistent with the blockchain. Please reimport blockchain to rebuild BU state.
  • In some cases BU subscription can get stuck, that is once connected, the client receives some updates up to the most recent block/microblock, but won't receive any subsequent updates when node appends new blocks/microblocks. This is a known issue. While we are working on a fix, one possible workaround is to monitor the connection, and once the subscription is stuck, restart the node process.

Official pools update notes

Due to presense of breaking changes in the Node's API please migrate your existing projects/applications. Version 1.3.5 will be immediately available on the testnet. Mainnet will be updated on June, 11th.

SHA256 Checksums

b938cbd04016131be6a06a3f6db9d8fc5df8fe6fd1204469e1a67eeb999f1bbc  waves-all-1.3.5.jar
76381331a983383ef4991077abcafcaed3f5ad55bb686c52dd0f1c68ca752d04  waves-grpc-server-1.3.5.tgz
449af81db3ec693baaf5508ca5769587a7023ddaea203f406413efca6a2e840f  waves-grpc-server-stagenet_1.3.5_all.deb
aa801db4c4b279fc226b2642d11281cc02ec7f182668a96628e8bc097e0aadb8  waves-grpc-server-testnet_1.3.5_all.deb
2c28f517df7595fd85e1a12a0dc78eb2e8cf3f7316251b160eeacf5f56dbabf0  waves-grpc-server_1.3.5_all.deb
f4faf1da9fc23b90ba96f48585f73b4ac1a1127ec73fd636decac57261cca5fa  waves-stagenet_1.3.5_all.deb
6dd05421d4f2622693acb8ca320af291c04aeb0052863b9bedf3c2dc79e167df  waves-testnet_1.3.5_all.deb
142616a71ed1aa3f08623db036cb540234a546d2d6cbd769dbe605cced28abb4  waves_1.3.5_all.deb

Don't miss a new Waves release

NewReleases is sending notifications on new releases.