This project was bootstrapped with Create React App.
- Make sure your local chain is running (e.g. Ganache) and all repos listed below are cloned to the same folder (e.g.
threshold-network
). - Clone https://github.com/keep-network/keep-core repo:
- Make sure the
local
network config in/solidity-v1/truffle-config.js
is correct for your chain.
- Make sure the
- Clone https://github.com/threshold-network/solidity-contracts repo:
- Make sure the
development
network config inhardhat.config.ts
is correct for your chain.
- Make sure the
- Clone https://github.com/keep-network/keep-ecdsa repo:
- Make sure the
local
network config in/solidity/truffle.js
is correct for your chain.
- Make sure the
- Clone https://github.com/keep-network/tbtc repo:
- Make sure the
development
network config in/solidity/truffle-config.js
is correct for your chain.
- Make sure the
- Clone https://github.com/keep-network/coverage-pools repo:
- Make sure the
development
network config in/hardhat.config.ts
is correct for your chain.
- Make sure the
- Clone https://github.com/threshold-network/components repo
yarn
yarn start:dev
Open http://localhost:3000 to view it in the browser.
Note: if you need re run T dapp and all necessary contracts are deployed use yarn start:dev -m
To make sure the changes made in local depository of components
lib are implemented in T dapp you should recompile the lib using:
yarn add-components-lib
REACT_APP_SUPPORTED_CHAIN_ID=5
REACT_APP_ETH_HOSTNAME_HTTP=<your http ETH hostname- eg. Infura>
REACT_APP_ETH_HOSTNAME_WS=<your ws ETH hostname- eg. Infura>
// We can skip this env variable- the dapp uses the correct address
// of Multicall contract for Görli under the hood.
REACT_APP_MULTICALL_ADDRESS=$MULTICALL_ADDRESS
yarn
yarn upgrade @keep-network/coverage-pools@goerli \
@keep-network/ecdsa@goerli \
@keep-network/keep-core@goerli \
@keep-network/keep-ecdsa@goerli \
@keep-network/random-beacon@goerli \
@keep-network/tbtc@goerli \
@keep-network/tbtc-v2@goerli \
@keep-network/tbtc-v2.ts@goerli \
@threshold-network/coverage-pools@npm:@keep-network/coverage-pools@goerli \
@threshold-network/solidity-contracts@goerli
NOTE 1: We use the same Goerli versions for both
@keep-network/coverage-pools
and @threshold-network/coverage-pools
, because
we don't have the newest version of the package on Goerli network, only on the
Mainnet.
NOTE 2: If you encounter an expected manifest
error while executing this,
then try providing an explicit version of the keep-core
package:
@keep-network/keep-core@1.8.1-goerli.0
The error is probably caused by a bug in Yarn:
yarnpkg/yarn#4731.
NOTE 3: The token-dashboard
package contains an indirect dependency to
@summa-tx/relay-sol@2.0.2
package, which downloads one of its sub-dependencies
via unathenticated git://
protocol. That protocol is no longer supported by
GitHub. This means that in certain situations installation of the package or
update of its dependencies using Yarn may result in The unauthenticated git protocol on port 9418 is no longer supported
error.
As a workaround, we advise changing Git configuration to use https://
protocol
instead of git://
by executing:
git config --global url."https://".insteadOf git://
yarn start
Open http://localhost:3000 to view it in the browser.
The following procedure allows to deploy T token dashboard to production:
- Developer with write access to the repository creates a release branch:
releases/mainnet/<version>
. Release branch should never be merged tomain
and creating a PR with a release branch is not required. Dependencies and project version needs to be updated on the release branch. All-dev
,-goerli
dependencies need to be updated to mainnet versions. See this commit forv1.0.0
release as a good example. - Preview of the release branch will be uploaded to
preview.dashboard.threshold.network
under the directory named after the release branch. For example:https://preview.dashboard.threshold.network/releases/mainnet/v1.0.0/index.html
. A new version will be uploaded after each push to the release branch. - After reviewing the mainnet dashboard preview, any developer with write access to the repository can tag the commit on the release branch and create a new release on GitHub.
- Once a new release is created, GitHub Action for mainnet T dashboard deployment will get automatically invoked. This action requires the manual approval of someone else from the development team.
- Once the release action is approved, the new version is automatically
deployed to
dashboard.threshold.network
.