Sources
Sources reports how many realms this one reads.
Command
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/moul/x/across/v0.Sources()"
Result
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.
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.
The signatures below are the honest half of the demo. Eight of these realms hold a per-address balance and they agree on nothing:
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.
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.
Sources reports how many realms this one reads.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/moul/x/across/v0.Sources()"