https://archive.trufflesuite.com/ganache/
https://archive.trufflesuite.com/docs/ganache/
npm install @openzeppelin/contracts npm install @openzeppelin/contracts-upgradeable @openzeppelin/contracts npm install -g truffle truffle version truffle init truffle compile truffle migrate --network development truffle migrate --f 1 --to 1 --network development npm install @truffle/hdwallet-provider dotenv truffle migrate --network mainnethttps://juejin.cn/post/6997381389406437412 https://blog.csdn.net/black_cat7/article/details/145066594
npm install --save-dev chai mocha npm install --save-dev truffle chai npm install --save-dev hardhat npx hardhat init npx hardhat compile npx hardhat ignition deploy ./ignition/modules/Token.js --network development npm install ethers --save npm install -g solhint solhint --version solhint --init solhint contracts/**/*.sol
git clone https://github.com/foundry-rs/foundry.git
cd foundry
cargo install --path ./crates/forge --profile release --force --locked
cargo install --path ./crates/cast --profile release --force --locked
cargo install --path ./crates/anvil --profile release --force --locked
cargo install --path ./crates/chisel --profile release --force --locked
mkdir foundrycd foundry
forge init --force --no-git
forge install transmissions11/solmate
forge install transmission11/solmate@v7
forge install OpenZeppelin/openzeppelin-contracts
forge update lib/solmate
forge remove solmate
forge remappings
安装soldeer soldeer文档
forge soldeer init
forge create --rpc-url http://localhost:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 src/Counter.sol:Counter --broadcast--constructor-args "ForgeUSD" "FUSD" 18 1000000000000000000000
forge clone --etherscan-api-key XEUXBFXMB5G8KWRAKKX44MGJMMNSVTM6AT 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 WETH9gas_reports = ["MyContract", "MyContractFactory"]
gas_reports = ["*"]
forge test --gas-report
// 针对单个测试用例
forge test --match-test testFuzz_withdraw --gas-report
gas_reports_ignore = ["Example"]
forge snapshot
// 指定一个文件输出
forge snapshot --snap <FILE_NAME>
// --asc gas升序 --desc gas降序
// --min <VALUE> gas最小 --max <VALUE> gas最大
forge test --debug $FUNC
(Cast 是 Foundry 用于执行以太坊 RPC 调用的命令行工具。 你可以进行智能合约调用、发送交易或检索任何类型的链数据——所有这些都来自你的命令行!)
cast call 0x6b175474e89094c44da98b954eedeac495271d0f "totalSupply()(uint256)" --rpc-url https://eth-mainnet.alchemyapi.io/v2/Lc7oIGYeL_QvInzI0Wiu_pOZZDEKBrdf
cast 4byte-decode 0x1F1F897F676d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e7
Anvil 是 Foundry 附带的本地测试网节点。 你可以使用它从前端测试你的合约或通过 RPC 进行交互。
# Number of dev accounts to generate and configure. [default: 10]
anvil -a, --accounts <ACCOUNTS>
# The EVM hardfork to use. [default: latest]
anvil --hardfork <HARDFORK>
# Port number to listen on. [default: 8545]
anvil -p, --port <PORT>
Chisel 是随 Foundry 提供的高级 Solidity REPL。它可用于在本地或分叉网络上快速测试 Solidity 片段。 如何使用 Chisel 要使用 Chisel,只需键入 chisel。然后开始编写 Solidity 代码!Chisel 会对每次输入提供详细反馈。
Chisel 可在 Foundry 项目内外使用。如果二进制文件在 Foundry 项目根目录下执行,Chisel 将继承项目的配置选项。