Skip to content

Pact 4.7.0

Compare
Choose a tag to compare
@emilypi emilypi released this 10 May 21:09
· 88 commits to master since this release
83c5944

4.7.0

This marks the 4.7.0 version of the Pact smart contract language.

Eval

  • Improve advice implementation (#1187)
  • Fix inconsistent trace output (#1153)
  • Fix coverage, restore defun advice (#1151)
  • Create persistence dirs if missing (#1148)
  • Differentiate between errors on-chain and off-chain (#1185)
  • Don't display function documentation in non-repl context (#1185)
  • Runtime type checking on return types now enforced (#1209)

Natives

  • Allow native function versioning in eval (#1195)
  • Add new native dec for integer to decimal conversion (#1150)
  • Implement shift in terms of other natives for better gas costing (#1208)
  • Intialize body of env-data to an empty object instead of Null (#1188)
  • read-* functions are now recoverable if the key doesn't exist. That is, a call such as (read-string 'key) is recoverable if 'key does not exist in the data payload by surrounding it with try. As an example, (try "string if key isn't present" (read-string "key")). This applies to
    read-integer, read-string, read-decimal, read-keyset and read-msg (as long as read-msg has a key supplied as an argument - #1223 )

Typechecking

  • Fix Typechecker treatment of special binding forms (#1212)

Formal Verification

  • Enable warnings during symbolic eval (#1175)
  • Remove emit-event shim (#1168)
  • Remove hash shims (#1158)
  • Remove enumerate shim (#1155)
  • Remove distinct shim (#1154)
  • Remove describe-namespace shim (#1156)
  • Remove is-principal, typeof-principal, create-principal, and validate-principal shims (#1160)
  • Remove format shim (#1159)

Documentation

  • Remove mention of private defpacts from the reference manual (#1207)
  • Add documentation for enumerate (#1176)

Misc

  • New PR and Issue templates introduced.

Thanks to everyone for their contributions, especially @CryptoPascal31 for his wonderful feedback and commentary, and welcome to our newest Pact team member, @ak3n!.