dappconnect-vote-poll-sdk/packages/core
Szymon Szlachtowicz 5cddb61d72
Introduce WakuVoting (#2)
2021-08-09 11:57:02 +02:00
..
src Introduce WakuVoting (#2) 2021-08-09 11:57:02 +02:00
test Introduce WakuVoting (#2) 2021-08-09 11:57:02 +02:00
.eslintrc.json Repo initialization 2021-08-06 14:50:36 +02:00
.mocharc.json Repo initialization 2021-08-06 14:50:36 +02:00
README.md Introduce WakuVoting (#2) 2021-08-09 11:57:02 +02:00
package.json Introduce poll init proposal (#1) 2021-08-09 10:50:10 +02:00
prettier.config.js Repo initialization 2021-08-06 14:50:36 +02:00
tsconfig.json Repo initialization 2021-08-06 14:50:36 +02:00

README.md

#Gassless voting over waku

##Waku Voting

Objects of type of WakuVoting, hold their own Waku objects and also store list of polls and votes for later use.

Creating instance of WakuVoting:

WakuVoting constructor expects name of DApp and also as optional parameter can take custom Waku object.

    import WakuVoting from 'core'

    const wakuVoting = new WakuVoting('myDapp')

objects of type WakuVoting expose functions:

createTimedPoll(signer: JsonRpcSigner, question:string, answers: string[], pollType: enum, minToken?: BigNumber, endTime?: number) getTimedPolls() sendTimedPollVote(signer: JsonRpcSigner, pollHash: string, selectedAnswer:number, sntAmount?: number)

##Polls

###Creating time-limited poll

To create a poll user has to send a message over waku network on specific topic

/{dapp name}/waku-polling/timed-polls-init/proto

For a poll to be started waku message has to have specific fields:

message PollInit {
    bytes owner = 1; // Address of a poll owner/initializer
    int64 timestamp = 2; // Timestamp of a waku message
    string question = 3;// Question of a poll
    repeated answers = 4; // Possible answers to poll
    enum PollType {
        WEIGHTED = 0;
        NON_WEIGHTED = 1;
    }
    PollType pollType = 5 // type of poll
    optional bytes minToken = 6 // amount of token needed for NON_WEIGHTED poll to be able to vote
    int64 endTime = 7 // UNIX timestamp of poll end
    bytes signature = 8 // signature of all above fields
}