Skip to content

Commit

Permalink
feat: add dao kind in dao registry contract
Browse files Browse the repository at this point in the history
  • Loading branch information
MikaelVallenet committed Dec 28, 2024
1 parent a71835a commit 8a4adcc
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 43 deletions.
2 changes: 1 addition & 1 deletion gno/r/dao_realm/dao_realm.gno
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func RegisterSelf() {
panic("already registered")
}

dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "DAO Realm", "Default testing DAO", "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=1080&fit=max")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "DAO Realm", "Default testing DAO", "membership", "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=1080&fit=max")
registered = true
}

Expand Down
2 changes: 1 addition & 1 deletion gno/r/dao_roles_realm.gno/dao_roles_realm.gno
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ func RegisterSelf() {
panic("already registered")
}

dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "DAO Realm", "Default testing DAO", "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=1080&fit=max")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "DAO Realm", "Default testing DAO", "roles", "https://images.unsplash.com/photo-1477959858617-67f85cf4f1df?w=1080&fit=max")
registered = true
}

Expand Down
4 changes: 2 additions & 2 deletions packages/utils/gnodao/deploy.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { generateMembershipDAOSource } from "./generateMembershipDAOSource";
import { generateRolesDAOSource } from "./generateRolesDAOSource";
import { adenaAddPkg } from "../gno";
import { DaoType } from "../types/organizations";
import { generateMembershipDAOSource } from "./generateMembershipDAOSource";

Check failure on line 3 in packages/utils/gnodao/deploy.ts

View workflow job for this annotation

GitHub Actions / check-js

`./generateMembershipDAOSource` import should occur before import of `../gno`
import { generateRolesDAOSource } from "./generateRolesDAOSource";

Check failure on line 4 in packages/utils/gnodao/deploy.ts

View workflow job for this annotation

GitHub Actions / check-js

`./generateRolesDAOSource` import should occur before import of `../gno`

interface GnoDAOMember {
address: string;
Expand Down
22 changes: 11 additions & 11 deletions packages/utils/gnodao/generateMembershipDAOSource.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GnoDAOConfig } from "./deploy";
import { mustGetGnoNetwork } from "../../networks";
import { GnoDAOConfig } from "./deploy";

Check failure on line 2 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

`./deploy` import should occur before import of `../../networks`

