Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Apr 22, 2024

Bumps o1js from 0.17.0 to 0.18.0.

Changelog

Sourced from o1js's changelog.

0.18.0 - 2024-04-09

Breaking changes

  • Async circuits. Require all smart contract and zkprogram methods to be async o1-labs/o1js#1477
    • This change allows you to use await inside your methods. Change the method signature by adding the async keyword.
    • Don't forget to add await to all contract calls! await MyContract.myMethod();
    • To declare a return value from a method, use the new @method.returns() decorator
  • Require the callback to Mina.transaction() to be async o1-labs/o1js#1468
  • Change {SmartContract,ZkProgram}.analyzeMethods() to be async o1-labs/o1js#1450
    • Provable.runAndCheck(), Provable.constraintSystem() and {SmartContract,ZkProgram}.digest() are also async now
  • Remove deprecated APIs
    • Remove CircuitValue, prop, arrayProp and matrixProp o1-labs/o1js#1507
    • Remove Mina.accountCreationFee(), Mina.BerkeleyQANet, all APIs which accept private keys for feepayers, Token, AccountUpdate.tokenSymbol, SmartContract.{token, setValue, setPermissions}, "assert" methods for preconditions, MerkleTee.calculateRootSlow(), Scalar.fromBigInt(), UInt64.lt() and friends, deprecated static methods on Group, utility methods on Circuit like Circuit.if(), Field.isZero(), isReady and shutdown() o1-labs/o1js#1515
  • Remove privateKey from the accepted arguments of SmartContract.deploy() o1-labs/o1js#1515
  • Efficient comparisons. Support arbitrary bit lengths for Field comparisons and massively reduce their constraints o1-labs/o1js#1523
    • Field.assertLessThan() goes from 510 to 24 constraints, Field.lessThan() from 509 to 38
    • Moderately improve other comparisons: UInt64.assertLessThan() from 27 to 14, UInt64.lessThan() from 27 to 15, UInt32 similar.
    • Massively improve Field.isEven(), add Field.isOdd()
    • PrivateKey.toPublicKey() from 358 to 119 constraints thanks to isOdd()
    • Add Gadgets.ForeignField.assertLessThanOrEqual() and support two variables as input to ForeignField.assertLessThan()
  • Remove this.sender which unintuitively did not prove that its value was the actual sender of the transaction o1-labs/o1js#1464 @​julio4 Replaced by more explicit APIs:
    • this.sender.getUnconstrained() which has the old behavior of this.sender, and returns an unconstrained value (which means that the prover can set it to any value they want)
    • this.sender.getAndRequireSignature() which requires a signature from the sender's public key and therefore proves that whoever created the transaction really owns the sender account
  • Reducer.reduce() requires the maximum number of actions per method as an explicit (optional) argument o1-labs/o1js#1450
    • The default value is 1 and should work for most existing contracts
  • new UInt64() and UInt64.from() no longer unsafely accept a field element as input. o1-labs/o1js#1438 @​julio4
    As a replacement, UInt64.Unsafe.fromField() was introduced
    • This prevents you from accidentally creating a UInt64 without proving that it fits in 64 bits
    • Equivalent changes were made to UInt32
  • Fixed vulnerability in Field.to/fromBits() outlined in #1023 by imposing a limit of 254 bits o1-labs/o1js#1461
  • Remove Field.rangeCheckHelper() which was too low-level and easy to misuse o1-labs/o1js#1485
    • Also, rename the misleadingly named Gadgets.isInRangeN() to Gadgets.isDefinitelyInRangeN()
  • Rename Bool.Unsafe.ofField() to Bool.Unsafe.fromField() o1-labs/o1js#1485
  • Replace the namespaced type exports Gadgets.Field3 and Gadgets.ForeignField.Sum with Field3 and ForeignFieldSum
    • Unfortunately, the namespace didn't play well with auto-imports in TypeScript
  • Add Gadgets.rangeCheck3x12() and fix proof system bug that prevented it from working o1-labs/o1js#1534
  • Update transaction version and other bindings changes to ensure berkeley compatibility o1-labs/o1js#1542

Added

Changed

  • field.assertBool() now also returns the Field as a Bool for ergonomics o1-labs/o1js#1523
Commits
  • 1b6fd8b 0.18.0
  • b2d415c changelog
  • 1383275 Merge pull request #1542 from o1-labs/merge/berkeley
  • 70215ab Merge branch 'berkeley' into merge/berkeley
  • 305204c Merge pull request #1536 from o1-labs/merge-back-to-berkeley
  • 5208a7d Merge pull request #1526 from o1-labs/upd/bench-self-hosted-runner
  • 8b6a9a4 Merge pull request #1534 from o1-labs/fix/lookup-gate-range-check
  • b7642da Update verification keys
  • 1afeb80 set submodules to compatible branches
  • d16d837 Merge branch 'main' into fix/lookup-gate-range-check
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [o1js](https://github.com/o1-labs/o1js) from 0.17.0 to 0.18.0.
- [Changelog](https://github.com/o1-labs/o1js/blob/main/CHANGELOG.md)
- [Commits](o1-labs/o1js@v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: o1js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Apr 22, 2024
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Apr 23, 2024

Superseded by #754.

@dependabot dependabot bot closed this Apr 23, 2024
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/packages/frontend/o1js-0.18.0 branch April 23, 2024 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant