Smart Contracts for MyriadFlow
You'll find here the NFT contracts, tests for that contract, a script that deploys those contracts. It also comes with a variety of other tools, preconfigured to work with the project code.
- Clone the repo by using
git clone https://github.com/MyriadFlow/smartcontracts
- Install the dependencies by using the command
yarn
. This way your environment will be reproducible, and you will avoid future version conflicts.
- Rename the file
.env.example
to.env
- Update the values of the given parameters:
ETHERSCAN_API_KEY=
POLYGONSCAN_API_KEY=
ROPSTEN_URL=
RINKEBY_RPC_URL=
MATICMUM_RPC_URL=
ETHEREUM_RPC_URL=
MNEMONIC=
-
ETHERSCAN_API_KEY
is required to verify the contract deployed on the blockchain network. Since we're using the Polygon Testnet, We need to get the API key fromhttps://polygonscan.com
-
Next we need to update the RPC URL based on the network of our choice. Since we have chosen the Polygon Testnet, we need to provide
MATICMUM_RPC_URL
from thehttps://alchemy.com
orhttps://infura.io
. In case if we choose, Rinkeby or Ropsten, we need to update their respective RPC URLs. -
Lastly we need to provide the wallet from which the gas will be deducted in order to deploy the smart contract. We provide the
MNEMONIC
i.e., The seed words from the ETH wallet/metamask to pay for the transaction. Ensure that there are enough funds in the wallet to pay for the transaction.
Next, if you take a look at contracts/
, you should be able to find StoreFront.sol
& Marketplace.sol
and the Rarible
Royalties Library.
Compile the smart contract by using
yarn hardhat compile
or
yarn compile
This project has tests that uses @openzeppelin/test-helpers
. If we take a look at test/
, you should be able to find various test.js
.
To run the tests, we can use command:
yarn test
&&
yarn coverage
Next, to deploy the contract we will use a Hardhat script. Inside scripts/
we use launch.js
and run it with suitable network, you like
yarn launch --network maticmum
TradeHub Deployed to: 0xc2d4d1E0103cfe42c35398Edce983f4c8999F429
SignatureSeries Deployed to: 0xe5c5FDBde18F94a50C47BC7b7f8dBe484A476B78
see documentation here
To try out Etherscan verification, we need to deploy a contract to an Ethereum network that's supported by Etherscan, such as Polygon Testnet - maticmum
.
Then, copy the deployment address and paste it in to replace DEPLOYED_CONTRACT_ADDRESS
in this command:
yarn hardhat verify --network maticmum --constructor-args MarketplaceArguments.js DEPLOYED_CONTRACT_ADDRESS
yarn hardhat verify --network maticmum --constructor-args StoreFrontArguments.js DEPLOYED_CONTRACT_ADDRESS
where MarketplaceArguments.js
& StoreFrontArguments.js
is a javascript module that exports the argument list.
Finally, visit the contract address on the Blockchain Explorer (PolygonScan) and interact with the smart contract at section Read Contract
and Write Contract
graph init --index-events
graph codegen && graph build
graph auth --product hosted-service $GRAPH_TOKEN
graph deploy --product hosted-service myriadflow/marketplacev1
- MarketplaceV1:
Build completed: QmdPYT6USJwaNQKExAsYggHfLeSoK6wWwYz1YmX5ui6YeM
>Deployed to https://thegraph.com/explorer/subgraph/myriadflow/marketplacev1
- StoreFront-V1:
Build completed: QmSbPdM1RxBVouxG9THHdDtWchLZBsNzHZGurEMi4nJyfu
>Deployed to https://thegraph.com/explorer/subgraph/myriadflow/storefront-v1
- Subgraph endpoints:
Queries (HTTP): https://api.thegraph.com/subgraphs/name/myriadflow/marketplacev1 Queries (HTTP): https://api.thegraph.com/subgraphs/name/myriadflow/storefront-v1
Run
GRAPH_NODE_URL=https://xyz/ \
GRAPH_DEPLOY_VERSION=vx.y.z \
GRAPH_IPFS_URL=https://xyz/ \
./deploy.sh