-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
started building the smart contract for lisk
- Loading branch information
1 parent
0baadde
commit dee415c
Showing
1 changed file
with
74 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,89 @@ | ||
## Foundry | ||
|
||
**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.** | ||
|
||
Foundry consists of: | ||
|
||
- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools). | ||
- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. | ||
- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network. | ||
- **Chisel**: Fast, utilitarian, and verbose solidity REPL. | ||
|
||
## Documentation | ||
|
||
https://book.getfoundry.sh/ | ||
|
||
## Usage | ||
|
||
### Build | ||
|
||
```shell | ||
$ forge build | ||
# MetaMuse | ||
|
||
## Overview | ||
The **MetaMuse** is a decentralized application that allows artists to collaboratively create digital artwork in real-time, mint it as a non-fungible token (NFT) on Lisk, and distribute fractional ownership using Arbitrum. This platform ensures transparent royalty distribution and shared ownership, empowering artists to collaborate creatively and securely. | ||
|
||
## Table of Contents | ||
- [Overview](#overview) | ||
- [Features](#features) | ||
- [Tech Stack](#tech-stack) | ||
- [Getting Started](#getting-started) | ||
- [Smart Contract Development](#smart-contract-development) | ||
- [Project Structure](#project-structure) | ||
- [License](#license) | ||
|
||
## Features | ||
- **Real-time Collaborative Canvas**: Multiple artists can create and edit artwork in real-time. | ||
- **NFT Minting on Lisk**: The completed artwork is minted as an NFT on the Lisk blockchain. | ||
- **Fractional Ownership on Arbitrum**: Ownership shares and royalties are distributed among collaborators via Arbitrum smart contracts. | ||
- **Decentralized Storage**: Artwork and metadata are stored on IPFS for decentralized, secure storage. | ||
|
||
## Tech Stack | ||
- **Blockchain**: Lisk, Arbitrum | ||
- **Smart Contracts**: Solidity, Forge | ||
- **Backend**: Lisk SDK, IPFS (Pinata or Infura) | ||
|
||
## Getting Started | ||
|
||
### Prerequisites | ||
Make sure you have the following installed: | ||
- [Node.js](https://nodejs.org/) and npm | ||
- [Lisk SDK](https://lisk.io/) | ||
- [Arbitrum Development Environment](https://developer.offchainlabs.com/) | ||
- [IPFS CLI](https://docs.ipfs.io/install/) | ||
- [Foundry & Forge](https://book.getfoundry.sh/) | ||
|
||
### Installation | ||
1. Clone the repository: | ||
``` | ||
git clone https://github.com/yourusername/collaborative-nft-art-platform.git | ||
cd collaborative-nft-art-platform | ||
``` | ||
Install dependencies: | ||
``` | ||
|
||
### Test | ||
|
||
```shell | ||
$ forge test | ||
npm install | ||
``` | ||
Set up IPFS: | ||
|
||
### Format | ||
Use Pinata or Infura for IPFS API keys to store artwork and metadata. | ||
### Running the Application | ||
Start the local development server: | ||
|
||
```shell | ||
$ forge fmt | ||
``` | ||
|
||
### Gas Snapshots | ||
|
||
```shell | ||
$ forge snapshot | ||
npm start | ||
``` | ||
**Launch Lisk and Arbitrum nodes:** | ||
|
||
### Anvil | ||
|
||
```shell | ||
$ anvil | ||
``` | ||
Follow setup instructions for Lisk SDK and Arbitrum. | ||
Deploy the Arbitrum smart contracts with Forge: | ||
|
||
### Deploy | ||
Ensure Forge is installed and set up by following the Foundry book. | ||
|
||
```shell | ||
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key> | ||
**Deploy contracts from the contracts folder:** | ||
``` | ||
forge create --rpc-url <ARBITRUM_RPC_URL> --private-key <YOUR_PRIVATE_KEY> src/YourContract.sol:YourContract | ||
``` | ||
### Smart Contract Development | ||
Smart contracts in this project handle: | ||
|
||
### Cast | ||
Fractional Ownership: Distributing shares among contributors. | ||
Royalty Distribution: Automatically redistributing royalties to collaborators on resale. | ||
Smart contracts are located in the contracts/ directory. Forge scripts for testing and deployment can be added in script/. | ||
|
||
```shell | ||
$ cast <subcommand> | ||
### Project Structure | ||
``` | ||
bash | ||
Copy code | ||
collaborative-nft-art-platform/ | ||
├── contracts/ | ||
├── src/ | ||
│ ├── components/ | ||
│ └── services/ | ||
├── script/ | ||
├── README.md | ||
└── package.json | ||
``` | ||
### License | ||
This project is licensed under the MIT License - see the LICENSE file for details. | ||
|
||
### Help | ||
|
||
```shell | ||
$ forge --help | ||
$ anvil --help | ||
$ cast --help | ||
``` |