@startbahn/startrail v1.19.0-staging-1
Startrail
:memo: Abstraction
This is a repository that manages smart contract and utility scripts on the blockchain side. There are basically solidity files as well as scripts that are for deploying and upgrading smart contracts. If you want to check the server-side app or the front-end app, please go to other repositories.
:wrench: Build Status
:file_folder: Directory
(ProjectRoot)
├── abi // hardhat-exporter generated
├── artifacts // hardhat compiler generated JSON
├── bin // project utility shell scripts
├── contracts
│ ├── archived // contracts from prior releases
│ ├── bulk
│ ├── common
│ ├── lib
│ ├── licensedUser
│ ├── name
│ ├── proxyAdmin
│ ├── startrailregistry
│ └── test // contracts used in tests only
├── deploy // hardhat-deploy scripts (used in test fixtures)
├── deployments // deployed addresses registry [eg. mainnet/deploy.json]
├── docs // documentation - diagrams, markdown, ...
├── hardhat.config.js
├── package.json
├── README.md
├── scripts // scripts interacting with hardhat
├── test // test scripts
├── utils // shared logic - tests, scripts, deploy all use these
:dizzy: Services
We have several smart contracts in this project. Each contract is basically independent from others, and they are separated in each directory. An explanation of each service is described in Notion.
:page_with_curl: StartrailRegistry Manages non-fungible token, which is inherited the ERC721.
:page_with_curl: NameRegistry Registry of contract addresses.
:page_with_curl: LicensedUserManager Manages licensed user wallets.
:page_with_curl: BulkIssue Manages the bulk issing logic.
You can see the overall relation of contracts here. :mag: Startrail Contract Overall
:minidisc: Setup local
Prerequistites
- Git
- Yarn ^1.22.5
- Node ^14.15.0
Setup
> git clone git@github.com:startbahn/startrail.git
> cd app/
> yarn
Live networks (optional)
If you need to interact with live deployments (eg. rinkeby) then set a provider in .env
with the variable <network>_PROVIDER_URL
.
If you need to send transactions to a live environment then set a private key in .env
with the variable <network>_PRIVATE_KEY
. This key will be the default key used for sending transactions from hardhat scripts or hardhat console commands.
Remember to use --network <network>
with the hardhat cli. See the hardhat docs for more information about using different networks https://hardhat.org/config/#networks-configuration
:bulb: Tests
All tests are run using hardhat and make use of it's built in features including the ethers js integration. See the hardhat docs for information about tests in hardhat.
To run the tests use yarn test
or npx hardhat test
CircleCI is configured to run all the tests also. See .circleci/config.yml
for details.
:bookmark_tabs: Test strategy
:bookmark: Contract Addresses
You can check the address of each contract in deploy.json
under deployments/. It is managed according to each network such as Mainnet and Rinkeby, as well as in some cases the branch name.
See also the well-used address list here. :mag: Important Address List
:crystal_ball: Mainnet
Etherscan URLs
StartrailRegistry NameRegistry Administrator - Not yet deployed LicensedUserManager - Not yet deployed BulkIssue
deploy.json
:crystal_ball: Rinkeby
Release Branch ( Stable Development )
Develop Branch ( Active Development )
:mega: Important Documents
Event List
:bookmark_tabs: Startrail Event List
Restriction List
:bookmark_tabs: Startrail Restriction List
Main features
:bookmark_tabs: Certificate Creation Flow
:bookmark_tabs: Bulk Issuance
:bookmark_tabs: Transfer Ownership
Deployment
:bookmark_tabs: Startrail Contract Deployment
:bookmark_tabs: Upgradable Deployment Details
:bookmark_tabs: File Sharing
Test
:bookmark_tabs: Test strategy
Utility Script
:bookmark_tabs: Utility Script
1 month ago
2 months ago
2 months ago
3 months ago
4 months ago
4 months ago
4 months ago
5 months ago
5 months ago
11 months ago
11 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago