smartcontractkit/huff-starter-kit

A template repo to work with huff smart contracts and learn about low level EVM opcodes. Also Horse ♘.

SolidityMakefileethereumevmfoundrysmartcontractschainlinkhuff
This is stars and forks stats for /smartcontractkit/huff-starter-kit repository. As of 01 May, 2024 this repository has 94 stars and 8 forks.

A template repository for building a huff based smart contract project with Foundry. For more information on using foundry with solidity, check out the foundry-starter-kit Implementation of the following 2 Chainlink features using the Foundry & Huff development environment: Chainlink Price Feeds Chainlink Keepers Table Of Contents Table Of Contents Getting Started Requirements Quickstart Testing Usage Deploying to a local network Deploying to a testnet or mainnet network Setup Deploying Misc Disclaimer Acknowledgments Contributing Resources Helpful Debugging Resources: Getting Started Requirements Please install the following: Git You'll know you've done it right if you can run git --version Foundry / Foundryup This will install forge, cast, and anvil You can test you've installed them right by running forge --version and get an output like: forge 0.2.0 (f016135 2022-07-04T00:15:02.930499Z) To get the latest of each, just run foundryup Huff Compiler You'll know you've done it right if you can run huffc --version and get an output like: huffc 0.2.0 Quickstart git clone https://github.com/smartcontractkit/huff-starter-kit cd huff-starter-kit make # This installs the project's dependencies. make test Testing make test or forge test Usage Deploying to a network uses the foundry scripting system, where you write your deploy scripts in solidity! Deploying to a local network Foundry comes with local network anvil baked in, and allows us to deploy to our local network for quick testing locally. To start a local network run: make anvil This will spin up a local blockchain with a determined private key, so you can use the same private key each time. Then, you can deploy it with: make deploy-anvil contract=<CONTRACT_NAME> Deploying to a testnet or mainnet network Setup We'll demo using the Sepolia testnet. (Go here for testnet sepolia ETH.) You'll need to add the following variables to a .env file: SEPOLIA_RPC_URL: A URL to connect to the blockchain. You can get one for free from Infura. PRIVATE_KEY: A private key from your wallet. You can get a private key from a new Metamask account Additionally, if you want to deploy to a testnet, you'll need test ETH and/or LINK. You can get them from faucets.chain.link. Optional ETHERSCAN_API_KEY: If you want to verify on etherscan. Deploying make deploy-sepolia contract=<CONTRACT_NAME> For example: make deploy-sepolia contract=PriceFeedConsumer This will run the forge script, the script it's running is: @forge script script/${contract}.s.sol:Deploy${contract} --rpc-url ${SEPOLIA_RPC_URL} --private-key ${PRIVATE_KEY} --broadcast --verify --etherscan-api-key ${ETHERSCAN_API_KEY} -vvvv If you don't have an ETHERSCAN_API_KEY, you can also just run: @forge script script/${contract}.s.sol:Deploy${contract} --rpc-url ${SEPOLIA_RPC_URL} --private-key ${PRIVATE_KEY} --broadcast These pull from the files in the script folder. Misc Disclaimer None of the contacts have been audited, use at your own risk. Acknowledgments Huff Project Template Huff Examples Contributing Contributions are always welcome! Open a PR or an issue! Thank You! Resources Chainlink Documentation Foundry Documentation Huff Documentation Helpful Debugging Resources: evm.codes evm.codes playground Huff VSCode Debugger & Highlighter
Read on GithubGithub Stats Page
repotechsstarsweeklyforksweekly
mdexSwap/contractsSolidityJavaScript13401110
svn2github/transistortesterTeXCMakefile41401880
othree/javascript-libraries-syntax.vimVim ScriptMakefileShell6240360
nkanaev/tipsyCMakefile406-180
ufrisk/MemProcFSCRustJava2.2k02760
helpsystems/CreateProcessCMakefile1430320
asg017/sqlite-htmlGoPythonMakefile3500110
opencontainers/image-specGoMakefileShell3k+9648+4
gopl-zh/gopl-zh.github.comHandlebarsJavaScriptCSS4k09860
BecoSystems/spacewarMakefile2103230