Masa Identity Contracts
Contract Deployments
Addresses of the deployed contracts
You can see the deployment address of the smart contracts in the addresses.json file. For every deployed smart contract you will find a <network>.<contract>
value.
Configuration
The admin
is allowed to set configuration variables in the smart contracts.
The base url for the Metadata url that is being generated from the contract
Roles
deployer
: Deploys the contract, has no rights after everything has properly handed over to other rolesadmin
: Delegated to the Masa Service account inside the Masa API. It has the rights to administrate the smart
contractsminter
: Minter role. It has the rights to mint tokens to customer's wallets.
Interface
Deployment
Preparations
- Set
DEPLOYER_PRIVATE_KEY
to the deployers private key in .env.{network}.secret
- Set
COINMARKETCAP_API_KEY
to the CoinMarketCap API key in .env
, if needed - Set
ANKR_API_KEY
to the Ankr API key in .env
, if needed - Set
ETHERSCAN_API_KEY
to the Etherscan API key in .env
, if needed - Set
BSCSCAN_API_KEY
to the Etherscan API key in .env
, if needed - Set
POLYGONSCAN_API_KEY
to the Etherscan API key in .env
, if needed - Set
CELOSCAN_API_KEY
to the Etherscan API key in .env
, if needed - Set
BASESCAN_API_KEY
to the Etherscan API key in .env
, if needed
Deploy
Run: yarn deploy --network {network}
to deploy.
Installation and usage
Installing via npm
package:
npm i @masa-finance/masa-contracts-identity
Import in your project:
import {
SoulboundIdentity,
SoulboundIdentity__factory
} from "@masa-finance/masa-contracts-identity";
const soulboundIdentity: SoulboundIdentity = SoulboundIdentity__factory.connect(
<address>,
<provider>
);
console.log(await soulboundIdentity.symbol());
Generation of a new release
From a clean main
branch you can run the release task bumping the version accordingly based on semantic versioning:
yarn release
The task does the following:
- Bumps the project version in
package.json
- Creates a Git tag
- Commits and pushes everything
- Creates a GitHub release with commit messages as description
- Git tag push will trigger a GitHub Action workflow to do a
npm
release
For the GitHub releases steps a GitHub personal access token, exported as GITHUB_TOKEN
is required. You can add this
environment variable to the .env
file. Setup