Sequence: a modular web3 stack and smart wallet for Ethereum chains
npm install 0xsequence ethers
or
pnpm install 0xsequence ethers
or
yarn add 0xsequence ethers
Below are notes and instructions on how to get your development environment up and running, and enjoyable.
Install dependencies
Run, pnpm install
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
package-level.
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,
run pnpm build
.
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.
Authorization on https://www.npmjs.com/ to push to the 0xsequence organization's packages is required.
pnpm login
git checkout master && git reset --hard && git clean -dfx && pnpm i
pnpm changeset
b. select all packages
c. update all packages with either a minor or patch bump according to semver
d. add a summary of the form: package: description of a single change
e. repeat a-d until all changes are accounted forpnpm changeset:version && pnpm i && pnpm build && pnpm i
git diff
and copy the newest version according to the changelogsgit commit -a -m <new version here>
git push
pnpm changeset:publish
and enter your 2fa totp token when promptedgit push --tags
Authorization on https://www.npmjs.com/ to push to the 0xsequence organization's packages is required.
Snapshot releases are versioned as 0.0.0-YYYYmmddHHMMSS and are intended for testing builds only.
pnpm login
git checkout <branch or commit to snapshot> && git reset --hard && git clean -dfx && pnpm i
pnpm changeset:snapshot
a. select all packages
b. update all packages with a patch bump
c. any summary is ok
d. enter your 2fa totp token when prompted
e. note the snapshot version 0.0.0-YYYYmmddHHMMSSgit reset --hard
pnpm test
or, separately pnpm test:server
and pnpm test:run
pnpm test:only <test-file-basename>
, ie. pnpm test:only window-transport
Error: error:0308010C:digital envelope routines::unsupported
,
make sure to first set, export NODE_OPTIONS=--openssl-legacy-provider
Apache-2.0
Copyright (c) 2017-present Horizon Blockchain Games Inc. / https://horizon.io