chore: add readme base (#12)

* chore: add readme base

* chore: add proof of concept section on readme

* chore: add contributing file

* chore: update contributing opening line

* chore: add nft presentable info for contract roadmap

* chore: add developing and testing sections on readme

* chore: remove deploy section on contributing

* chore: add code styling section in readme

* chore: add project structure section in readme

* Add readme with initialization text.

* chore: add user interface section in readme

* update the interactions guide

* Moved test and deployment guides to the main readme and implemented the requested changes.

* Change NPM commands to Yarn commands

* Add a note for forge-std

* docs: fix repo links

* style: add style on readme and remove comments from merge

* docs: add interaction script examples on readme

* docs: remove extra separator

* docs: remove extra separator

* docs: comment mainnet section on readme

* chore: fix repo links on package.json

* docs: update project sctructure

* chore: UI readme (#55)

* docs: update test output examples

* docs: add submodule fetch command

* docs: add new texts mentioned in pr

* docs: add new texts mentioned in pr

* docs: fix hardhat node command

* chore: move POC info to wiki

* docs: remove extra separator

* fix: deployment scripts (#56)

* chore: add comments in .env.example

* chore: update interaction scripts readme section position and link to a deployment guide

* docs: fix hint message position

* doc: add external lobraries section

* chore: update repo name and its bindings (#57)

* docs: update readme libraries section

Co-authored-by: EmperorOrokuSaki <artie.eth@gmail.com>
Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
Co-authored-by: Camila Sosa Morales <camisosa@fleek.co>
Co-authored-by: Janison Sivarajah <jsonsivar@gmail.com>
This commit is contained in:
Felipe Mendes 2022-12-22 11:13:45 -03:00 committed by GitHub
parent 8b88cf2881
commit 2533f162cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 934 additions and 373 deletions

View File

@ -1,3 +1,9 @@
API_URL=https://matic-mumbai.chainstacklabs.com/
PRIVATE_KEY =0x
POLYSCAN_API=
# The RPC API URL (e.g. https://rpc-mumbai.maticvigil.com https://polygon-mumbai.g.alchemy.com/v2/your-api-key)
API_URL=
# The exported wallet private key (e.g 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80)
# You can reach info about how to get a private key from Metamask on https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key
PRIVATE_KEY=
# The blocks explorer API (e.g https://mumbai.polygonscan.com/)
POLYSCAN_API=https://mumbai.polygonscan.com/

52
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,52 @@
# Contributing
The core developer team of Fleek Non Fungible Apps welcomes all contributions from the community to achieve consistent code updates and enhancements.
If you want to help us to improve the project you can always start a conversation through the [issues page](https://github.com/fleekxyz/non-fungible-apps/issues). By doing it make sure you are being ethical and respectful with anyone on the community. We take our open source community seriously and hold ourselves and other contributors to high standards of communication.
## Getting Started
Contributions are made to this repo via Issues and Pull Requests (PRs). A few general guidelines that cover both:
1. Search for existing Issues and PRs related before creating your own;
2. Make sure you are being clear about your ideas and expose as much information as you can (e.g. code samples, images);
3. We will be working hard to handle and respond all Issues as soon as possible, but it can takes time for investigation root causes. Please be patient.
If you don't know where to start, you can take a look in the [Getting Started section on our wiki](https://github.com/fleekxyz/non-fungible-apps/wiki/Getting-Started).
## Issues
The issues page is open to discuss about any subject that is tangible to the project, it can be any problem report, feature request, potential changes, etc.
If you find any topics related to your subject, please feel free to post your story and provide any kind of information you think it might help.
## Pull Requests
All PRs are welcome and it will be the fastest way to solve your issue. We are going to kindly review all of them as fast as possible.
You are able to create branches from the `main` branch and name it in accordance to **conventional
commits** [here](https://www.conventionalcommits.org/en/v1.0.0/), or follow the examples bellow:
```txt
test: adding missing tests
feat: a new feature
fix: a bug fix
chore: build process or auxiliary tool changes
docs: documentation only changes
refactor: code change that neither fixes a bug or adds a feature
style: markup, white-space, formatting, missing semi-colons...
```
Please ensure your code is clear and readable and also provide as much information you can in the description.
> ⚠️ Your code and any changes made needs to be covered with tests
> ⚠️ In case of need, you have to provide all documentation changes within your PR
## Testing
We are up to write tests using both [Hardhat](https://hardhat.org/) and [Foundry](https://book.getfoundry.sh/) frameworks. Its mandatory that all tests were well described and all validations to make the code consistent and secure. To get more information about it, check the [Testing section on our wiki](https://github.com/fleekxyz/non-fungible-apps/wiki/Getting-Started#testing). You can also get some examples of how to test it on [test folder](/test).
## Getting help
Join us on our [Discord Server](https://discord.gg/fleekxyz). Let's build a great community together!

258
README.md Normal file
View File

@ -0,0 +1,258 @@
# Fleek Non Fungible Apps
**The repository for Fleek Non Fungible Apps project**
> 🚧 IMPORTANT 🚧 - This initiative is under development, so this repo should be treated as WIP. The goals and roadmap might change as the project is shaped up.
## ⚡ Overview
This is the landing point for Fleek's initiative to implement infrastructure as Solidity contracts.
The vision is to have this on a suitable L2 or L3 based on EVM so there is flexibility in terms of which chains to work with. And we can create a network of smart contracts that represent the different parts of your stack.
The goal is to be a more verifiable and crypto-friendly Serverless.yaml or Cloudformation manifests that will enable us to develop use cases on top like community hosting.
Get more information about the project on our [wiki](https://github.com/fleekxyz/non-fungible-apps/wiki).
## ⌨️ Developing
### 📁 Project Structure
Inside the root folder you are going to find:
- [/contracts](/contracts): all the developed contracts
- [/deploy](/deploy): scripts used for deployment on different networks
- [/deployments](/deployments): resultant ABI and info for deployments (each network will have a nested folder)
- [/lib](/lib): external modules used by Foundry
- [/scripts](/scripts): any utility scripts used for interacting with deployed contracts
- [/test](/test): tests suits to validate contracts
- [/ui](/ui): a web application to interact with deployed contracts
And after running it locally some folders may be generated:
- `/artifacts`: ABIs and build info generated by Hardhat
- `/cache`: cache info used by Hardhat
- `/forge-cache`: cache info used by Foundry
- `/node_modules`: all dependencies for the Node.js environment
- `/out`: resultant ABIs for all contracts that has interactions
### 📄 Contracts
The contracts present in this project are based in [Solidity](https://github.com/ethereum/solidity) and it uses [Node.js](https://nodejs.org/) for running scripts and [yarn](https://yarnpkg.com/) to keep dependencies management.
> ⚠️ Before starting developing make sure you Solidity, Node.js and yarn correctly installed in your environment
Follow the steps:
1. Clone the repo, [check out how here](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
2. Install the dependencies:
```bash
$ yarn
```
3. Compile the contracts to make sure everything is correct:
```bash
$ yarn compile
```
The output should looks like:
```bash
yarn run v1.22.19
$ hardhat compile
Compiled 14 Solidity files successfully.
Done in 0.98s.
```
4. Now you are able to make your code changes in the project. To help with Solidity, check [the language references](https://docs.soliditylang.org/).
### ✅ Testing Contracts
The project is covered with test suits (Foundry & Hardhat) that must pass to guarantee code integrity.
**HardHat tests**
All HardHat tests are located at [this directory](../test/).
1. Make sure that you have the dependencies installed:
```
$ yarn
```
2. Run:
```
$ yarn test:hardhat
```
The output should finish looking like:
```
...
33 passing (1s)
Done in 2.11s.
```
**Foundry tests**
All Forge tests are located at [this directory](../test/foundry/).
In order to run them, you need to have Forge by Foundry installed on your machine (check [this](https://book.getfoundry.sh/getting-started/installation.html) installation guide).
It is also required for you to have [forge-std](https://github.com/foundry-rs/forge-std/tree/cd7d533f9a0ee0ec02ad81e0a8f262bc4203c653) in your `./lib/` directory. In case you don't have it yet, you can run:
```
$ git submodule update --init --recursive
```
After installing Foundry and its components, you can simply run in the root directory:
```
$ yarn test:foundry
```
It is going to execute all test cases that are described in the [/test/foundry](test/foundry/) directory. Your output should looks like:
```
Test result: ok. 36 passed; 0 failed; finished in 4.06ms
Done in 0.58s.
```
### Running Both Test Environments
Alternatively, you can run both test environments by executing:
```
$ yarn test
```
> ⚠️ Please make sure to update tests as appropriate before pushing code
### 🚀 Deployment
This guide contains instructions to deploy the contract on three networks. If the execution is successful, you will see the contract address on your screen at the end of the instructions.
#### **Hardhat Local Network**
HardHat offers a local testnet environment that allows users and testers to deploy and interact with contracts without the need to contact external APIs and endpoints.
To start your local HardHat network, you need to run a node first. It is important to not terminate the command before proceeding with the instructions:
```
$ yarn node:hardhat
```
To deploy the contract on the HardHat network, execute:
```
$ yarn deploy:local
```
If the execution is successful, you will see the contract address on your screen.
#### **Polygon Mumbai Testnet**
To deploy the contract on the testnet, you have to first export your wallet's private key and update the `.env.example` file at the root directory of this repository.
The [.env.example](./.env.example) file needs to be renamed to `.env` before continuing. Make sure you are using your private API URL, if you have one.
After updating the `.env` file, you can run:
```
$ yarn deploy:mumbai
```
to deploy the contract on the testnet. Please note that your wallet needs to hold enough Mumbai MATIC for the deployment to be successful. To reach more in-depth information about how to deploy contract checkout [this guide](https://wiki.polygon.technology/docs/develop/alchemy).
<!-- TODO: add this section after the mainnet setup is done and tested
**Polygon main-net**
To deploy the contract on the testnet, you have to first export your wallet's private key and update the `.env.example` file at the root directory of this repository.
The [.env.example](./.env.example) file needs to be renamed to `.env` before continuing. Make sure you are using your private API URL, if you have one.
After updating the `.env` file, you can run:
```
yarn deploy:mainnet
```
to deploy the contract on the testnet. Please note that your wallet needs to hold enough Mumbai MATIC for the deployment to be successful.
-->
### ▶️ Interaction scripts
Right away, in the [/scripts](/scripts/) folder you are able to see some scripts that will help you to interact with deployed contracts. By default you are able to select `localhost`, `hardhat` or `mumbai` network name predefined on [hardhat.config.ts](/hardhat.config.ts). The scripts will be using the deployment information stored in the [/deployments](/deployments/) folder. You should have a nested folder for each of the networks you have deployed it. The scripts needs be run using the Hardhat environment following the pattern:
```bash
# Replace <script_name> with the selected script
# Replace <network_name> with the selected network
$ npx hardhat run scripts/<script_name>.js --network <network_name>
```
> 💡You are able to see and change the arguments for each script at the top of each file
<!-- TODO: add the commands here when they are done
### Admin commands
The project should provide a way for interacting with the contract as owner with CLI.
> 🛠️ Work in progress...
-->
### 🖥️ User Interface
Within the project is included a [React](https://reactjs.org/) web application to expose and test the interaction with deployed scripts. Check the [UI readme](/ui/README.md) for more info
### 💅 Code Styling
For code formatting we are using [Prettier](https://prettier.io/) and following the [styling guide from Solidity documentation](https://docs.soliditylang.org/en/v0.8.16/style-guide.html). For formatting the code you are able to run:
```
$ yarn format
```
> ⚠️ Please make sure you are following the code styling guid before pushing code
## 🛣️ Roadmap
Our goal is to reach a point where trustable Solidity contracts can be used for identifying properly the data about web3 applications. Within that goal, we want to also provide ways for users to organize and list information about their application. To get at this we are currently starting with:
- Define trustable and extendable smart contracts and standards
- Prove how the concept would be applicable using static sites
- Prove community hosted apps via these contracts
Later on, when the initiative prove its value, a service will be added to Fleek's platform in a friendly way for anyone be able to get their applications onboard.
## 💡 Proof of concept
The proof of concept is being a work in progress and you can reach more information [here](https://github.com/fleekxyz/non-fungible-apps/wiki/Proof-of-Concept).
## 📚 Dependency Highlights
We use the following libraries to develop Fleek Non Fungible Apps
- [Chakra](https://chakra-ui.com/)
- [Eslint](https://eslint.org/) + [Prettier](https://prettier.io/)
- [Ethers](https://docs.ethers.io/v5/)
- [Foundry](https://book.getfoundry.sh/)
- [Hardhat](https://hardhat.org/)
- [Open Zeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts)
- [React](https://reactjs.org/)
- [Typescript](https://www.typescriptlang.org)
- [Vite](https://vitejs.dev/)
## 🙏 Contributing
This is an open source initiative! Any new idea is welcome, if you want to help us to improve the project please checkout [the contributing guide](/CONTRIBUTING.md).
## 📜 License
Fleek Non Fungible Apps is released under the [MIT License](LICENSE).

View File

@ -1,18 +1,27 @@
const contractName = 'FleekERC721';
const args = [
'FleekSites', // Collection name
'FLKSITE', // Collection symbol
];
module.exports = async ({ getNamedAccounts, deployments }) => {
const { deploy, log } = deployments;
const namedAccounts = await getNamedAccounts();
const { deployer } = namedAccounts;
const { localDeployer: deployer } = namedAccounts;
const deployResult = await deploy('FleekERC721', {
const deployResult = await deploy(contractName, {
from: deployer,
args: ['FleekSites', 'FLKSITE'],
args,
});
if (deployResult.newlyDeployed) {
log(
`contract FleekSites deployed at ${deployResult.address} using ${deployResult.receipt.gasUsed} gas`
`Contract ${contractName} deployed at ${deployResult.address} using ${deployResult.receipt.gasUsed} gas by account ${deployer}`
);
} else {
log(`using pre-existing contract FleekSites at ${deployResult.address}`);
log(
`Using pre-existing contract ${contractName} at ${deployResult.address}`
);
}
};
//You can put an array of tags below. Tags can be anything and say when a this script should be run. So you can write different scripts for local, prod or other deploys

View File

@ -1,18 +1,33 @@
const contractName = 'FleekERC721';
const args = [
'FleekSites', // Collection name
'FLKSITE', // Collection symbol
];
module.exports = async ({ getNamedAccounts, deployments }) => {
const { deploy, log } = deployments;
const namedAccounts = await getNamedAccounts();
const { privateKey } = namedAccounts;
const deployResult = await deploy('FleekERC721', {
if (!privateKey) {
log('Please set "PRIVATE_KEY" environment variable to deploy to Mumbai');
throw new Error('Missing private key');
}
const deployResult = await deploy(contractName, {
from: privateKey,
args: ['FleekSites', 'FLKSITE'],
args,
});
if (deployResult.newlyDeployed) {
log(
`contract FleekSites deployed at ${deployResult.address} using ${deployResult.receipt.gasUsed} gas`
`Contract ${contractName} deployed at ${deployResult.address} using ${deployResult.receipt.gasUsed} gas`
);
} else {
log(`using pre-existing contract FleekSites at ${deployResult.address}`);
log(
`Using pre-existing contract ${contractName} at ${deployResult.address}`
);
}
};
//You can put an array of tags below. Tags can be anything and say when a this script should be run. So you can write different scripts for local, prod or other deploys

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -44,12 +44,11 @@ const config: HardhatUserConfig = {
only: ['NftMarketplace'],
},
namedAccounts: {
deployer: {
default: 1, // here this will by default take the first account as deployer
1: 0,
localDeployer: {
default: 0,
},
privateKey: {
default: `privatekey://${PRIVATE_KEY}`,
default: PRIVATE_KEY ? `privatekey://${PRIVATE_KEY}` : null,
},
},
solidity: {

View File

@ -1,8 +1,7 @@
{
"name": "fleek_contracts",
"name": "@fleekxyz/non-fungible-apps",
"version": "0.0.1",
"description": "",
"main": "index.js",
"private": "false",
"scripts": {
"test": "hardhat test && forge test --via-ir",
@ -10,7 +9,7 @@
"test:hardhat": "hardhat test",
"format": "prettier --write \"./**/*.{js,json,sol,ts}\"",
"node:hardhat": "hardhat node --tags local",
"deploy:local": "hardhat deploy --tags local",
"deploy:local": "hardhat deploy --tags local --network localhost",
"deploy:mumbai": "hardhat deploy --tags mumbai --network mumbai",
"compile": "hardhat compile",
"postinstall": "husky install",
@ -19,14 +18,14 @@
},
"repository": {
"type": "git",
"url": "git+https://github.com/FleekHQ/contracts.git"
"url": "git+https://github.com/fleekxyz/non-fungible-apps.git"
},
"author": "",
"license": "ISC",
"license": "MIT",
"bugs": {
"url": "https://github.com/FleekHQ/contracts/issues"
"url": "https://github.com/fleekxyz/non-fungible-apps/issues"
},
"homepage": "https://github.com/FleekHQ/contracts#readme",
"homepage": "https://github.com/fleekxyz/non-fungible-apps#readme",
"devDependencies": {
"@nomicfoundation/hardhat-chai-matchers": "^1.0.5",
"@nomicfoundation/hardhat-network-helpers": "^1.0.7",

View File

@ -15,7 +15,7 @@ describe('FleekERC721', () => {
ens: 'fleek.eth',
externalUrl: 'https://fleek.co',
commitHash: 'b72e47171746b6a9e29b801af9cb655ecf4d665c',
gitRepository: 'https://github.com/fleekxyz/contracts',
gitRepository: 'https://github.com/fleekxyz/non-fungible-apps',
});
const COLLECTION_PARAMS = Object.freeze({

View File

@ -28,7 +28,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -44,7 +44,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
uint256 second_mint = fleekContract.mint(
@ -55,7 +55,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(first_mint, 0);
@ -71,7 +71,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(first_mint, 0);
@ -84,7 +84,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(second_mint, 1);
@ -99,7 +99,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(first_mint, 0);
@ -112,7 +112,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(second_mint, 1);
@ -127,7 +127,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -146,7 +146,7 @@ contract FleekTest is Test {
'"attributes": [',
'{"trait_type": "ENS", "value":"fleek_xyz"},',
'{"trait_type": "Commit Hash", "value":"afff3f6"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/non-fungible-apps"},',
'{"trait_type": "Version", "value":"0"}',
"]",
"}"
@ -164,7 +164,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -174,7 +174,7 @@ contract FleekTest is Test {
fleekContract.setTokenImage(mint, "https://fleek2.xyz");
fleekContract.setTokenExternalURL(mint, "https://fleek2.xyz");
fleekContract.setTokenENS(mint, "fleek_xyz2");
fleekContract.setTokenBuild(mint, "afff3f62", "https://github.com/fleekxyz/contracts2");
fleekContract.setTokenBuild(mint, "afff3f62", "https://github.com/fleekxyz/non-fungible-apps2");
string memory tokenURI = fleekContract.tokenURI(mint);
@ -190,7 +190,7 @@ contract FleekTest is Test {
'"attributes": [',
'{"trait_type": "ENS", "value":"fleek_xyz2"},',
'{"trait_type": "Commit Hash", "value":"afff3f62"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts2"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/non-fungible-apps2"},',
'{"trait_type": "Version", "value":"1"}',
"]",
"}"
@ -208,7 +208,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -220,7 +220,7 @@ contract FleekTest is Test {
fleekContract.setTokenImage(mint, "https://fleek2.xyz");
fleekContract.setTokenExternalURL(mint, "https://fleek2.xyz");
fleekContract.setTokenENS(mint, "fleek_xyz2");
fleekContract.setTokenBuild(mint, "afff3f62", "https://github.com/fleekxyz/contracts2");
fleekContract.setTokenBuild(mint, "afff3f62", "https://github.com/fleekxyz/non-fungible-apps2");
string memory tokenURI = fleekContract.tokenURI(mint);
@ -236,7 +236,7 @@ contract FleekTest is Test {
'"attributes": [',
'{"trait_type": "ENS", "value":"fleek_xyz2"},',
'{"trait_type": "Commit Hash", "value":"afff3f62"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts2"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/non-fungible-apps2"},',
'{"trait_type": "Version", "value":"1"}',
"]",
"}"
@ -258,7 +258,7 @@ contract FleekTest is Test {
'"attributes": [',
'{"trait_type": "ENS", "value":"fleek_xyz"},',
'{"trait_type": "Commit Hash", "value":"afff3f6"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/contracts"},',
'{"trait_type": "Repository", "value":"https://github.com/fleekxyz/non-fungible-apps"},',
'{"trait_type": "Version", "value":"0"}',
"]",
"}"
@ -279,7 +279,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -300,7 +300,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -319,7 +319,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -344,7 +344,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -361,7 +361,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -380,7 +380,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -397,7 +397,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -416,7 +416,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -433,7 +433,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -452,7 +452,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -469,7 +469,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -488,7 +488,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -505,7 +505,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -524,7 +524,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -541,7 +541,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -560,7 +560,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -581,7 +581,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -604,7 +604,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -630,7 +630,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -656,7 +656,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -683,7 +683,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -714,7 +714,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -743,7 +743,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);
@ -768,7 +768,7 @@ contract FleekTest is Test {
"https://fleek.xyz",
"fleek_xyz",
"afff3f6",
"https://github.com/fleekxyz/contracts"
"https://github.com/fleekxyz/non-fungible-apps"
);
assertEq(mint, 0);

43
ui/README.md Normal file
View File

@ -0,0 +1,43 @@
## ⚡ Overview
Minimal UI to interact with the contract, build with [React](https://reactjs.org/). It will allow you to:
- Mint your site
- List the minted sites
- View the details of the minted site
### ⚙️ Requirements
You'll need to have [nodejs](https://nodejs.org/en/) and [YARN](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable) installed. Please do not use NPM for package installation.
Also, don't forget to check the [Getting started section](https://github.com/fleekxyz/non-fungible-apps/wiki/Getting-Started) on the wiki if you didn't do it yet, cause you need to configure your wallet to be able to mint a site.
### 🖥️ Running
To run the UI localy follow the steps:
1. Clone the repo, [check out how here](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository).
2. Install the dependencies:
```bash
$ yarn
```
3. Start the local server running the app:
```bash
$ yarn dev
```
Now a local server should be running on [http://localhost:5173](http://localhost:5173).
### 🤖 Build public
As we use vite, to build a public distribution for production run:
```bash
$ vite build
```
This will create a dist folder for the deployment.

View File

@ -5,7 +5,7 @@ const MINT_PARAMS = {
ens: 'fleek.eth',
externalUrl: 'https://fleek.co',
commitHash: 'b72e47171746b6a9e29b801af9cb655ecf4d665c',
gitRepository: 'https://github.com/fleekxyz/contracts',
gitRepository: 'https://github.com/fleekxyz/non-fungible-apps',
author: 'author',
};

View File

@ -10,7 +10,7 @@ const listSites = [
externalUrl: 'https://onepiece.fandom.com/wiki/Roronoa_Zoro',
ens: 'zoro.eth',
commitHash: '6ea6ad16c46ae85faced7e50555ff7368422f57',
githubRepo: 'https://github.com/fleekxyz/contracts',
githubRepo: 'https://github.com/fleekxyz/non-fungible-apps',
},
{
tokenId: 2,
@ -22,7 +22,7 @@ const listSites = [
externalUrl: 'https://fleek.co',
ens: 'fleek.eth',
commitHash: '6ea6ad16c46ae85faced7e50555ff7368422f57',
githubRepo: 'https://github.com/fleekxyz/contracts',
githubRepo: 'https://github.com/fleekxyz/non-fungible-apps',
},
];