Realm detail
test
gno.land/r/nym-encapsulate001/test
Indexed deployment identity with independently loaded latest RPC source, functions, and Render.
Indexed deployment
Identity
- Package path
- gno.land/r/nym-encapsulate001/test
- Block
- 266664
- Deployed (UTC)
- Transaction
- VoMJo5JHYx25emc4WVH0qgxmiFb5v9SQxOXQOBNgKtU=
Latest RPC state
Source
// Package test is a Google-Forms-shaped questionnaire realm: publish a form,
// collect responses on chain, read them back rendered — with gnoweb as the
// only UI.
//
// # How it works
//
// The realm renders each form with p/jeronimoalbi/mdform. gnoweb turns that
// markdown into a real HTML form whose submit builds a /vm.m_call to Submit,
// mapping every input to the Submit parameter of the same name. A respondent
// fills the form in a browser, signs with their wallet, and the answers land
// in realm state. No frontend, no backend, no indexer.
//
// # Field encoding
//
// Create takes four parallel, pipe-separated strings so it stays usable from
// gnokey and gnoweb without structured arguments:
//
// labels: "Name|Why gno.land?|Server type"
// kinds: "text|textarea|select"
// required: "1|1|0"
// options: "||cloud,on-prem,data-center"
//
// Kinds are text, textarea, number and select. Options are comma-separated
// and only read for select fields. A form has at most MaxFields (8) fields;
// Submit accordingly takes eight answer slots, of which the form's field
// count are read and the rest must be empty. gnoweb passes "" for any
// parameter the form does not render an input for.
//
// # Who pays
//
// Respondents pay the storage deposit for their own answers, which is the
// spam resistance. Withdraw deletes a response and the chain refunds the
// deposit to the caller — which is why only the author may withdraw: a
// deletion by the owner would refund the owner with the respondent's coins.
//
// # What is public
//
// Everything. Answers, who gave them, and when are all readable by anyone
// from realm state and from the transactions themselves. This realm is for
// information that can be public. Sealed responses would need encryption
// on the respondent's side before the transaction exists, which gnoweb
// cannot do on a realm's behalf; that is a deliberate non-goal of v1.
//
// # Routes
//
// /r/<ns>/forms index
// /r/<ns>/forms:<id> a form, fillable
// /r/<ns>/forms:<id>/responses responses, paginated
// /r/<ns>/forms:<id>/responses.csv responses as CSV in a code block
package test
Latest RPC state
Exported functions
- Create(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, title string, description string, labels string, kinds string, required string, options string, onePerAddr bool, deadline int64) string
- Close(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id string)
- Reopen(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id string)
- TransferOwnership(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id string, to string)
- GetForm(id string) (*gno.land/r/nym-encapsulate001/test.Form, bool)
- ResponseCount(id string) int
- FormCount() int
- Render(path string) string
- Submit(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id string, a1 string, a2 string, a3 string, a4 string, a5 string, a6 string, a7 string, a8 string)
- Withdraw(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id string)
Latest RPC state · Realm Render
Forms
Publish a form, collect responses on chain, read them back here. Respondents fill it in on this page and pay their own storage deposit; withdrawing a response refunds it.
| Form | Status | Responses | Fields | Owner | | --- | --- | --- | --- | --- | | Valoper questionnaire | open | 1 | 6 | g1eyr3hf…x2v0 |
Create a form
Call Create with a title, a description, and four pipe-separated field specs — labels, kinds (text|textarea|number|select), required flags (1|0) and select options (comma-separated). Up to 8 fields.
Create a form