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

build!: upgrade all packages + root to latest Hardhat version and ethers v6 #889

Merged
merged 27 commits into from
Feb 29, 2024

Conversation

CJ42
Copy link
Member

@CJ42 CJ42 commented Feb 17, 2024

What does this PR introduce?

📦 Build

Note: the tests for @lukso/lsp17-extensions have been skipped due to an issue related to the deployment of NickFactory. See this opened issue on Hardhat repository for reference: NomicFoundation/hardhat#4939

Upgrade Hardhat and ethers to latest version, including ethers v6.

  • Upgrade dependencies to latest, including:

    • hardhat to latest v2.20.1
    • @nomicfoundation/hardhat-toolbox to v4.0.0
  • Refactor all the scripts for building, tasks, testing and deployment to ethers v6

PR Checklist

  • Wrote Tests
  • Wrote & Generated Documentation (readme/natspec/dodoc)
  • Ran npm run lint && npm run lint:solidity (solhint)
  • Ran npm run format (prettier)
  • Ran npm run build
  • Ran npm run test

@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch 2 times, most recently from 57bbb67 to 50c34b6 Compare February 18, 2024 10:31
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from 50c34b6 to 07a60f9 Compare February 18, 2024 10:36
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from 7c8345b to adb776e Compare February 19, 2024 16:17
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from b90b8c6 to b88acfc Compare February 19, 2024 17:05
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch 2 times, most recently from 910da3a to c1d49f0 Compare February 20, 2024 10:46
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from c1d49f0 to 57f818d Compare February 20, 2024 10:57
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from fa680cc to 4d7bf33 Compare February 27, 2024 17:24
@CJ42
Copy link
Member Author

CJ42 commented Feb 27, 2024

Referencing this issue on Hardhat for the blocker on LSP17 Extensions contracts tests and the Create2Factory not deploying: NomicFoundation/hardhat#4939

@CJ42 CJ42 marked this pull request as ready for review February 27, 2024 20:48
@CJ42 CJ42 force-pushed the build/upgrade-dependencies branch from 6f5405e to 17bba8d Compare February 28, 2024 01:38
Copy link
Contributor

@richtera richtera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ok, but I would remove the ethers wholesale import and specify each function you need.

dodoc/config.ts Outdated Show resolved Hide resolved
packages/lsp14-contracts/hardhat.config.ts Outdated Show resolved Hide resolved
tests/LSP17Extensions/helpers/UserOp.ts Show resolved Hide resolved
Copy link
Member

@skimaharvey skimaharvey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome 🙏

@CJ42 CJ42 merged commit d41145c into lsp-monorepo Feb 29, 2024
40 checks passed
@CJ42 CJ42 deleted the build/upgrade-dependencies branch February 29, 2024 18:27
CJ42 added a commit that referenced this pull request Mar 4, 2024
* build!: setup monorepo with turborepo for `@lukso/lsp-smart-contracts`

