Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.3.0 upgrade tests + migration script #674

Closed
34 tasks done
zajck opened this issue Jun 8, 2023 · 0 comments · Fixed by #680
Closed
34 tasks done

2.3.0 upgrade tests + migration script #674

zajck opened this issue Jun 8, 2023 · 0 comments · Fixed by #680
Assignees
Labels

Comments

@zajck
Copy link
Member

zajck commented Jun 8, 2023

Before upgrading from v2.2.1 to v2.3.0 we need to make sure the upgrade does not corrupt the protocol.

Current diff: https://github.com/bosonprotocol/boson-protocol-contracts/compare/v2.2.1..main
Some of the tests below are referring to the changes that are not merged yet: https://github.com/bosonprotocol/boson-protocol-contracts/pulls?q=is%3Apr+is%3Aopen+label%3Av2.3.0

Breaking changes

  • Cannot create a seller with non-zero clerk [seller/DR]
  • Cannot update a seller to non-zero clerk [seller/DR]
  • If there is a pending update with a non-zero clerk, it's not possible to opt-in and confirm a new clerk [seller/DR]
  • For the existing seller and DR accounts, getters return address 0 for the clerk
  • It's possible to create a new account that uses the same address as some old clerk address (if not prevented by other uniqueness checks) [seller/DR]
  • Withdraw funds can be called by the assistant instead of the clerk [seller/DR]
  • unpausing individual regions
  • Create an offer with a collection
  • clone voucher with create2

New methods

  • Set and get a minimal resolution period
  • New sellers can create new collections
  • Old sellers can create new collections. Their primary collections are unaffected
  • getSellersCollections
  • it's possible to create a group with new token gating
  • old gate offers work ok with new token gating
  • protocol limits are not enforced anymore
  • getAvailableFunds,getAllAvailableFunds,getTokenListPaginated,getTokenList
  • getPausedRegions

Bug fixes

  • BosonVucher.tokenURI reverts if tokenId does not exist
  • BosonVucher.callExternalContract returns whatever External contract returned
  • If twin transfer fails, always raise a dispute (no revoke if the caller is EOA)
  • If a twin is transferred it could be used in a new twin.
  • cannot make an offer with too short resolution period
  • pending auth token during updateSeller call
  • twins cannot consume all gas during the transfer anymore
  • it's possible to commit to offer at last offer validity time

New storage slots without getters

  • ProtocolLookups.additionalCollections
  • ProtocolLookups.rangeIdByTwin
  • ProtocolLimits.minResolutionPeriod

Migration script ToDo

  • Pause seller facet
  • Get info about the existing sellers and the creators (via logs)
  • Prepare data to backfill the sellers
  • add/remove correct metatx method
  • Unpause everything (include twins)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant