1package cla23import (4 "gno.land/p/moul/helplink/v0"5 "gno.land/p/moul/md/v0"6 "gno.land/p/moul/mdtable/v0"7 "gno.land/p/nt/ufmt/v0"8)910func Render(path string) string {11 out := md.H1("Contributor License Agreement (CLA)")1213 out += md.Paragraph("A Contributor License Agreement (CLA) must be signed before deploying packages.")14 out += md.Paragraph(15 "The Agreement governs Contributions uploaded, published, or made available " +16 "for execution on the Gno.land blockchain network, and the " +17 "related software and repositories used to publish such Contributions.",18 )1920 if requiredHash == "" {21 out += md.HorizontalRule()22 out += md.H2("Status")23 out += md.Paragraph(md.Bold("CLA enforcement is currently DISABLED."))24 out += md.Paragraph("All package deployments are allowed.")25 return out26 }2728 out += md.HorizontalRule()29 out += md.H2("Status")30 out += md.Paragraph(md.Bold("CLA enforcement is ENABLED"))3132 if claURL != "" {33 out += md.Paragraph("You can read the full agreement here: " + md.Link(claURL, claURL))34 }3536 table := mdtable.Table{Headers: []string{"", ""}}37 table.Append([]string{md.Bold("Required Hash"), md.InlineCode(requiredHash)})38 table.Append([]string{md.Bold("Signers"), ufmt.Sprintf("%d contributor(s)", signatures.Size())})39 out += table.String()4041 out += md.H3("Actions")42 out += md.Paragraph(helplink.Func("Sign CLA", "Sign", "hash", requiredHash))43 return out44}45HasValidSignature(addr string) bool
ProposeNewCLA(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}, newHash string, newURL string) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}
Render(path string) string
Sign(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}, hash string)
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.