Skip to content

Commit 653929e

Browse files
committed
Real EAS reputation live on Base Sepolia + second registered service
- Deployed AgentReputation at 0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3 against real EAS (0x4200...0021) on Base Sepolia. Schema registered: 'address provider,address payer,bytes32 channelId,uint8 score,string comment' Verified: rate→attest→getAverageScore returns 9 on-chain. - Contract-audit service registered on ServiceRegistry as the second live service (metadata served from this repo). - Smoke workflow extended with AgentReputation bytecode + EAS wiring check + SCHEMA_UID read. - Reproducible deploy: DeployReputation.s.sol skips the forge 1.7.1 constructor-arg bug.
1 parent 5502535 commit 653929e

5 files changed

Lines changed: 53 additions & 0 deletions

File tree

‎.github/workflows/sepolia-smoke.yml‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,30 @@ jobs:
8383
echo "WARN: getSubscriptionCount() returned empty"
8484
fi
8585
86+
- name: Check AgentReputation deployment
87+
run: |
88+
RESULT=$(curl -s -X POST -H "Content-Type: application/json" \
89+
-d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3","latest"],"id":1}' \
90+
https://sepolia.base.org)
91+
CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])")
92+
if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then
93+
echo "FAIL: AgentReputation has no code on Base Sepolia"
94+
exit 1
95+
fi
96+
echo "OK: AgentReputation deployed"
97+
- name: Read EAS address from AgentReputation
98+
run: |
99+
RESULT=$(curl -s -X POST -H "Content-Type: application/json" \
100+
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3","data":"0x0911beb4"},"latest"],"id":1}' \
101+
https://sepolia.base.org)
102+
EAS=$(echo "$RESULT" | python3 -c "import sys,json; r=json.load(sys.stdin)['result']; print('0x'+r[-40:])")
103+
if [ "$EAS" = "0x4200000000000000000000000000000000000021" ]; then
104+
echo "OK: AgentReputation.EAS() = $EAS"
105+
else
106+
echo "FAIL: AgentReputation.EAS() = $EAS (expected 0x420...0021)"
107+
exit 1
108+
fi
109+
86110
- name: Read getServiceCount() from ServiceRegistry
87111
run: |
88112
# selector verified with cast sig locally: 0x3672404e

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ ValuePacket is deployed on Base Sepolia testnet:
127127
| PaymentChannel | `0x9c350ae4D2e8aE380185d3AC95b56fedF98837C3` |
128128
| SpendingPolicy | `0x4A2921672F22f1CA75EbBce49ce4d38F92Aa4463` |
129129
| SubscriptionManager | `0x3116436B73e9Bbe230e517460A780359ba90B033` |
130+
| AgentReputation | `0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3` |
130131
| USDC (testnet) | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` |
131132

132133
Try it: `npx valuepacket demo --rpc https://sepolia.base.org`

‎contracts/deployments/base-sepolia.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"paymentChannel": "0x9c350ae4D2e8aE380185d3AC95b56fedF98837C3",
44
"spendingPolicy": "0x4A2921672F22f1CA75EbBce49ce4d38F92Aa4463",
55
"subscriptionManager": "0x3116436B73e9Bbe230e517460A780359ba90B033",
6+
"agentReputation": "0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3",
67
"chainId": 84532,
78
"usdcToken": "0x036CbD53842c5426634e7929541eC2318f3dCF7e"
89
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.24;
3+
import {Script, console} from "forge-std/Script.sol";
4+
import {AgentReputation} from "../src/extensions/AgentReputation.sol";
5+
contract DeployRep is Script {
6+
function run() external {
7+
uint256 pk = vm.envUint("DEPLOYER_PRIVATE_KEY");
8+
vm.startBroadcast(pk);
9+
AgentReputation rep = new AgentReputation(0x4200000000000000000000000000000000000021);
10+
console.log("AgentReputation deployed at:", address(rep));
11+
console.log("EAS:", address(rep.EAS()));
12+
console.log("SCHEMA_UID:", vm.toString(rep.SCHEMA_UID()));
13+
vm.stopBroadcast();
14+
}
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "Contract Audit Agent",
3+
"type": "contract-audit",
4+
"description": "On-chain Solidity static analysis — detects reentrancy, access control gaps, arithmetic issues, and validates contract correctness via Etherscan source verification.",
5+
"pricePerRequest": 1000000,
6+
"maxResponseMs": 30000,
7+
"endpoint": "https://contract-audit.service.valuepacket.dev",
8+
"schema": {
9+
"input": "Contract source code as plain text",
10+
"output": "Risk assessment with severity levels and remediation guidance"
11+
}
12+
}

0 commit comments

Comments
 (0)