Skip to content

Releases: CityOfZion/neo3-boa

v0.9.0

02 Aug 16:59
Compare
Choose a tag to compare

Added

  • Support to N3-rc4
  • Included new interops from Neo-rc4
    • get_network
    • get_random
  • Included OracleRequestCode enum for better compatibility with Oracles
  • Implemented Python's builtin str count

Changed

  • Changed manifest's features from an empty array to an empty object
  • Included maxsplit optional argument on str split method

v0.8.3

19 Jul 19:37
Compare
Choose a tag to compare
v0.8.3 Pre-release
Pre-release

Added

  • Included import of user modules
  • Module variables are now linked to the contract's storage to persist their values
  • Support to Python's builtins:
    • is keyword
    • reversed
    • str.split
    • list.count and tuple.count
  • Included the remaining Neo interops in the builtin.interop package
  • Included ECPoint type
  • Included find_options optional argument to Storage.Find interop
  • Included new smart contract example
    • Update Contract
  • Implemented compiler validation of try else branch

Changed

  • Renamed interop.binary package to interop.stdlib
  • min and max methods now accept many arguments instead of just two

Fixed

  • Fixed isinstance for Contract boa3 builtin class
  • Fixed issue with not passing values to a vararg

v0.8.2

15 Jun 14:35
Compare
Choose a tag to compare
v0.8.2 Pre-release
Pre-release

Added

  • Support to N3-rc3
  • Implemented varargs on function definitions
  • Allow importing modules and packages
    • Only from boa3.builtin are accepted by the compiler
  • Implemented Neo interop functions:
    • Runtime script_container and burn_gas
    • StorageContext as_read_only
    • Transaction interops:
      • get_transaction, get_transaction_from_block and get_transaction_height
  • Implemented Optional type annotation
  • Included ON_PERSIST and POST_PERSIST triggers

Changed

  • Updated debug info generation to v1.2 format
  • Included data argument to call_contract and update_contract
  • Renamed get_time and get_platform to time and platform

Fixed

  • Fixed variables access after casting types
  • Fixed incorrect output when concatenation str and bytes values
  • Fixed issue with control flow statements with many instructions
  • Fixed issue with UInt160 and UInt256 constructors with slicing result
  • Fixed unexpected result when comparing str values
  • Fixed blocks and transactions hashes that TestEngine returns
  • Fixed isinstance for boa3 builtin types
  • Fixed issue with incorrect stack sizes during runtime

v0.8.1

13 May 13:49
Compare
Choose a tag to compare
v0.8.1 Pre-release
Pre-release

Added

  • Support to N3-rc2
  • Implemented itoa, atoi and get_block interop methods
  • Included UInt256 type
  • Implemented Python built-in sum function
  • Support to type casting

Changed

  • Included an optional CallFlags argument in call_contract method

v0.8.0

15 Apr 18:23
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

Added

  • Included StorageMap class
  • Implemented ** operator and sqrt function
  • Supports Oracle in smart contracts
  • Implemented abs builtin

Fixed

  • Assert statements weren't included in .nefdbgnfo

v0.7.1

24 Mar 18:46
Compare
Choose a tag to compare
v0.7.1 Pre-release
Pre-release

Added

  • Support to Neo 3 rc1
  • Implemented Python in operator for collections
  • Support to reassign types to existing variables in a function's scope
  • Included StorageContext to the storage interop functions
  • Included new smart contract example
    • Automated Market Maker (AMM)

Changed

  • Included eventName argument to notify interop
  • Renamed trigger method to get_trigger

Fixed

  • Fixed smart contract's storage access in TestEngine
  • Null return in update_contract and destroy_contract interops
  • get_contract and create_contract were returning contract's manifest as null
  • Fixed Union type bug when used in CreateNewEvent

v0.7.0

11 Feb 22:16
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

Added

  • Support to Neo 3 preview 5
  • Included Iterator interops
  • Implemented Storage.Find interop
  • Included new smart contract examples
    • Atomic Swap
    • Wrapped Token
  • Included Python 3.7 unit tests in CircleCI workflow
  • Implemented Python built-in functions
    • exit, min and max
    • list methods insert and remove

Changed

  • Improved compilation with isinstance function semantic for Python types
  • Updated README file with how to use TestEngine

Fixed

  • Fixed operation validation when using non-primitive types
    • Couldn't use UInt160 values in bytes operations for example
  • Invalid stack size when calling void functions
  • Compilation failing because of concatenation with bytes values
  • Variable types in different scopes causing conflict during compilation
  • Fixed conversion of sequence slicing with negative indexes

v0.6.1

18 Dec 18:30
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

Added

  • Included a NEP-17 example
  • Implemented Union type annotation
  • Implemented extend to bytearray values

Changed

  • Change Contract methods implementations to be compatible with Neo's preview4

Fixed

  • Bytes comparison was always returning False
  • Get values from collection (list, dict, tuple) was returning the collection instead

v0.6.0

14 Dec 19:43
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

Added

  • Implemented cryptography methods
    • SHA256, RIPEMD160, HASH160 and HASH256
  • Included Contract methods
    • Create, Update and Destroy contract
  • Included base58 and base64 encoding/decoding
  • New Neo Interops
    • GetExecutingScriptHash, GetEntryScriptHash and GetPlatform
  • Json and Binary serialization/deserialization
  • GetNotifications, for getting the list of events and values sent using notify()
  • Implemented a method to abort smart contract execution
  • Included UInt160 type for compatibility with NEP17
  • GetCurrentStorageContext, for Storage Interops
  • New features in the TestEngine
    • Included call other smart contracts
    • Account witness
    • Inclusion of blocks and transactions

Changed

  • Improved examples' unit tests using TestEngine
  • Changed nef and manifest generation to be compatible with Neo's preview4

Fixed

  • Fixed the type checking for sequence slices
  • If-else branches inside each other weren't having the same execution flow as expected
  • Type attribution in for variable - was getting iterable type instead of iterable's values type

Removed

  • is_application_trigger and is_verification_trigger methods

v0.5.0

27 Oct 17:35
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

Added

  • Converted time, height, gasLeft and invocationCounter interops
  • Implemented compiler validation of try finally branch
  • Included execution tests in the unit tests using the TestEngine from the C# compiler

Changed

  • Replaced the markdown Python Supported Features table to a html table in the README