Sequence: a modular web3 stack and smart wallet for Ethereum chains
npm install 0xsequence ethers
pnpm install 0xsequence ethers
yarn add 0xsequence ethers
Below are notes and instructions on how to get your development environment up and running, and enjoyable.
Workflow -- we use the amazing preconstruct package to handle our monorepo build system.
Local dev -- when you're working on the code in this repository, you can safely run
pnpm dev at the root-level, which will link all packages/ together, so that when a
local dependency from packages/ is used by another, it will automatically be linked
without having to run a build command. Just remember: run
pnpm dev anytime you developing
in this repo. Note, that when you run
pnpm build it will clear the dev environment, so
you will need to run
pnpm dev again after a build. However,
pnpm build should only be
used when making a release.
Testing -- to test the system, you can run
pnpm test at the top-level or at an individual
Type-checking -- to typecheck the system you can run
pnpm typecheck at any level.
Building -- to compile the project to dist files for a release, run
pnpm build at
the root-level. Note building packages repeatedly during development is unnecessary with
preconstruct. During local development run
pnpm dev and when building to make a release,
Versioning -- this repository uses the handy changesets package for package versioning across the monorepo, as well as changelogs. See Releasing section below.
0xsequence uses changesets to do versioning. This makes releasing really easy and changelogs are automatically generated.
pnpmto make sure everything is up to date
pnpm changesetto generate a new .changeset/ entry explaining the code changes
pnpm ito update the pnpm-lock.yaml.
pnpm build && pnpm testto double check all tests pass
pnpm version-packagesto bump versions of the packages
pnpm installso we update our pnpm-lock.yaml file with our newly created version
git push --no-verify
pnpm release. If the 2FA code timesout while publishing, run the command again with a new code, only the packages that were not published will be published.
git push --tags --no-verify
NOTE: snapshot release is for dev preview, it's similar to the above, but:
pnpm changeset version --snapshot
pnpm changeset publish --tag snapshot
pnpm testor, separately
pnpm test:only <test-file-basename>, ie.
pnpm test:only window-transport
Error: error:0308010C:digital envelope routines::unsupported, make sure to first set,
Copyright (c) 2017-present Horizon Blockchain Games Inc. / https://horizon.io