Skip to content
This repository was archived by the owner on Nov 10, 2021. It is now read-only.

Commit 41fe20f

Browse files
committed
hdao/random
1 parent 6c5633a commit 41fe20f

File tree

2 files changed

+57
-12
lines changed

2 files changed

+57
-12
lines changed

conseilUtil.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@ const tezosNode = ''
1212

1313
const mainnet = require('./config').networkConfig
1414

15+
16+
const hDAOFeed = async () => {
17+
18+
let hDAOQuery = conseiljs.ConseilQueryBuilder.blankQuery();
19+
hDAOQuery = conseiljs.ConseilQueryBuilder.addFields(hDAOQuery, 'key', 'value');
20+
hDAOQuery = conseiljs.ConseilQueryBuilder.addPredicate(hDAOQuery, 'big_map_id', conseiljs.ConseilOperator.EQ, [mainnet.curationsPtr])
21+
hDAOQuery = conseiljs.ConseilQueryBuilder.setLimit(hDAOQuery, 10_000)
22+
23+
let hDAOResult = await conseiljs.TezosConseilClient.getTezosEntityData({ url: conseilServer, apiKey: conseilApiKey, network: 'mainnet' }, 'mainnet', 'big_map_contents', hDAOQuery);
24+
return hDAOResult.map(e => {
25+
return {
26+
token_id : parseInt(e.key),
27+
hDAO_balance : parseInt((e.value).split(' ')[1])
28+
}
29+
})
30+
}
1531
/**
1632
* Returns a list of nft token ids and amounts that a given address owns.
1733
*
@@ -144,7 +160,7 @@ const getArtisticUniverse = async (max_time) => {
144160
mintOperationQuery = conseiljs.ConseilQueryBuilder.addPredicate(mintOperationQuery, 'status', conseiljs.ConseilOperator.EQ, ['applied'])
145161
mintOperationQuery = conseiljs.ConseilQueryBuilder.addPredicate(mintOperationQuery, 'destination', conseiljs.ConseilOperator.EQ, [mainnet.protocol])
146162
mintOperationQuery = conseiljs.ConseilQueryBuilder.addPredicate(mintOperationQuery, 'parameters_entrypoints', conseiljs.ConseilOperator.EQ, ['mint_OBJKT'])
147-
mintOperationQuery = conseiljs.ConseilQueryBuilder.setLimit(mintOperationQuery, 7000)
163+
mintOperationQuery = conseiljs.ConseilQueryBuilder.setLimit(mintOperationQuery, 14_000)
148164

149165
const mintOperationResult = await conseiljs.TezosConseilClient.getTezosEntityData(
150166
{ url: conseilServer, apiKey: conseilApiKey, network: 'mainnet' },
@@ -287,5 +303,6 @@ module.exports = {
287303
gethDaoBalanceForAddress,
288304
getArtisticOutputForAddress,
289305
getObjectById,
290-
getArtisticUniverse
306+
getArtisticUniverse,
307+
hDAOFeed
291308
}

index.js

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const express = require('express')
44
const cors = require('cors')
55
const _ = require('lodash')
66
const conseilUtil = require('./conseilUtil')
7+
const { random } = require('lodash')
78
require('dotenv').config()
89

910
const reducer = (accumulator, currentValue) => parseInt(accumulator) + parseInt(currentValue)
@@ -34,7 +35,7 @@ const getTokenHoldersArr = async (arr) => {
3435
return await arr.map(async e => await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + e).then(res => res.data))
3536
/* await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + arr[0]).then(res => console.log(res.data))
3637
*//* var result = arr.map(async e => {
37-
return await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + e).then(res => res.data)
38+
return await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + e).then(res => res.data)
3839
})
3940
4041
console.log(result) */
@@ -54,8 +55,8 @@ const totalAmountIntegral = async (obj) => {
5455
var owners = await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + obj.token_id).then(res => res.data)
5556
console.log(owners)
5657
var values_arr = (_.values(owners))
57-
obj.total_amount = (values_arr.map(e => parseInt(e))).length > 0 ?(values_arr.filter(e => parseInt(e))) : 0
58-
58+
obj.total_amount = (values_arr.map(e => parseInt(e))).length > 0 ? (values_arr.filter(e => parseInt(e))) : 0
59+
5960
obj.owners = owners
6061
return obj
6162
}
@@ -71,7 +72,7 @@ const objktOwners = async (arr) => {
7172

7273

7374
const getObjktLedger = async () => await axios.get('https://better-call.dev/v1/bigmap/mainnet/511/keys?size=6500').then(res => res.data.map(e => ({ amount: parseInt(e.data.value.value), tz: e.data.key.children[0].value, tk_id: parseInt(e.data.key.children[1].value) })))
74-
const gethDAOLedger = async () => await axios.get('https://api.better-call.dev/v1/bigmap/mainnet/519/keys?size=4000').then(res => res.data.map(e => {
75+
const gethDAOLedger = async (counter) => await axios.get('https://api.better-call.dev/v1/bigmap/mainnet/519/keys?size=10&offset=' + counter * 10).then(res => res.data.map(e => {
7576
return { token_id: parseInt(e.data.key.value), hDAO_balance: parseInt(e.data.value.children[0].value) }
7677
}))
7778

@@ -134,6 +135,23 @@ const customFloor = function (value, roundTo) {
134135

135136
const ONE_MINUTE_MILLIS = 60 * 1000
136137

138+
const randomFeed = async (counter, res) => {
139+
var feed = await conseilUtil.getArtisticUniverse(0)
140+
feed = offset(_.shuffle(feed), counter)
141+
feed = await feed.map(async e => {
142+
e.token_info = await getIpfsHash(e.ipfsHash)
143+
e.token_id = parseInt(e.objectId)
144+
console.log(e)
145+
return e
146+
})
147+
var promise = Promise.all(feed.map(e => e))
148+
promise.then(async (results) => {
149+
var aux_arr = results.map(e => e)
150+
//res.set('Cache-Control', `public, max-age=${cache_time}`)
151+
console.log(aux_arr)
152+
res.json({ result: aux_arr })
153+
})
154+
}
137155

138156
const getFeed = async (counter, res) => {
139157

@@ -246,13 +264,16 @@ const mergehDAO = async (obj) => {
246264
}
247265

248266
const hDAOFeed = async (counter, res) => {
249-
var hDAO = await gethDAOLedger()
250-
var arr = _.orderBy(hDAO, ['hDAO_balance'], ['desc'])
251-
var objkts = await arr.map(async e => await mergehDAO(e))
267+
268+
var hDAO = await conseilUtil.hDAOFeed()
269+
var set = _.orderBy(hDAO, ['hDAO_balance'], ['desc'])
270+
var objkts = await (offset(set, 0)).map(async e => await mergehDAO(e))
271+
252272
var promise = Promise.all(objkts.map(e => e))
253273
promise.then(results => {
254274
var result = results.map(e => e)
255-
res.json({ result: offset(result, counter) })
275+
console.log(result)
276+
res.json({ result: result })
256277
}).catch(e => {
257278
res.status(500).json({ error: 'downstream API failure' })
258279
})
@@ -283,6 +304,10 @@ app.post('/feed', async (req, res) => {
283304
await getFeed(req.body.counter, res)
284305
})
285306

307+
app.post('/random', async (req, res) => {
308+
await randomFeed(parseInt(req.body.counter), res)
309+
})
310+
286311
app.post('/tz', async (req, res) => {
287312

288313
// list of restricted addresses
@@ -312,6 +337,9 @@ app.post('/hdao', async (req, res) => {
312337
await hDAOFeed(parseInt(req.body.counter), res)
313338
})
314339

315-
//app.listen(3001)
316-
module.exports.handler = serverless(app)
340+
const testhdao = async () => await hDAOFeed(parseInt(0))
341+
//testhdao()
342+
343+
app.listen(3001)
344+
//module.exports.handler = serverless(app)
317345

0 commit comments

Comments
 (0)