This PR changes the way we use LlamaPolicyMetadata to accommodate a permissionless Llama world. It also removes the onlyRootLlama modifier from the deploy function. The full removal of the root instance will happen in a future PR.
Modifications:
The default metadata logic is set at factory construction. It is passed to the initialization of LlamaPolicy through LlamaCore. The policy has a function that accepts a metadata logic contract as a parameter along with arbitrary bytes data, deploys a new clone, and initializes it. This means that instances can deploy new metadata contracts with an arbitrary configuration. The default metadata accepts a color and logo. The storage of the color and logo and events are moved to this metadata contract.
Result:
Policy metadata management will happen in the contract itself as opposed to LlamaPolicy.
Motivation:
This PR changes the way we use
LlamaPolicyMetadata
to accommodate a permissionless Llama world. It also removes theonlyRootLlama
modifier from the deploy function. The full removal of the root instance will happen in a future PR.Modifications:
The default metadata logic is set at factory construction. It is passed to the initialization of
LlamaPolicy
throughLlamaCore
. The policy has a function that accepts a metadata logic contract as a parameter along with arbitrary bytes data, deploys a new clone, and initializes it. This means that instances can deploy new metadata contracts with an arbitrary configuration. The default metadata accepts a color and logo. The storage of the color and logo and events are moved to this metadata contract.Result:
Policy metadata management will happen in the contract itself as opposed to
LlamaPolicy
.