* build!: move LSP2 as its own package (#829)

* build: start setting Turborepo configs for the monorepo (#828)

* build!: setup lsp-smart-contracts as monorepo

* build: fix setup eslint for root + packages

* build: setup LSP package template with instructions

* build: add `COVERAGE` as env variable

* build: fix package-lock

* build: keep root config for eslint

* ci: update CI commands to run temporarily steps for root + package

* build: replace `dts` by `unbuild`

* docs: apply new prettier to auto-generated docs

* build: add missing npm command for `turbo test`

* build!: setup lsp-smart-contracts as monorepo

* build: fix setup eslint for root + packages

* build: setup LSP package template with instructions

* chore: start moving LSP2 in its own package

* chore: setup Foundry tests for LSP2

* chore: remove other folders not relevant

* build: upgrade packages dependencies

* ci: update CI for solc_version to allow `packages/` path

* build: use `eslint-config-custom` as internal dependency at root

* docs: update autogenerated docs config

* ci: remove `lsp2` in testing matrix

* chore: update README of LSP2 + template packages

* feat: remove duplicated content (#856)

* ci: remove import require tests for testing constant imports (#859)

* build!: move LSP25 in its own package (#851)

* chore: disable generation of interfaceIds (#862)

* build!: move LSP20 in its own package (#853)

* build!: move `LSP4` in its own package (#855)

* build!: move LSP5 + LSP10 in their own packages (#852)

* build!: move LSP5 in its own package

* build: add `lsp2` package dependency in root

* ci: update remappings for compiling `solc_version`

* build: setup LSP10 as its own package

* docs: update dodoc config for LSP5 + LSP10

* build!: move LSP1 in its own package (#854)

* build!: move LSP1 in its own package

* refactor: update import paths for lsp1

* build!: move LSP17ContractExtension in its own package (#858)

* ci: create deployment script to deploy + verify base contracts on mainnet (#849)

* refactor: convert verify balance script into Hardhat task

* ci: add script to deploy and verify base contracts on mainnet

* ci: create bash file + setup mainnet deployer

* ci: refactor workflow to deploy and verify contracts using Hardhat task

* build!: move LSP17ContractExtension in its own package

* docs: add latest LSP7 + LSP8 Tokens audit report (#861)

* wip

---------

Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

* build!: move LSP14 in its own package (#860)

* build: move LSP14 in its own package

* refactor: update import paths + add LSP14 in remappings

* build: upgrade Typescript version in `packages` and `template/` (#867)

* build!:  move LSP0 in its own package (#864)

* build!: move lsp0 to its own package

* refactor: modify imports

* chore: prettify

* test: resolve foundry imports

* test: resolve artifacts import

* chore: add suggested changes

* build!: move LSP6 in its own package (#866)

* build!: move LSP6 in its own package

* test: move most of LSP6 foundry tests in package

* docs: update paths for LSP6 auto-generated docs

* chore: disable prettier for permissions values

* test: fix import paths in Foundry tests at root

* style: ignore artifacts and types from prettier (#868)

* style: ignore artifacts and types from prettier

* build: upgrade Typescript version in `packages` and `template/` (#867)

* build!:  move LSP0 in its own package (#864)

* build!: move lsp0 to its own package

* refactor: modify imports

* chore: prettify

* test: resolve foundry imports

* test: resolve artifacts import

* chore: add suggested changes

* build!: move LSP6 in its own package (#866)

* build!: move LSP6 in its own package

* test: move most of LSP6 foundry tests in package

* docs: update paths for LSP6 auto-generated docs

* chore: disable prettier for permissions values

* test: fix import paths in Foundry tests at root

---------

Co-authored-by: Jean Cvllr <[email protected]>

* ci: cache Typescript `types/` of packages in CI (#863)

* build!: move LSP7 in its own package (#865)

* build!: move lsp17 to its own package (#871)

* build!: re-open LSP16 PR to move it again as its own package (#877)

* build!: move LSP17ContractExtension in its own package (#858)

* ci: create deployment script to deploy + verify base contracts on mainnet (#849)

* refactor: convert verify balance script into Hardhat task

* ci: add script to deploy and verify base contracts on mainnet

* ci: create bash file + setup mainnet deployer

* ci: refactor workflow to deploy and verify contracts using Hardhat task

* build!: move LSP17ContractExtension in its own package

* docs: add latest LSP7 + LSP8 Tokens audit report (#861)

* wip

---------

Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

* build!: move lsp16 to its own package

* build: update package-lock.json

* docs: update docs

* test: remove test command of lsp16

* ci: update ci reference for lsp16

* test: add mock contracts

---------

Co-authored-by: Skima Harvey <[email protected]>
Co-authored-by: YamenMerhi <[email protected]>

* build!: move LSP8 in its own package (#878)

* build!: move LSP8 in its own package

* docs: update auto-generated docs for LSP8 package

* test: update path for LSP8Mintable TS types

* build!: move LSP3 and Universal Profile in their own package (#879)

* build!: move LSP9 in its own package (#869)

* feat: create LSP12 package (#882)

* build!: move LSP1 URD in its own package (#880)

* build!: create lsp23 package (#883)

* build!: create lsp23 package

* refactor: update types path in lsp23 tests

* ci: fix benchmark

* test: replace use of factories with types factories

* tests: fix lsp6 types issue

* tests: clean up lsp20 types issues

* tests: clean up lsp7 types issue

* tests: fix up types issues

* tests: fix reentrancy tests

* build: update package names (#885)

* build: update package names

* chore: update remmapingss

* chore: fix import remappings

* chore: update dodoc config

---------

Co-authored-by: CJ42 <[email protected]>

* feat: move constants in their respective packages (#884)

* build: setup template package as `module`

* build: setup constant export file in template

* refactor!: move each TS constants & Types into their respective packages

* refactor: add constants and typings for LSP2

* refactor: import interface IDs, typeIds and data keys per sub-package into root

* chore: rename prettier config files to `.cjs`

* revert: remove type `module`

* chore: update import paths

* build: register `build:js` command

* build: fix `build:js` command and missing dependencies and configs

* ci: cache `dist` folder

* test: update import paths for constants and types

* docs: add missing generated docs paths

* chore: update incorrect Typechain paths

* chore: remove `smock` library

* refactror: remove legacy contracts & tests (#890)

* docs: add packages table, npm version to each package (#886)

* chore: create packages table

* chore: add npm versaion badges to packages

* build!: upgrade all packages + root to latest Hardhat version and ethers v6 (#889)

* build!: create final package for `@lukso/lsp-smart-contracts` (#896)

* chore!: move `@lukso/lsp-smart-contracts` in its own package

* build: move all the build and config files into `packages/lsp-smart-contracts`

* test: move all the tests/ under `packages/lsp-smart-contracts`

* build: organise `package.json` for root and `@lukso/lsp-smart-contracts`

* build: cleanup test and scripts commands from root to package

* ci: adjust CI for build lint test for all packages

* chore: remap import paths for `LSP0ERC725Account` to `@lukso/lsp0-contracts/`

* ci: update CI job path runner for `solc_version`

* build: tmp turn off global import disallowed in `.sol` file for `lsp-smart-contracts`

* chore: remap import paths

* test: fix Benchmark tests for ethers v6 syntax

* chore: fix some Solidity import path compiler errors

* build: update `package-lock.json`

* test: update foundry tests setting for `@lukso/lsp-smart-contracts`

* chore: add missing environnement variable in `turbo.json`

* test: repair tests that import helpers from root

* chore: fix types imports in tests

* build: adjust foundry build settings to prevent race condition when installing solc in CI

* chore: ignore temporarily lsp16 package for foundry tests

* ci: disable temporarily foundry gas report in CI

* ci: specify working directory for gas benchmark CI

---------

Co-authored-by: b00ste <[email protected]>

* chore: export artifacts from each package (#895)

* chore: include types in the release package (#898)

* build: prepare manifest file (#897)

* chore: update manifest file for release

* chore: add lsp-smart-contracts package

* chiore: add pre-release true to lsp-smart-contracts package

* build: remove `release-as` options in favour of git commit message `release-as`

---------

Co-authored-by: CJ42 <[email protected]>

* ci: setup CI to release per packages individually (#900)

* docs: add documentation in `RELEASE.md` for creating pre-releases per packages

* ci: update CI for monorepo configs

* docs: add extra mention for pre-releases

* ci: create JS script to publish each packages on npm

* feat!: allow operator to revoke himself (#901)

* feat!: allow operator to revoke himself

* test: add test for operator revoking himself

* refactor!: change LSP7 interfaceId

* chore: fix parameter and generate natspec

* Make `attributes` optional (#872)

* chore: do suggested changes

* feat: Add contract asset type (#891)

* Add contract asset

* Make fileType optional

* PR remarks

* Change names

* chore: re-add updated tests in LSP7 + LSP8

---------

Co-authored-by: Dominik Zborowski <[email protected]>
Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

---------

Co-authored-by: b00ste.lyx <[email protected]>
Co-authored-by: Skima Harvey <[email protected]>
Co-authored-by: Yamen Merhi <[email protected]>
Co-authored-by: b00ste <[email protected]>
Co-authored-by: Dominik Zborowski <[email protected]>
richtera pushed a commit that referenced this pull request Mar 6, 2024
* build!: setup monorepo with turborepo for `@lukso/lsp-smart-contracts`

* build!: move LSP2 as its own package (#829)

* build: start setting Turborepo configs for the monorepo (#828)

* build!: setup lsp-smart-contracts as monorepo

* build: fix setup eslint for root + packages

* build: setup LSP package template with instructions

* build: add `COVERAGE` as env variable

* build: fix package-lock

* build: keep root config for eslint

* ci: update CI commands to run temporarily steps for root + package

* build: replace `dts` by `unbuild`

* docs: apply new prettier to auto-generated docs

* build: add missing npm command for `turbo test`

* build!: setup lsp-smart-contracts as monorepo

* build: fix setup eslint for root + packages

* build: setup LSP package template with instructions

* chore: start moving LSP2 in its own package

* chore: setup Foundry tests for LSP2

* chore: remove other folders not relevant

* build: upgrade packages dependencies

* ci: update CI for solc_version to allow `packages/` path

* build: use `eslint-config-custom` as internal dependency at root

* docs: update autogenerated docs config

* ci: remove `lsp2` in testing matrix

* chore: update README of LSP2 + template packages

* feat: remove duplicated content (#856)

* ci: remove import require tests for testing constant imports (#859)

* build!: move LSP25 in its own package (#851)

* chore: disable generation of interfaceIds (#862)

* build!: move LSP20 in its own package (#853)

* build!: move `LSP4` in its own package (#855)

* build!: move LSP5 + LSP10 in their own packages (#852)

* build!: move LSP5 in its own package

* build: add `lsp2` package dependency in root

* ci: update remappings for compiling `solc_version`

* build: setup LSP10 as its own package

* docs: update dodoc config for LSP5 + LSP10

* build!: move LSP1 in its own package (#854)

* build!: move LSP1 in its own package

* refactor: update import paths for lsp1

* build!: move LSP17ContractExtension in its own package (#858)

* ci: create deployment script to deploy + verify base contracts on mainnet (#849)

* refactor: convert verify balance script into Hardhat task

* ci: add script to deploy and verify base contracts on mainnet

* ci: create bash file + setup mainnet deployer

* ci: refactor workflow to deploy and verify contracts using Hardhat task

* build!: move LSP17ContractExtension in its own package

* docs: add latest LSP7 + LSP8 Tokens audit report (#861)

* wip

---------

Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

* build!: move LSP14 in its own package (#860)

* build: move LSP14 in its own package

* refactor: update import paths + add LSP14 in remappings

* build: upgrade Typescript version in `packages` and `template/` (#867)

* build!:  move LSP0 in its own package (#864)

* build!: move lsp0 to its own package

* refactor: modify imports

* chore: prettify

* test: resolve foundry imports

* test: resolve artifacts import

* chore: add suggested changes

* build!: move LSP6 in its own package (#866)

* build!: move LSP6 in its own package

* test: move most of LSP6 foundry tests in package

* docs: update paths for LSP6 auto-generated docs

* chore: disable prettier for permissions values

* test: fix import paths in Foundry tests at root

* style: ignore artifacts and types from prettier (#868)

* style: ignore artifacts and types from prettier

* build: upgrade Typescript version in `packages` and `template/` (#867)

* build!:  move LSP0 in its own package (#864)

* build!: move lsp0 to its own package

* refactor: modify imports

* chore: prettify

* test: resolve foundry imports

* test: resolve artifacts import

* chore: add suggested changes

* build!: move LSP6 in its own package (#866)

* build!: move LSP6 in its own package

* test: move most of LSP6 foundry tests in package

* docs: update paths for LSP6 auto-generated docs

* chore: disable prettier for permissions values

* test: fix import paths in Foundry tests at root

---------

Co-authored-by: Jean Cvllr <[email protected]>

* ci: cache Typescript `types/` of packages in CI (#863)

* build!: move LSP7 in its own package (#865)

* build!: move lsp17 to its own package (#871)

* build!: re-open LSP16 PR to move it again as its own package (#877)

* build!: move LSP17ContractExtension in its own package (#858)

* ci: create deployment script to deploy + verify base contracts on mainnet (#849)

* refactor: convert verify balance script into Hardhat task

* ci: add script to deploy and verify base contracts on mainnet

* ci: create bash file + setup mainnet deployer

* ci: refactor workflow to deploy and verify contracts using Hardhat task

* build!: move LSP17ContractExtension in its own package

* docs: add latest LSP7 + LSP8 Tokens audit report (#861)

* wip

---------

Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

* build!: move lsp16 to its own package

* build: update package-lock.json

* docs: update docs

* test: remove test command of lsp16

* ci: update ci reference for lsp16

* test: add mock contracts

---------

Co-authored-by: Skima Harvey <[email protected]>
Co-authored-by: YamenMerhi <[email protected]>

* build!: move LSP8 in its own package (#878)

* build!: move LSP8 in its own package

* docs: update auto-generated docs for LSP8 package

* test: update path for LSP8Mintable TS types

* build!: move LSP3 and Universal Profile in their own package (#879)

* build!: move LSP9 in its own package (#869)

* feat: create LSP12 package (#882)

* build!: move LSP1 URD in its own package (#880)

* build!: create lsp23 package (#883)

* build!: create lsp23 package

* refactor: update types path in lsp23 tests

* ci: fix benchmark

* test: replace use of factories with types factories

* tests: fix lsp6 types issue

* tests: clean up lsp20 types issues

* tests: clean up lsp7 types issue

* tests: fix up types issues

* tests: fix reentrancy tests

* build: update package names (#885)

* build: update package names

* chore: update remmapingss

* chore: fix import remappings

* chore: update dodoc config

---------

Co-authored-by: CJ42 <[email protected]>

* feat: move constants in their respective packages (#884)

* build: setup template package as `module`

* build: setup constant export file in template

* refactor!: move each TS constants & Types into their respective packages

* refactor: add constants and typings for LSP2

* refactor: import interface IDs, typeIds and data keys per sub-package into root

* chore: rename prettier config files to `.cjs`

* revert: remove type `module`

* chore: update import paths

* build: register `build:js` command

* build: fix `build:js` command and missing dependencies and configs

* ci: cache `dist` folder

* test: update import paths for constants and types

* docs: add missing generated docs paths

* chore: update incorrect Typechain paths

* chore: remove `smock` library

* refactror: remove legacy contracts & tests (#890)

* docs: add packages table, npm version to each package (#886)

* chore: create packages table

* chore: add npm versaion badges to packages

* build!: upgrade all packages + root to latest Hardhat version and ethers v6 (#889)

* build!: create final package for `@lukso/lsp-smart-contracts` (#896)

* chore!: move `@lukso/lsp-smart-contracts` in its own package

* build: move all the build and config files into `packages/lsp-smart-contracts`

* test: move all the tests/ under `packages/lsp-smart-contracts`

* build: organise `package.json` for root and `@lukso/lsp-smart-contracts`

* build: cleanup test and scripts commands from root to package

* ci: adjust CI for build lint test for all packages

* chore: remap import paths for `LSP0ERC725Account` to `@lukso/lsp0-contracts/`

* ci: update CI job path runner for `solc_version`

* build: tmp turn off global import disallowed in `.sol` file for `lsp-smart-contracts`

* chore: remap import paths

* test: fix Benchmark tests for ethers v6 syntax

* chore: fix some Solidity import path compiler errors

* build: update `package-lock.json`

* test: update foundry tests setting for `@lukso/lsp-smart-contracts`

* chore: add missing environnement variable in `turbo.json`

* test: repair tests that import helpers from root

* chore: fix types imports in tests

* build: adjust foundry build settings to prevent race condition when installing solc in CI

* chore: ignore temporarily lsp16 package for foundry tests

* ci: disable temporarily foundry gas report in CI

* ci: specify working directory for gas benchmark CI

---------

Co-authored-by: b00ste <[email protected]>

* chore: export artifacts from each package (#895)

* chore: include types in the release package (#898)

* build: prepare manifest file (#897)

* chore: update manifest file for release

* chore: add lsp-smart-contracts package

* chiore: add pre-release true to lsp-smart-contracts package

* build: remove `release-as` options in favour of git commit message `release-as`

---------

Co-authored-by: CJ42 <[email protected]>

* ci: setup CI to release per packages individually (#900)

* docs: add documentation in `RELEASE.md` for creating pre-releases per packages

* ci: update CI for monorepo configs

* docs: add extra mention for pre-releases

* ci: create JS script to publish each packages on npm

* feat!: allow operator to revoke himself (#901)

* feat!: allow operator to revoke himself

* test: add test for operator revoking himself

* refactor!: change LSP7 interfaceId

* chore: fix parameter and generate natspec

* Make `attributes` optional (#872)

* chore: do suggested changes

* feat: Add contract asset type (#891)

* Add contract asset

* Make fileType optional

* PR remarks

* Change names

* chore: re-add updated tests in LSP7 + LSP8

---------

Co-authored-by: Dominik Zborowski <[email protected]>
Co-authored-by: Jean Cvllr <[email protected]>
Co-authored-by: CJ42 <[email protected]>

---------

Co-authored-by: b00ste.lyx <[email protected]>
Co-authored-by: Skima Harvey <[email protected]>
Co-authored-by: Yamen Merhi <[email protected]>
Co-authored-by: b00ste <[email protected]>
Co-authored-by: Dominik Zborowski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants