Package across reads one address across fifteen other realms that are already live, and renders everything they will say about it on one page.
It is a composability demo with a working product hiding inside it. The realms it reads were written months apart, by nobody coordinating, and none of them knows this one exists. Not a line of them changed to make this possible: the only requirement any of them had to meet was NOT declaring `private = true`, which is what lets another realm import it at all.
Why this realm holds no state and extracts no library
Every other realm here splits into a pure `p/` and a thin `r/`. This one cannot, and that is the point: its entire content is the wiring. Fifteen import lines, one call each, and a table. Extract a library and what is left on both sides is empty.
What it measures, besides balances
The signatures below are the honest half of the demo. Eight of these realms hold a per-address balance and they agree on nothing:
Example
1erc20, vestoken, wrapped BalanceOf(address) uint64
2pairs/aaa, pairs/bbb BalanceOf(address) int64
3grc20faucet BalanceOf(symbol string, owner address) int64
4wikicoin BalanceOf(address) uint
5dice RollsOf(addr string) []int
Three integer widths, two signednesses, one that takes the address as a string, one that needs a symbol first. Composition works anyway, because a gno import is a type-checked contract with a permanent artifact behind it and not a call convention anyone has to agree on in advance. It just costs one hand-written adapter per source, which is what the report function is.
The two sources that could not be read
- r/moul/x/amm/v0 exports SharesOf(keyA, keyB string, owner address), and it routes through mustPool, which PANICS when the pool does not exist. A getter that panics is not composable: fifteen sources on one page means one panicking source takes the whole page down, and a wrapper cannot recover, because recover() does not catch a cross-realm abort. So amm contributes PoolCount() to the index and nothing to a report.
- r/moul/demo/vault/v0 exports MyBalance() with no address parameter. It answers for whoever is calling, which from here is this realm, so the value is structurally unreadable from outside.
Neither is a bug in those realms. Both are what a getter looks like when nobody has tried to call it from another realm yet.