Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the contracts monorepo doesn't contain contracts which have been forked from upstream repositories (e.g. https://github.com/immutable/wallet-contracts and https://github.com/immutable/seaport). This is to enable us to merge with any future upstream changes in the parent repositories. These contracts are stored separately and published to different npm packages e.g.
@imtbl/wallet-contracts
, most of which are difficult for developers to discover. This introduces a number of challenges for integrating developers, who expect to find these contracts in@imtbl/contracts
. Additionally, this makes it more challenging for us to maintain a clear record of the latest versions of all Immutable contracts, and to monitor all contract changes in one place (the general goals of the monorepo)Goals:
Seaport
can be imported as@imtbl/contracts/seaport/Seaport.sol
,Factory
can be imported as@imtbl/contracts/passport/Factory.sol
.Solution:
forks
directory with git submodules for all forked repositoriesforks.json
which is interpreted byscripts/build.ts
(run viayarn build
) to define how these forks should be incorporated into the main codebaseforks/seaport/contracts
-->contracts/seaport
forks.json
if necessary, then runyarn.build
to commit the new structure to git