@@ -58,6 +58,30 @@ echo " ModularSmartAccount impl: $ACCOUNT_IMPL"
5858echo " UpgradeableBeacon: $BEACON "
5959echo " MSAFactory: $FACTORY "
6060
61+ # Deploy MockPaymaster for gas sponsorship
62+ echo " "
63+ echo " 📦 Deploying MockPaymaster..."
64+ PAYMASTER_OUTPUT=$( forge create test/mocks/MockPaymaster.sol:MockPaymaster \
65+ --rpc-url $RPC_URL \
66+ --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 \
67+ --json 2>&1 | tail -1)
68+
69+ PAYMASTER=$( echo " $PAYMASTER_OUTPUT " | jq -r ' .deployedTo // empty' )
70+ if [ -z " $PAYMASTER " ]; then
71+ echo " ⚠️ Failed to deploy MockPaymaster, continuing without it"
72+ PAYMASTER=" "
73+ else
74+ echo " ✅ MockPaymaster deployed to: $PAYMASTER "
75+
76+ # Fund the paymaster by calling deposit() with ETH
77+ echo " 💰 Funding paymaster via deposit()..."
78+ cast send $PAYMASTER " deposit()" \
79+ --rpc-url $RPC_URL \
80+ --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6 \
81+ --value 10ether
82+ echo " ✅ Paymaster funded with 10 ETH"
83+ fi
84+
6185# Create contracts-anvil.json
6286echo " "
6387echo " 💾 Creating contracts-anvil.json..."
@@ -75,6 +99,7 @@ cat > contracts-anvil.json << EOF
7599 "accountImplementation": "$ACCOUNT_IMPL ",
76100 "beacon": "$BEACON ",
77101 "factory": "$FACTORY ",
102+ "paymaster": "$PAYMASTER ",
78103 "entryPoint": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108",
79104 "bundlerUrl": "http://localhost:4337"
80105}
@@ -90,6 +115,10 @@ echo "✅ Updated contracts.json to use Anvil addresses"
90115cp contracts-anvil.json public/contracts.json
91116echo " ✅ Copied to public/contracts.json"
92117
118+ # Copy to auth-server-api for local development
119+ cp contracts-anvil.json " $WORKSPACE_ROOT /packages/auth-server-api/src/contracts.json"
120+ echo " ✅ Copied to packages/auth-server-api/src/contracts.json"
121+
93122echo " "
94123echo " 🎉 Deployment complete!"
95124echo " "
0 commit comments