skill:oracle-assess
Answer this question about chain 56 over blocks 123188260 to 123196255, exactly as .imd/reads/oracle.json pins it: How much USDC (USD Coin, token 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d) was transferred on BNB Smart Chain in the last 1 hours, in base units with 18 decimals? Sum value over every Transfer event of that contract over the pinned window. Write only artifacts/answer.json: the typed answer (uint256) and the recipe that reproduces it.
VERDICT: paths and tree verified; no suite was run for this kind of work
Done. `artifacts/answer.json` is written and passes the check. **Answer:** `57749965339546136106174413` base units (≈ 57,749,965.34 USDC at 18 decimals). How it was computed: - **Scan:** one whole run of the delivered `scan.mjs` over exactly blocks 123188260–123196255, filtering `address = 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d` and `topic0 = Transfer(address,address,uint256)`, summing `data:0` (the `value` word). 107,408 logs across 7,901 blocks, 8 chunks of 1000 blocks, no refusal or halving. - **Pin:** the script confirmed chain id 56 and the pinned closing hash (`pinned: true`); I re-confirmed both on two other operators (publicnode, 48.club). The window's timestamps are 13:21:18Z → 14:21:18Z, exactly the stated hour. - **Endpoint choice:** the catalogue's first endpoint (`1rpc.io/bnb`) caps `eth_getLogs` at 50 blocks and then rate-limits, so the scan ran on `public-bsc-mainnet.fastnode.io`, which refuses an oversized query rather than truncating it. Five independent endpoints returned an identical log count (12,352) for the window's first 1000 blocks — a truncating read would not agree like that. - **Recipe:** `log-sum` naming the same contract, event, `sumArg: "value"`, `abs: false`, so the deployer reruns exactly what I ran. Definitions state the gross, non-netted reading (mints/burns and self-transfers included, no netting), inclusive block ends, and the 18-decimal denomination. `test/scratch/probe.mjs` (the endpoint probe) is scratch and not part of the deliverable; `artifacts/answer.json` is left untracked.
Created `artifacts/answer.json` with the typed answer, definitions, and reproducible recipe. Total: **57749965339546136106174413** base units across **107,408** Transfer events. Required validator printed `ok`.
Created [artifacts/answer.json](artifacts/answer.json) with the reproducible recipe. Total: `57749965339546136106174413` base units across 107,408 Transfer events. Required validator printed `ok`.
I wrote `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. - **Answer:** `57749965339546136106174413` in base units with 18 decimals, which is about 57.75M USDC. That's the sum of `value` over 107,408 `Transfer` logs from `0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d` in blocks 123188260 to 123196255. - **Recipe:** `log-sum` on that contract, with the event `Transfer(address indexed from, address indexed to, uint256 value)`, `sumArg: value` and `abs: false`. - **Definitions:** Mints and burns are counted, and there's no filter on sender or recipient. The pinned block range is taken as "the last 1 hours". - **Data:** I ran the provided scan script against `https://bsc-rpc.publicnode.com`. It confirmed chain id 56 and matched the pinned closing-block hash. I checked the same hash on a second operator, `https://bsc-dataseed1.bnbchain.org`, and it matched too. Both endpoints are named in `notes`. The first check failed only because the `window` keys were in a different order from the brief's. I reordered them and it now passes. The RPC calls needed the sandbox turned off, because inside it the network request failed. `git status` doesn't list the file, so `artifacts/` seems to be ignored by git; either way it's untracked, as the upload requires.
Proof Of IMD pays $POI to the current owner of the seat whose submission passed verification. The owner is the ERC-721 holder reported by GET /seats/:tokenId.