forked from LaconicNetwork/cosmos-explorer
81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
import compareVersions from 'compare-versions'
|
|
import ProposalTally from './proposal-tally'
|
|
|
|
export default class Proposal {
|
|
constructor() {
|
|
this.element = null
|
|
|
|
this.id = 0
|
|
this.status = 1
|
|
this.type = '-'
|
|
this.title = '-'
|
|
this.description = '-'
|
|
this.tally = new ProposalTally()
|
|
this.submit_time = '0000-00-00'
|
|
this.voting_end_time = '0000-00-00'
|
|
this.voting_start_time = '0000-00-00'
|
|
this.total_deposit = '-'
|
|
this.contents = null
|
|
}
|
|
|
|
init(element, total) {
|
|
this.element = element
|
|
|
|
this.id = element.proposal_id || element.id
|
|
this.status = element.status
|
|
this.tally = new ProposalTally().init(element.final_tally_result, total)
|
|
this.submit_time = element.submit_time
|
|
this.voting_end_time = element.voting_end_time
|
|
this.voting_start_time = element.voting_start_time
|
|
// eslint-disable-next-line prefer-destructuring
|
|
this.total_deposit = element.total_deposit[0]
|
|
this.contents = element.content.value || element.content
|
|
if (this.contents) {
|
|
this.title = this.contents.title
|
|
this.description = this.contents.description
|
|
this.type = element.content.type
|
|
if (element.content['@type']) {
|
|
this.type = element.content['@type']
|
|
}
|
|
}
|
|
return this
|
|
}
|
|
|
|
hello() {
|
|
return this.title
|
|
}
|
|
|
|
updateTally(newTally) {
|
|
this.tally = newTally
|
|
}
|
|
|
|
versionFixed(ver) {
|
|
if (compareVersions(ver, '0.40') >= 0) {
|
|
// do nothing
|
|
} else if (compareVersions(ver, '0.30') >= 0) {
|
|
switch (this.element.proposal_status) {
|
|
case 'Passed':
|
|
this.status = 3
|
|
break
|
|
case 'VotingPeriod':
|
|
this.status = 2
|
|
break
|
|
case 'Rejected':
|
|
this.status = 4
|
|
break
|
|
default:
|
|
this.status = 1
|
|
}
|
|
}
|
|
if (String(this.status).indexOf('PASSED') > -1) {
|
|
this.status = 3
|
|
} else if (String(this.status).indexOf('VOTING') > -1) {
|
|
this.status = 2
|
|
} else if (String(this.status).indexOf('REJECTED') > -1) {
|
|
this.status = 4
|
|
} else if (String(this.status).indexOf('DEPOSIT') > -1) {
|
|
this.status = 1
|
|
}
|
|
}
|
|
}
|