{"id":20747843,"url":"https://github.com/sabelomkhwanzi/dual-smart-contract","last_synced_at":"2026-04-18T16:37:23.766Z","repository":{"id":174612788,"uuid":"652473677","full_name":"SabeloMkhwanzi/dual-smart-contract","owner":"SabeloMkhwanzi","description":"Dual is a specialized social marketplace platform for FVM gamers ","archived":false,"fork":false,"pushed_at":"2023-06-14T15:20:02.000Z","size":520,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T13:47:12.268Z","etag":null,"topics":["calibration-testnet","filecoin","fvm","gamef","hardhat","nft-marketplace"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SabeloMkhwanzi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-12T06:34:18.000Z","updated_at":"2023-06-12T07:22:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2c6eaf5-50d8-49b6-a2a3-6da35ff5f4a2","html_url":"https://github.com/SabeloMkhwanzi/dual-smart-contract","commit_stats":null,"previous_names":["sabelomkhwanzi/dual-smart-contract"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SabeloMkhwanzi/dual-smart-contract","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SabeloMkhwanzi%2Fdual-smart-contract","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SabeloMkhwanzi%2Fdual-smart-contract/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SabeloMkhwanzi%2Fdual-smart-contract/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SabeloMkhwanzi%2Fdual-smart-contract/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SabeloMkhwanzi","download_url":"https://codeload.github.com/SabeloMkhwanzi/dual-smart-contract/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SabeloMkhwanzi%2Fdual-smart-contract/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31976795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T16:27:12.723Z","status":"ssl_error","status_checked_at":"2026-04-18T16:27:11.140Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calibration-testnet","filecoin","fvm","gamef","hardhat","nft-marketplace"],"created_at":"2024-11-17T08:14:34.366Z","updated_at":"2026-04-18T16:37:23.728Z","avatar_url":"https://github.com/SabeloMkhwanzi.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FEVM Hardhat Kit\n\n### Deployed Smart Contracts\n- Gamers contract address: \n- Factory contract address: \n\n### Front-end\nLinks to our project front-end [here](https://github.com/SabeloMkhwanzi/dual)\n\nOpen up your terminal (or command prompt) and navigate to a directory you would like to store this code on. Once there type in the following command:\n\n\n```\ngit clone https://github.com/SabeloMkhwanzi/dual-smart-contract\ncd dual-smart-contract\nyarn install\n```\n\n\nThis will clone the hardhat kit onto your computer, switch directories into the newly installed kit, and install the dependencies the kit needs to work.\n\n\n## Get a Private Key\n\nYou can get a private key from a wallet provider [such as Metamask](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-export-an-account-s-private-key).\n\n\n## Add your Private Key as an Environment Variable\n\nAdd your private key as an environment variable by running this command:\n\n ```\nexport PRIVATE_KEY='abcdef'\n```\n\nIf you use a .env file, don't commit and push any changes to .env files that may contain sensitive information, such as a private key! If this information reaches a public GitHub repository, someone can use it to check if you have any Mainnet funds in that wallet address, and steal them!\n\n\n## Get the Deployer Address\n\nRun this command:\n```\nyarn hardhat get-address\n```\n\nThe will show you the ethereum-style address associated with that private key and the filecoin-style f4 address (also known as t4 address on testnets)! The Ethereum address can now be exclusively used for almost all FEVM tools, including the faucet.\n\n## Fund the Deployer Address\n\nGo to the [Calibration testnet faucet](https://faucet.calibration.fildev.network/), and paste in the Ethereum address from the previous step. This will send some Calibration testnet FIL to the account.\n\n\n## Deploy the Contracts\n\nCurrently there are 2 main types of contracts:\n\n* Basic Solidity Examples: Simple contracts to show off basic solidity\n\n* Filecoin API Examples: Contracts that demo how to use the Filecoin APIs in Solidity to access storage deals and other Filecoin specific functions.\n\n\nType in the following command in the terminal to deploy all contracts:\n\n ```\nyarn hardhat deploy\n```\n\nThis will compile all the contracts in the contracts folder and deploy them to the Hyperspace test network automatically!\n\nKeep note of the deployed contract addresses for the next step.\n\n## Interact with the Contracts\n\nYou can interact with contracts via hardhat tasks, found in the 'tasks' folder. For example, to interact with the SimpleCoin contract:\n\nType in the following command in the terminal:\n\n ```\nyarn hardhat get-balance --contract 'THE DEPLOYED CONTRACT ADDRESS HERE' --account 'YOUR ETHEREUM ADDRESS HERE'\n```\n\nThe console should read that your account has 12000 SimpleCoin!\n\n## Filecoin APIs\n\nThe primary advantage of the FEVM over other EVM based chains is the ability to access and program around Filecoin storage deals. This can be done in the FEVM via the [Filecoin.sol library maintained by Zondax](https://github.com/Zondax/filecoin-solidity). **Note this library is currently in BETA**. It is unaudited, and the APIs will likely be changing with time. This repo will be updated as soon as possible when a breaking change occurs.\n\nThe library is included in this kit as an NPM package and will automatically be downloaded when you perform the `yarn` command (don't confuse these with the included mocks)!\n\nCurrently you will find a getter contract that calls the getter methods on the MarketAPI to get storage deal data and store that data. To do this you will need *dealIDs* which you can [find here on FilFox](https://hyperspace.filfox.info/en/deal).\n\nAs an example to store most of the data available for a deal run the store-all command with a specified dealID. Below is an example of using this command below with the a deal on Hyperspace testnet with a dealID of 707.\n\n```\nyarn hardhat store-all --contract \"DEPLOYED FILECOIN_MARKET_CONSUMER CONTRACT ADDRESS HERE\" --dealid \"707\"\n```\n### Bounty Contract\n\nUnder contracts, within the `filecoin-api-examples` sub-directory, you will find a file called `deal-rewarder.sol`. This is a basic example contract that uses the Filecoin.sol API's to create bounties for specific data to be stored on the Filecoin blockchain. To learn more about this contract feel free to [checkout the original Foundry project](https://github.com/lotus-web3/deal-bounty-contract) which includes a detailed readme.\n# dual-smart-contract\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsabelomkhwanzi%2Fdual-smart-contract","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsabelomkhwanzi%2Fdual-smart-contract","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsabelomkhwanzi%2Fdual-smart-contract/lists"}