Testing Ledger
Last updated: 2026-03-11
This document is the canonical test ledger for the current Neo Morpheus Oracle repository state.
It answers four questions:
- What code was used for validation?
- What network / contracts / TEE deployment were tested?
- Which on-chain transactions were produced by the tests?
- What exact results were accepted?
Use this document together with:
1. Canonical Environment
Neo N3 Mainnet
- Oracle contract:
- Oracle NeoNS:
- Datafeed contract:
- Datafeed NeoNS:
- Callback consumer:
- Example validation consumer:
- Example reader:
- Request fee: datoshi =
- Public confidential payload algorithm:
- Oracle encryption metadata publish tx:
Phala Runtime
- App id:
- Public endpoint:
- Verified response:
- Current validated compose hash from the latest mainnet privacy matrix:
2. Code Under Test
| Area | Primary code | Supporting code | What it validates |
|---|---|---|---|
| N3 Oracle callback example | , | Provider callback, encrypted compute callback, sponsored callback, custom URL callback, on-chain feed read | |
| Mainnet privacy matrix | Public params, encrypted params, encrypted payloads, custom URL, custom JS, callback verification envelope | ||
| N3 builtin suite | All builtin compute families and expected outputs | ||
| N3 automation | Supabase-backed automation tables | One-shot registration, queued execution, interval registration, cancellation, Supabase persistence | |
| Worker runtime | worker runtime modules under | X25519 transport, timeouts, script isolation, WASM runtime, feed batching, relayer helpers | |
| Frontend / docs consistency | , , | Builtin catalog parity, feed pair parity, mainnet address parity, stale-doc regression detection | |
| Frontend production build | Type-safe production frontend build and route generation |
3. Artifact Index
| Artifact | Kind | Network | Notes |
|---|---|---|---|
| Human report | Neo N3 mainnet | Full 7-case confidential Oracle / compute matrix | |
| Machine-readable report | Neo N3 mainnet | Same matrix as JSON | |
| Human report | Neo N3 mainnet | Latest mainnet example-consumer provider / compute / sponsored / custom URL / feed read run | |
| Machine-readable report | Neo N3 mainnet | Same latest example-consumer run as JSON | |
| Human report | TwelveData source validation | Verifies current canonical feed catalog mappings against the live source API | |
| Machine-readable report | TwelveData source validation | Same source-validation run as JSON | |
| Acceptance report | Neo N3 mainnet | Smoke, example consumer, builtins, automation, feed sync, operational fixes | |
| Machine-readable sample report | Neo N3 testnet | Provider / compute / custom URL / on-chain feed read | |
| Partial log only | Neo X testnet | Not a canonical structured validation artifact |
Current report generator outputs after the latest script upgrade:
-
- JSON latest:
- Markdown:
-
- JSON latest:
- Markdown:
-
- JSON latest:
- Markdown:
Catalog note:
- The historical mainnet acceptance evidence in this ledger still reflects the 14-pair synchronized catalog that was live during the recorded validation window.
- The repository default feed catalog may be expanded further in code and env configuration after that point; treat new configured pairs as pending sync until a fresh deployment / validation report records them on-chain.
4. Neo N3 Mainnet Transaction Ledger
4.1 Mainnet Privacy Matrix
Source:
- Script:
- JSON:
- Markdown:
| Case id | Request type | Code path | Txid | Request id | Result | Status |
|---|---|---|---|---|---|---|
| builtin provider, public params | pass | |||||
| builtin provider, encrypted | pass | |||||
| encrypted builtin payload | pass | |||||
| encrypted custom JS compute | pass | |||||
| custom URL + encrypted params | pass | |||||
| custom URL + encrypted params + custom JS | pass | |||||
| builtin provider + encrypted custom JS | pass |
Operational notes from the same run:
- All 7 requests produced successful callback envelopes with verification metadata.
4.2 Mainnet Smoke And Example Consumer
Source:
Initial live mainnet smoke
| Case | Txid | Request id | Result |
|---|---|---|---|
| Fresh smoke request | , callback success, extracted value |
Mainnet example consumer cases
| Case | Txid | Request id | Result |
|---|---|---|---|
| Provider callback | success | ||
| Hybrid encrypted compute callback | success | ||
| Sponsored provider callback | success | ||
| Custom URL oracle callback | success | ||
| On-chain feed read | N/A | N/A | , stored integer price , display |
Latest regenerated mainnet example consumer run
Source:
| Case | Txid | Request id | Result |
|---|---|---|---|
| Provider callback | extracted value | ||
| Encrypted compute callback | builtin result | ||
| Sponsored provider callback | extracted value | ||
| Custom URL oracle callback | result | ||
| On-chain feed read | N/A | N/A | reader observed 14 currently synced pairs at report time |
Additional mainnet Oracle validation after live hot patch
| Case | Txid | Request id | Result |
|---|---|---|---|
| Smoke request | success | ||
| Provider callback | success | ||
| Hybrid encrypted compute callback | success | ||
| Sponsored provider callback | success | ||
| Custom URL + encrypted params | extracted value | ||
| Custom URL + encrypted params + custom JS | final result |
4.3 Mainnet Builtin Compute Suite
Source:
Accepted result:
- builtins succeeded on Neo N3 mainnet
- Request ids covered: through
Validated builtins:
Expected values are encoded directly in
.4.4 Mainnet Automation Ledger
Source:
| Case | Txid | Request id | Additional result |
|---|---|---|---|
| One-shot register callback | |||
| One-shot queued execution | N/A (queued by scheduler) | , extracted value , Supabase status | |
| Interval register callback | |||
| Automation cancel callback | Supabase status |
What this validated:
- Oracle-gateway registration path
- Queued execution path
- Callback delivery path
- Supabase job / run persistence
- Cancellation semantics for interval jobs
4.5 Mainnet Pricefeed Sync Ledger
Source:
- live relayer / worker validation during acceptance
Configured policy:
Accepted observations:
- All 14 configured pairs were scanned every ~15 seconds.
- When no pair exceeded versus the current on-chain stored value, no chain transaction was sent.
- When multiple pairs exceeded threshold, they were grouped into one batch transaction.
- Threshold comparison is now evaluated against the quantized on-chain integer-cents price, not raw unbounded source decimals.
- Sub-cent movements that do not change the stored integer-cents value do not emit redundant feed update transactions.
Follow-up verification on 2026-03-11:
- Added regression coverage for a quote move, confirming that a raw move still does not publish if the stored chain value remains cents.
- Added application-level attestation verification updates so , , and are checked consistently in the web verifier and API.
Precision migration verification on 2026-03-11:
- Global datafeed price precision was migrated from integer cents to units.
- Canonical pairs now use direct names and .
- Historical basket keys and remain on-chain as deprecated append-only records.
- Production frontend reported , , and after migration.
- Forced full-batch migration sync transaction:
- Sample migrated on-chain values:
- ->
- ->
- ->
Recorded transactions:
| Validation step | Txid | Result |
|---|---|---|
| Forced full-batch feed sync | single transaction containing all 14 pairs | |
| Direct operator-triggered single-symbol publish | updated , round , integer price | |
| Forced full-batch sync after catalog expansion to 34 canonical pairs | single transaction containing all 34 configured pairs including equities, ETFs, commodities, FX, , and |
Latest reader confirmation recorded in acceptance:
- pair:
- round id:
- integer price:
- timestamp:
Latest post-expansion confirmation:
- runtime config inside the live relayer container now includes all 34 configured canonical pairs
- the chain still returns one historical legacy key, , in addition to the new canonical set
- integration guidance is therefore:
- deprecated:
- canonical replacement:
- live relayer logs after redeploy continued to show feed sync loops completing roughly every 15 to 17 seconds:
5. Neo N3 Testnet Sample Artifact
Source:
This is a structured sample artifact for the same example-consumer flow on testnet.
| Case | Txid | Request id | Result |
|---|---|---|---|
| Provider callback | extracted value | ||
| Encrypted compute callback | builtin result | ||
| Custom URL oracle callback | result |
Recorded testnet feed snapshot:
- pair:
- round id:
- stored integer price:
- timestamp:
- source set id:
6. Neo X Artifact Status
is currently only a partial log:It is not a canonical structured validation artifact and should not be treated as an acceptance report.
Current repo position:
- Neo X contracts, interfaces, and example consumers exist in source.
- Neo X frontend documentation is reference-only.
- Canonical production acceptance today is Neo N3 mainnet.
7. Local Quality Gates
The following repository-level checks were run after the latest frontend / documentation alignment work:
| Command | Result | What it covers |
|---|---|---|
| pass | Frontend builtin parity, feed parity, mainnet address parity, stale-doc regression checks | |
| pass | Production frontend build, route generation, type checks | |
| pass | 38 worker runtime tests including X25519 transport, timeouts, WASM, feed batching, and signing |
8. Source Reachability Validation
Source:
Result:
- Provider checked:
- Canonical pair catalog checked:
- Success count:
- Failure count:
Representative validated mappings:
- -> TwelveData symbol
- ->
- ->
- ->
- ->
- ->
- ->
- ->
- -> with inverse transform and unit scaling
- -> with unit scaling
9. What To Read Next
If you need the raw case-by-case payloads and callback verification blobs, read:
If you need the operational narrative and the historical recovery steps, read:
If you need the exact example payload combinations and consumer contract patterns, read: