From 9395a3a73bc1fdeae6da73d6023ceba4996c6d48 Mon Sep 17 00:00:00 2001 From: 0xstormblessed <160180601+0xstormblessed@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:00:56 -0600 Subject: [PATCH 1/2] update script for prod --- README.md | 36 +++++++++++++++++++----------------- foundry.lock | 8 +++++++- foundry.toml | 1 + script/DeployEscrow.s.sol | 12 ++++++------ script/deploy.toml | 5 +++++ 5 files changed, 38 insertions(+), 24 deletions(-) create mode 100644 script/deploy.toml diff --git a/README.md b/README.md index ea1d7e2..7ae45d0 100644 --- a/README.md +++ b/README.md @@ -53,26 +53,28 @@ Note: `src/Escrow.sol` is excluded from `forge fmt` to preserve the audited sour ## Deploy -Deployment uses `script/DeployEscrow.s.sol:DeployEscrowScript`. +Deployment uses `script/DeployEscrow.s.sol:DeployEscrowScript`. Constructor parameters are read from `script/deploy.toml`. -Environment variables read by the script: +### Configuration -- `PRIVATE_KEY` (deployer key) -- `ESCROW_OWNER` -- `ESCROW_RECIPIENT` -- `ESCROW_DENOMINATION` -- `ESCROW_AMOUNT_DENOM` +Edit `script/deploy.toml` to set the deploy parameters: -Example: +```toml +[escrow] +owner = "0x..." +recipient = "0x..." +denomination = "0x..." # WETH, USDC, etc. +amount_denom = "1000000000" # full precision (wei/smallest unit) +``` + +### Dry run + +```sh +forge script script/DeployEscrow.s.sol --account --rpc-url $RPC_URL +``` + +### Broadcast ```sh -export PRIVATE_KEY=... -export ESCROW_OWNER=0x... -export ESCROW_RECIPIENT=0x... -export ESCROW_DENOMINATION=0x... -export ESCROW_AMOUNT_DENOM=100000000000000000000 - -forge script script/DeployEscrow.s.sol:DeployEscrowScript \ - --rpc-url $RPC_URL \ - --broadcast +forge script script/DeployEscrow.s.sol --account --rpc-url $RPC_URL --broadcast ``` diff --git a/foundry.lock b/foundry.lock index 0086834..1aa2526 100644 --- a/foundry.lock +++ b/foundry.lock @@ -1,4 +1,10 @@ { + "lib/forge-std": { + "rev": "1801b0541f4fda118a10798fd3486bb7051c5dd6" + }, + "lib/openzeppelin-contracts": { + "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" + }, "lib\\forge-std": { "tag": { "name": "v1.14.0", @@ -11,4 +17,4 @@ "rev": "dbb6104ce834628e473d2173bbc9d47f81a9eec3" } } -} +} \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index 82b2763..017b967 100644 --- a/foundry.toml +++ b/foundry.toml @@ -4,6 +4,7 @@ out = "out" libs = ["lib"] solc_version = "0.8.30" no_match_coverage = "^(script|test)/" +fs_permissions = [{ access = "read", path = "script/deploy.toml" }] remappings = [ "forge-std/=lib/forge-std/src/", "@openzeppelin/=lib/openzeppelin-contracts/" diff --git a/script/DeployEscrow.s.sol b/script/DeployEscrow.s.sol index fb8b208..10e4a76 100644 --- a/script/DeployEscrow.s.sol +++ b/script/DeployEscrow.s.sol @@ -8,14 +8,14 @@ import {Escrow} from "src/Escrow.sol"; contract DeployEscrowScript is Script { function run() external returns (Escrow deployed) { - address owner = vm.envAddress("ESCROW_OWNER"); - address recipient = vm.envAddress("ESCROW_RECIPIENT"); - address denomination = vm.envAddress("ESCROW_DENOMINATION"); - uint256 amountDenom = vm.envUint("ESCROW_AMOUNT_DENOM"); + string memory toml = vm.readFile("script/deploy.toml"); - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + address owner = vm.parseTomlAddress(toml, ".escrow.owner"); + address recipient = vm.parseTomlAddress(toml, ".escrow.recipient"); + address denomination = vm.parseTomlAddress(toml, ".escrow.denomination"); + uint256 amountDenom = vm.parseTomlUint(toml, ".escrow.amount_denom"); - vm.startBroadcast(deployerPrivateKey); + vm.startBroadcast(); deployed = new Escrow(owner, recipient, denomination, amountDenom); vm.stopBroadcast(); diff --git a/script/deploy.toml b/script/deploy.toml new file mode 100644 index 0000000..42403af --- /dev/null +++ b/script/deploy.toml @@ -0,0 +1,5 @@ +[escrow] +owner = "0x1118e1c057211306a40A4d7006C040dbfE1370Cb" +recipient = "0x741c585e6dE1AD32C606C030cE7466aAE561641c" +denomination = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # WETH +amount_denom = "1445198000000000000000" # 1445.198 WETH (18 decimals) From 89698b5bc08c6c3db6c1587d8b4068326179f0ca Mon Sep 17 00:00:00 2001 From: 0xstormblessed <160180601+0xstormblessed@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:08:19 -0600 Subject: [PATCH 2/2] update script to print summary --- script/DeployEscrow.s.sol | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/script/DeployEscrow.s.sol b/script/DeployEscrow.s.sol index 10e4a76..b6e510c 100644 --- a/script/DeployEscrow.s.sol +++ b/script/DeployEscrow.s.sol @@ -19,7 +19,12 @@ contract DeployEscrowScript is Script { deployed = new Escrow(owner, recipient, denomination, amountDenom); vm.stopBroadcast(); - console2.log("Escrow deployed at", address(deployed)); + console2.log("=== Escrow Deploy Summary ==="); + console2.log("Escrow: ", address(deployed)); + console2.log("Owner: ", owner); + console2.log("Recipient: ", recipient); + console2.log("Denomination:", denomination); + console2.log("Amount Denom:", amountDenom); } }