-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
cip: <to be assigned>
title: Conviction Voting Template
author: Joel Thorstensson (@oed)
discussions-to: <URL of the Github issue for this CIP (if this is a PR)>
status: Idea
category: Standards
type: RFC
created: 2021-02-28
This is still a work in progress. Will add more context to these schemas!
Simple Summary
This CIP describes a template that can be used to create off-chain conviction voting dapps.
Abstract
Abstract goes here.
Motivation
Fix me :)
Specification
Definition content
Deployment: Deploy your own.
{
"name": "Conviction Voting Dapp",
"description": "Voting data for my dapp",
"schema": "<convictions-schema-docid>",
"config": {
"context": "<caip19-asset-id>"
}
}
Proposal Schema
Deployment: <proposal-schema-docid>
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Convictions",
"properties": {
"context": {
"type": "string"
},
"title": {
"type": "string"
},
"currency": {
"type": "string"
},
"amount": {
"type": "number"
},
"beneficiary": {
"type": "string"
},
"description": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"context",
"title",
"currency",
"amount",
"beneficiary",
"url"
]
}
Convictions Schema
Deployment: <convictions-schema-docid>
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Convictions",
"properties": {
"context": {
"type": "string"
},
"supply": {
"type": "number"
},
"proposals": {
"type": "array",
"items": {
"$ref": "#/definitions/proposals"
}
},
"convictions": {
"type": "array",
"items": {
"$ref": "#/definitions/convictions"
}
}
},
"additionalProperties": false,
"required": [
"context",
"proposals",
"convictions"
],
"definitions": {
"proposals": {
"type": "string",
"$id": "ceramic://doc",
"$ceramicSchema": "<proposal-schema-docid>",
"maxLength": 150
},
"convictions": {
"type": "object",
"properties": {
"proposal": {
"type": "string",
"$id": "ceramic://doc",
"$ceramicSchema": "<proposal-schema-docid>",
"maxLength": 150
},
"allocation": {
"type": "number"
}
},
"required": [
"proposal",
"allocation"
]
}
}
}
Conviction State Schema
Deployment: <convictions-state-schema-docid>
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "ConvictionState",
"properties": {
"context": {
"type": "string"
},
"blockHeight": {
"type": "number"
},
"supply": {
"type": "number"
},
"participants": {
"type": "array",
"items": {
"$ref": "#/definitions/participants"
}
},
"proposals": {
"type": "array",
"items": {
"$ref": "#/definitions/proposals"
}
}
},
"additionalProperties": false,
"required": [
"context",
"supply",
"participants",
"proposals"
],
"definitions": {
"participants": {
"type": "object",
"properties": {
"account": {
"type": "string"
},
"balance": {
"type": "number"
},
"convictions": {
"type": "string",
"$id": "ceramic://doc",
"$ceramicSchema": "<convictions-schema-docid>",
"maxLength": 150
}
},
"required": [
"account",
"balance",
"convictions"
]
},
"proposals": {
"type": "object",
"properties": {
"proposal": {
"type": "string",
"$id": "ceramic://doc",
"$ceramicSchema": "<proposal-schema-docid>",
"maxLength": 150
},
"totalConviction": {
"type": "number"
},
"triggered": {
"type": "boolean"
}
},
"required": [
"proposal",
"totalConviction",
"triggered"
]
}
}
}
Rationale
Fix me :)
Backwards Compatibility
N/A
Implementation
Fix me :)
Security Considerations
Security considerations go here.
Copyright
Copyright and related rights waived via CC0.
META-DREAMER, michaelsena and ylv-io