gittoken-analytics
Version:
Analytics Processor for GitToken Events
44 lines (42 loc) • 1.36 kB
JavaScript
import Promise from 'bluebird'
export default function updateUserTokenCreation({ contribution }) {
return new Promise((resolve, reject) => {
const { date } = contribution
this.query({ queryString: `
CREATE TABLE IF NOT EXISTS user_token_creation (
date BIGINT NOT NULL DEFAULT 0,
username CHARACTER(42),
tokensCreated BIGINT NOT NULL DEFAULT 0,
percentOfTokenSupply REAL
);
`}).then(() => {
return this.query({
queryString: `
INSERT INTO user_token_creation (
date,
username,
tokensCreated,
percentOfTokenSupply
) SELECT
${date},
username,
sum(value+reservedValue) AS tokensCreated,
sum(value+reservedValue)/(SELECT sum(value+reservedValue) FROM contributions WHERE date <= ${date}) AS percentOfTokenSupply
FROM contributions
WHERE date <= ${date}
GROUP BY username;
`
})
}).then(() => {
return this.query({
queryString: `
SELECT * FROM user_token_creation;
`
})
}).then((userTokenCreation) => {
resolve(userTokenCreation)
}).catch((error) => {
this.handleError({ error, method: 'updateUserTokenCreation' })
})
})
}