// TODO: Allow the role modules to be optional and don't use in MembershipDAO
export const generateMembershipDAOSource = (
Expand Down Expand Up @@ -33,11 +33,11 @@ export const generateMembershipDAOSource = (
votingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {
group = voting_group.NewVotingGroup()
${conf.initialMembers
.map(
(member) =>
`group.SetMemberPower("${member.address}", ${member.weight})`,
)
.join("\n\t")}
.map(

Check failure on line 36 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `····`
(member) =>

Check failure on line 37 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `····`
`group.SetMemberPower("${member.address}", ${member.weight})`,

Check failure on line 38 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `····`
)

Check failure on line 39 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `····`
.join("\n\t")}

Check failure on line 40 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `····`
return group
}
Expand All @@ -46,11 +46,11 @@ export const generateMembershipDAOSource = (
proposalModulesFactories := []dao_interfaces.ProposalModuleFactory{
func(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {
tt := proposal_single.PercentageThresholdPercent(${Math.ceil(
conf.thresholdPercent * 100,
)}) // ${Math.ceil(conf.thresholdPercent * 100) / 100}%
conf.thresholdPercent * 100,

Check failure on line 49 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `··`
)}) // ${Math.ceil(conf.thresholdPercent * 100) / 100}%

Check failure on line 50 in packages/utils/gnodao/generateMembershipDAOSource.ts

View workflow job for this annotation

GitHub Actions / check-js

Insert `··`
tq := proposal_single.PercentageThresholdPercent(${Math.ceil(
conf.quorumPercent * 100,
)}) // ${Math.ceil(conf.quorumPercent * 100) / 100}%
conf.quorumPercent * 100,
)}) // ${Math.ceil(conf.quorumPercent * 100) / 100}%
return proposal_single.NewDAOProposalSingle(core, &proposal_single.DAOProposalSingleOpts{
MaxVotingPeriod: dao_utils.DurationTime(time.Second * ${conf.maxVotingPeriodSeconds}),
Threshold: &proposal_single.ThresholdThresholdQuorum{
Expand Down Expand Up @@ -82,7 +82,7 @@ export const generateMembershipDAOSource = (
profile.SetStringField(profile.Bio, "${conf.description}")
profile.SetStringField(profile.Avatar, "${conf.imageURI}")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "${conf.displayName}", "${conf.description}", "${conf.imageURI}")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "${conf.displayName}", "${conf.description}", "memberships", "${conf.imageURI}")
}
func Render(path string) string {
Expand Down
56 changes: 28 additions & 28 deletions packages/utils/gnodao/generateRolesDAOSource.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GnoDAOConfig } from "./deploy";
import { mustGetGnoNetwork } from "../../networks";
import { GnoDAOConfig } from "./deploy";

export const generateRolesDAOSource = (
networkId: string,
Expand Down Expand Up @@ -35,33 +35,33 @@ var (
func init() {
roles = dao_roles_group.NewRolesGroup()
${(conf.roles ?? [])
.map(
(role) =>
`roles.NewRoleJSON("${role.name}", "[${(role.resources ?? [])
.map(
(resource) =>
`{\\"resource\\": \\"${resource}\\", \\"power\\": \\"999\\"}`,
)
.join(", ")}]")`,
)
.join("\n\t")}
.map(
(role) =>
`roles.NewRoleJSON("${role.name}", "[${(role.resources ?? [])
.map(
(resource) =>
`{\\"resource\\": \\"${resource}\\", \\"power\\": \\"999\\"}`,
)
.join(", ")}]")`,
)
.join("\n\t")}
${conf.initialMembers
.filter((member) => member.roles.length > 0)
.map((member) =>
member.roles
.map((role) => `roles.GrantRole("${member.address}", "${role}")`)
.join("\n\t"),
)
.join("\n\t")}
.filter((member) => member.roles.length > 0)
.map((member) =>
member.roles
.map((role) => `roles.GrantRole("${member.address}", "${role}")`)
.join("\n\t"),
)
.join("\n\t")}
votingModuleFactory := func(core dao_interfaces.IDAOCore) dao_interfaces.IVotingModule {
group = voting_group.NewRolesVotingGroup(roles)
${conf.initialMembers
.map(
(member) =>
`group.SetMemberPower("${member.address}", ${member.weight})`,
)
.join("\n\t")}
.map(
(member) =>
`group.SetMemberPower("${member.address}", ${member.weight})`,
)
.join("\n\t")}
return group
}
Expand All @@ -71,11 +71,11 @@ func init() {
proposalModulesFactories := []dao_interfaces.ProposalModuleFactory{
func(core dao_interfaces.IDAOCore) dao_interfaces.IProposalModule {
tt := proposal_single.PercentageThresholdPercent(${Math.ceil(
conf.thresholdPercent * 100,
)}) // ${Math.ceil(conf.thresholdPercent * 100) / 100}%
conf.thresholdPercent * 100,
)}) // ${Math.ceil(conf.thresholdPercent * 100) / 100}%
tq := proposal_single.PercentageThresholdPercent(${Math.ceil(
conf.quorumPercent * 100,
)}) // ${Math.ceil(conf.quorumPercent * 100) / 100}%
conf.quorumPercent * 100,
)}) // ${Math.ceil(conf.quorumPercent * 100) / 100}%
return proposal_single.NewDAOProposalSingle(core, &proposal_single.DAOProposalSingleOpts{
MaxVotingPeriod: dao_utils.DurationTime(time.Second * ${conf.maxVotingPeriodSeconds}),
Threshold: &proposal_single.ThresholdThresholdQuorum{
Expand Down Expand Up @@ -107,7 +107,7 @@ func init() {
profile.SetStringField(profile.Bio, "${conf.description}")
profile.SetStringField(profile.Avatar, "${conf.imageURI}")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "${conf.displayName}", "${conf.description}", "${conf.imageURI}")
dao_registry.Register(func() dao_interfaces.IDAOCore { return daoCore }, "${conf.displayName}", "${conf.description}", "roles", "${conf.imageURI}")
}
func Render(path string) string {
Expand Down

0 comments on commit 8a4adcc

Please sign in to comment.