@gmdaoeth/collections
v3.18.0
Published
gmdao collections
Downloads
162
Readme
collections
An npm package that includes collection and contract info, including ABIs and addresses. A single source of truth across all gmdao projects, reducing manual copy-pasta.
Installing the package
This package is published to npm and can be installed like any other npm package.
yarn add @gmdaoeth/collections@latest
Usage
getContract
const fracturaContract = getContract(ChainID.MAINNET, CollectionID.Factura, provider);
Development
Generating new types
- do
yarn gen
from the root directory
Publishing a new version
Publishing a new version is done as follows:
- branch-off from main
- run
yarn version --new-version [new-version] && git push --follow-tags
- CI will recognise the new tag and publish to npm
Build and publish
The publish step is done via a GitHub workflow, collections.publish.yml.
When executing the yarn version
command, yarn will do a couple of things. First it will make a commit to modify the
package.json to be equal to the new version you provided, it will then tag the commit with the version. The second
command you instruct, git push --follow-tags
will push the new commit and tags to the branch. The workflow has an
on.push.tags
trigger, filtered on tags prefixed with collections/v. On a run, the workflow simply does a
yarn publish [new-version]
based on the tag version that triggered the run. Note, the version prefix is set in the
.yarnrc file included in this directory.
The publish step will push to the gmdaoeth org npm package, therefore an npmjs token with automation privileges
needs to be added as a secret to the workflow, this is passed as env.NODE_AUTH_TOKEN
.
Manually publishing a new package
If needed/you want, you can manually publish a new version of the package, simply by running yarn publish
from the
root of the project. For example, you may want to test your branch changes from another repo, so can do something like
yarn publish --new-version 1.0.1-alpha
Note, in order to publish from your machine you will need to have logged-in with npm (use npm adduser
and enter your
npm login details). Additionally, your account should be added to the @gmdaoeth
team on npmjs.