From d5af8b5821170c50b211d7de4350970532bd15b7 Mon Sep 17 00:00:00 2001 From: ChiHaoLu Date: Sun, 29 Sep 2024 23:40:24 +0800 Subject: [PATCH 1/2] feat: add foundry in SDK --- docs/ecosystem/sdks/foundry.md | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/ecosystem/sdks/foundry.md diff --git a/docs/ecosystem/sdks/foundry.md b/docs/ecosystem/sdks/foundry.md new file mode 100644 index 0000000..e8525cc --- /dev/null +++ b/docs/ecosystem/sdks/foundry.md @@ -0,0 +1,67 @@ +--- +title: Foundry +sidebar_position: 3 +--- + +> [Foundry](https://github.com/foundry-rs/foundry) is a development environment for Ethereum which is wriiten in Rust + +You can clone [this](https://github.com/ChiHaoLu/kakarot-foundry) template repo to begin your Kakarot journey w/ Foundry. + +### Setup + +You can declare a alias in `foundry.toml`: +``` +[profile.default] +src = "src" +out = "out" +libs = ["lib"] +evm_version = 'shanghai' # Kakarot Sepolia supports `PUSH0` + +[rpc_endpoints] +kakarot_sepolia = "https://sepolia-rpc.kakarot.org" +``` + +### Fork Testing + +```shell +$ forge test --fork-url "https://sepolia-rpc.kakarot.org" +# or $ forge test --fork-url kakarot_sepolia +``` + +### Deployment + +You can use the deploy script to deploy contract: + +```shell +$ forge script ./script/Deploy.s.sol --broadcast --rpc-url "https://sepolia-rpc.kakarot.org" +# or $ forge script ./script/Deploy.s.sol --broadcast --rpc-url kakarot_sepolia +``` + +or directly use the [forge command](https://book.getfoundry.sh/reference/forge/forge-create): +```shell +$ forge create : --rpc-url "https://sepolia-rpc.kakarot.org" --private-key +# or $ forge create : --rpc-url kakarot_sepolia --private-key +``` + +### Verify + +Please make sure your optimizer, solidity version, contract path and address are all correct. + +Use the [forge command](https://book.getfoundry.sh/reference/forge/forge-verify-contract) to verify your contract: + +``` +$ forge verify-contract : \ +--verifier-url 'https://api.routescan.io/v2/network/testnet/evm/1802203764_2/etherscan' \ +--etherscan-api-key "kakarot_sepolia" \ +--num-of-optimizations 200 \ +--compiler-version "v0.8.26+commit.8a97fa7a" +> +Start verifying contract `0x99682dAc0D03F0D12392dCE0B0E34f4AaD0b56E1` deployed on kakarot-sepolia + +Submitting verification for [src/SignatureVerifier.sol:SignatureVerifier] 0x99682dAc0D03F0D12392dCE0B0E34f4AaD0b56E1. +Submitted contract for verification: + Response: `OK` + GUID: `7e88936a-fe91-5599-9ede-cc19ba05dda9` + URL: https://sepolia.kakarotscan.org/address/0x99682dac0d03f0d12392dce0b0e34f4aad0b56e1 + +``` \ No newline at end of file From 8ef2e317dd794f7c7bbaa405152b8b935b9d51e1 Mon Sep 17 00:00:00 2001 From: ChiHaoLu Date: Sat, 12 Oct 2024 00:14:08 +0800 Subject: [PATCH 2/2] feat: compile with cancun in foundry.toml --- docs/starknet/ecosystem/sdks/foundry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starknet/ecosystem/sdks/foundry.md b/docs/starknet/ecosystem/sdks/foundry.md index a55d6a5..59d98f8 100644 --- a/docs/starknet/ecosystem/sdks/foundry.md +++ b/docs/starknet/ecosystem/sdks/foundry.md @@ -15,7 +15,7 @@ You can declare a alias in `foundry.toml`: src = "src" out = "out" libs = ["lib"] -evm_version = 'shanghai' # Kakarot Sepolia supports `PUSH0` +evm_version = 'cancun' # Kakarot supports `PUSH0`, `TLOAD` / `TSTORE`... [rpc_endpoints] kakarot_starknet_sepolia = "https://sepolia-rpc.kakarot.org"