commondao package

Functions

CreateDissolutionProposal

func CreateDissolutionProposal(_ realm, daoID uint64) uint64

CreateDissolutionProposal creates a new proposal to dissolve a DAO or SubDAO. SubDAOs can only be dissolveed by the the parent DAO. Parameters: - daoID: ID of the DAO to dissolve (required)

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "CreateDissolutionProposal"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

CreateMembersUpdateProposal

func CreateMembersUpdateProposal(_ realm, daoID uint64, newMembers, removeMembers string) uint64

CreateMembersUpdateProposal creates a new proposal to add and/or remove DAO members. Parameters: - daoID: ID of the root DAO (required) - newMembers: Comma separated list of addresses to add as members - removeMembers: Comma separated list of member addresses to remove

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "CreateMembersUpdateProposal"  -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

CreateSubDAOProposal

func CreateSubDAOProposal(_ realm, daoID uint64, name, members string) uint64

CreateSubDAOProposal creates a new proposal to create a new SubDAO. Parameters: - daoID: ID of the parent DAO (required) - name: A name for the SubDAO (required) - members: Comma separated list of addresses to add as members

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "CreateSubDAOProposal"  -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

CreateTextProposal

func CreateTextProposal(_ realm, daoID uint64, title, body string, votingDays uint8) uint64

CreateTextProposal creates a new general text proposal. Parameters: - daoID: ID of the root DAO (required) - title: Title of the proposal (required) - body: Body of the proposal (required) - votingDays: The number of days where proposal accepts votes. The default voting period is 7 days.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "CreateTextProposal"  -args "" -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

Execute

func Execute(_ realm, daoID, proposalID uint64)

Execute executes a DAO proposal.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "Execute"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

Get

func Get(daoID uint64) *commondao.CommonDAO

Get returns a common DAO searched by ID. It panics if caller doesn't have ownership of the DAO instance. Only toplevel DAOs are returned, to get SubDAOs use \`GetSubDAO()\`.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "Get"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

GetSize

func GetSize(rootID uint64) int

GetSize returns the number of SubDAOs under a specified root DAO.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "GetSize"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

Invite

func Invite(_ realm, invitee address)

Invite invites a user to the realm. A user invitation is required to start creating new DAOs.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "Invite"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

IsInvited

func IsInvited(addr address) bool

IsInvited check if an address has an invitation to the realm.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "IsInvited"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

IsOwner

func IsOwner(addr address, daoID uint64) bool

IsOwner checks if an address has ownership of a DAO.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "IsOwner"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

New

func New(_ realm, name string, options ...Option) *commondao.CommonDAO

New creates a new CommonDAO. An invitation is required to be able to create new DAOs.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "New"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

NewSubDAO

func NewSubDAO(_ realm, name string, parentID uint64, options ...Option) *commondao.CommonDAO

NewSubDAO creates a new SubDAO.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "NewSubDAO"  -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

Render

func Render(path string) string

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "Render"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

TransferOwnership

func TransferOwnership(cur realm, daoID uint64, newOwner address)

TransferOwnership transfers DAO ownership to a different address.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "TransferOwnership"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

Vote

func Vote(_ realm, daoID, proposalID uint64, vote commondao.VoteChoice, reason string)

Vote submits a vote for a DAO proposal.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "Vote"  -args "" -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

NewIterator

func NewIterator(rootID uint64, options ...IteratorOption) Iterator

NewIterator returns a SubDAO iterator.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "NewIterator"  -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

WithCount

func WithCount(count uint) IteratorOption

WithCount assigns a number to limit the number of iterated DAOs. A zero count means to iterates until the last DAO.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "WithCount"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

WithOffset

func WithOffset(offset uint) IteratorOption

WithOffset assigns a initial offset to start iterating DAOs. Offset can be used to reduce the number of iterated DAOs for example during pagination.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "WithOffset"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowChildren

func AllowChildren(allow bool) Option

AllowChildren configures DAO support for SubDAOs.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowChildren"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowDissolutionProposals

func AllowDissolutionProposals(allow bool) Option

AllowDissolutionProposals configures support for DAO dissolution proposals.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowDissolutionProposals"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowExecution

func AllowExecution(allow bool) Option

AllowExecution configures DAO support for executing proposals through CommonDAO realm.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowExecution"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowListing

func AllowListing(allow bool) Option

AllowListing configures DAO listing within CommonDAO realm.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowListing"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowMembersUpdate

func AllowMembersUpdate(allow bool) Option

AllowMembersUpdate configures support for DAO members update proposals.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowMembersUpdate"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowRender

func AllowRender(allow bool) Option

AllowRender configures DAO, proposals and votes rendering within CommonDAO.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowRender"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowSubDAOPorposals

func AllowSubDAOPorposals(allow bool) Option

AllowSubDAOPorposals configures support for SubDAO creation proposals.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowSubDAOPorposals"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowTextProposals

func AllowTextProposals(allow bool) Option

AllowTextProposals configures support generic text proposals.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowTextProposals"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

AllowVoting

func AllowVoting(allow bool) Option

AllowVoting configures DAO support for voting through CommonDAO realm.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "AllowVoting"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

GetOptions

func GetOptions(daoID uint64) *Options

GetOptions returns the configuration of a DAO. It panics if caller doesn't have ownership of the DAO instance.

Param

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "GetOptions"  -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx

NewTextPropDefinition

func NewTextPropDefinition(title, body string, quorum float64, votingPeriod time.Duration) TextPropDefinition

NewTextPropDefinition creates a new general text proposal definition.

Params

Command

gnokey query -remote "tcp://0.0.0.0:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nt/commondao" -func "NewTextPropDefinition"  -args "" -args "" -args "" -args "" -gas-fee 1000000ugnot -gas-wanted 5000000 -send "" ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "zenao-dev" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "tcp://0.0.0.0:26657" call.tx