package event import ( zenaov1 "gno.land/p/zenao/zenao/v1" "gno.land/p/zenao/events" "gno.land/p/zenao/basedao" "gno.land/p/zenao/daokit" "gno.land/p/zenao/daocond" "gno.land/r/demo/profile" "gno.land/r/zenao/eventreg" "gno.land/r/zenao/social_feed" ) var ( DAO daokit.DAO localDAO daokit.DAO event *events.Event // XXX: needed for backward compatibility with frontend queries feedId string // XXX: workaround for "unexpected zero object id" issue ) func init() { // XXX: workaround for "unexpected zero object id" issue feedId = social_feed.NewFeed(cross, "main", false, feedAuth) } func init() { conf := events.Config{ Organizers: []string{"gno.land/r/zenao/users/u4"}, Gatekeepers: []string{}, Title: "Samouraï Friends Night", Description: "**Samouraï Friends Night** is a free and open afterwork in Paris aiming to gather a diversity of humans from creative world and open source world around beers.\n\nPeople joining are composing a big patchwork of humans, like open source developers, distributed protocol engineers, film makers, designers, motion designers, smart contract hackers, builders for commons.\nYou can invite your friends, wherever they come from.\n\nThere you'll find friends to discuss open source, tech, art, and future of humanity.\n\nThis even is powered by Samouraï Coop crew : \nhttps://www.samourai.world", ImageURI: "ipfs://bafybeie6evrjz2fmcpaey23t7yvp5azm5ftfx63ycp3ls4ax6657mc4zvy", StartDate: 1742590800, EndDate: 1742612100, Capacity: 150, Discoverable: true, GetProfileString: profile.GetStringField, SetProfileString: profile.SetStringField, ZenaoAdminAddr: "g1djrkw9tf4px658j85cc6fhsvm50uf9s0g6kfsm", Location: &zenaov1.EventLocation{ Address: &zenaov1.AddressCustom{ Address: "150", Timezone: "America/Santiago", }, }, ParticipationPubkey: "", CrossFn: crossFn, SetImplemFn: setImplem, FeedId: feedId, PrivateVarName: "event", } event = events.NewEvent(&conf) eventreg.Register(cross, func() *zenaov1.EventInfo { return event.Info() }) } func Vote(_ realm, proposalID uint64, vote daocond.Vote) { localDAO.Vote(proposalID, vote) } func Execute(_ realm, proposalID uint64) { localDAO.Execute(proposalID) } func Render(path string) string { return localDAO.Render(path) } func feedAuth() (string, bool) { caller := event.DAOPrivate.CallerID() // XXX: this should be upgradable return caller, basedao.MustGetMembersViewExtension(localDAO).IsMember(caller) } func crossFn(_ realm, cb func()) { cb() } func setImplem(newLocalDAO daokit.DAO, newDAO daokit.DAO) { localDAO, DAO = newLocalDAO, newDAO }