Sepolia Smoke Test #5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Sepolia Smoke Test | |
| on: | |
| schedule: | |
| - cron: '0 6 * * 1' | |
| workflow_dispatch: | |
| jobs: | |
| smoke: | |
| name: Base Sepolia Smoke | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check ServiceRegistry deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x32487f8a8B54A8E8efBAb0c72De7b34239952180","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: ServiceRegistry has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: ServiceRegistry deployed" | |
| - name: Check PaymentChannel deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x9c350ae4D2e8aE380185d3AC95b56fedF98837C3","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: PaymentChannel has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: PaymentChannel deployed" | |
| - name: Check SpendingPolicy deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x4A2921672F22f1CA75EbBce49ce4d38F92Aa4463","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: SpendingPolicy has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: SpendingPolicy deployed" | |
| - name: Check USDC deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x036CbD53842c5426634e7929541eC2318f3dCF7e","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: USDC has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: USDC deployed" | |
| - name: Check SubscriptionManager deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x3116436B73e9Bbe230e517460A780359ba90B033","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: SubscriptionManager has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: SubscriptionManager deployed" | |
| - name: Read getSubscriptionCount() from SubscriptionManager | |
| run: | | |
| # selector verified with cast sig locally: 0x66419970 | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x3116436B73e9Bbe230e517460A780359ba90B033","data":"0x66419970"},"latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| COUNT=$(echo "$RESULT" | python3 -c "import sys,json; r=json.load(sys.stdin)['result']; print(int(r,16) if r and r != '0x' else -1)") | |
| if [ "$COUNT" -ge 0 ]; then | |
| echo "OK: getSubscriptionCount() = $COUNT" | |
| else | |
| echo "WARN: getSubscriptionCount() returned empty" | |
| fi | |
| - name: Check AgentReputation deployment | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3","latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| CODE=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin)['result'])") | |
| if [ "$CODE" = "0x" ] || [ -z "$CODE" ]; then | |
| echo "FAIL: AgentReputation has no code on Base Sepolia" | |
| exit 1 | |
| fi | |
| echo "OK: AgentReputation deployed" | |
| - name: Read EAS address from AgentReputation | |
| run: | | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x014d6681978A43E0ceCF7BF6474095f7Fa5905f3","data":"0x0911beb4"},"latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| EAS=$(echo "$RESULT" | python3 -c "import sys,json; r=json.load(sys.stdin)['result']; print('0x'+r[-40:])") | |
| if [ "$EAS" = "0x4200000000000000000000000000000000000021" ]; then | |
| echo "OK: AgentReputation.EAS() = $EAS" | |
| else | |
| echo "FAIL: AgentReputation.EAS() = $EAS (expected 0x420...0021)" | |
| exit 1 | |
| fi | |
| - name: Read getServiceCount() from ServiceRegistry | |
| run: | | |
| # selector verified with cast sig locally: 0x3672404e | |
| RESULT=$(curl -s -X POST -H "Content-Type: application/json" \ | |
| -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x32487f8a8B54A8E8efBAb0c72De7b34239952180","data":"0x3672404e"},"latest"],"id":1}' \ | |
| https://sepolia.base.org) | |
| COUNT=$(echo "$RESULT" | python3 -c "import sys,json; r=json.load(sys.stdin)['result']; print(int(r,16) if r and r != '0x' else -1)") | |
| if [ "$COUNT" -ge 0 ]; then | |
| echo "OK: getServiceCount() = $COUNT" | |
| else | |
| echo "WARN: getServiceCount() returned empty" | |
| fi |