@@ -4,10 +4,10 @@ const express = require('express')
44const cors = require ( 'cors' )
55const _ = require ( 'lodash' )
66const conseilUtil = require ( './conseilUtil' )
7- const cls = require ( 'cloud-local-storage ' )
7+ const { random } = require ( 'lodash ' )
88require ( 'dotenv' ) . config ( )
99
10- const reducer = ( accumulator , currentValue ) => accumulator + currentValue ;
10+ const reducer = ( accumulator , currentValue ) => parseInt ( accumulator ) + parseInt ( currentValue )
1111
1212const getIpfsHash = async ( ipfsHash ) => {
1313
@@ -35,16 +35,16 @@ const getTokenHoldersArr = async (arr) => {
3535 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 ) )
3636 /* await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + arr[0]).then(res => console.log(res.data))
3737 */ /* var result = arr.map(async e => {
38- return await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + e).then(res => res.data)
39- })
38+ return await axios.get('https://api.better-call.dev/v1/contract/mainnet/KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton/tokens/holders?token_id=' + e).then(res => res.data)
39+ })
4040
41- console.log(result) */
41+ console.log(result) */
4242}
4343
4444const owners = async ( obj ) => {
4545 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 )
4646 var values_arr = ( _ . values ( owners ) )
47- console . log ( owners )
47+ obj . total_amount = ( values_arr . map ( e => parseInt ( e ) ) ) . length > 0 ? values_arr . filter ( e => parseInt ( e ) > 0 ) . reduce ( reducer ) : 0
4848 obj . owners = owners
4949 console . log ( obj )
5050 //obj.total_amount = (values_arr.map(e => parseInt(e))).reduce(reducer)
@@ -55,7 +55,8 @@ const totalAmountIntegral = async (obj) => {
5555 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 )
5656 console . log ( owners )
5757 var values_arr = ( _ . values ( owners ) )
58- obj . total_amount = ( values_arr . map ( e => parseInt ( e ) ) ) . reduce ( reducer )
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
7374const 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,14 +135,31 @@ const customFloor = function (value, roundTo) {
134135
135136const 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
138- const getFeed = async ( counter , max_time , res ) => {
139-
140- const now_time = Date . now ( )
141- const immutable = ( typeof max_time !== 'undefined' ) && ( max_time < now_time )
142- max_time = ( typeof max_time !== 'undefined' ) ? max_time : customFloor ( now_time , ONE_MINUTE_MILLIS )
156+ const getFeed = async ( counter , res ) => {
143157
144- var arr = await conseilUtil . getArtisticUniverse ( max_time )
158+ /* const now_time = Date.now()
159+ const immutable = (typeof max_time !== 'undefined') && (max_time < now_time)
160+ max_time = (typeof max_time !== 'undefined') ? max_time : customFloor(now_time, ONE_MINUTE_MILLIS)
161+ */
162+ var arr = await conseilUtil . getArtisticUniverse ( 0 )
145163
146164 var feed = offset ( desc ( arr ) , counter )
147165 console . log ( feed )
@@ -152,26 +170,25 @@ const getFeed = async (counter, max_time, res) => {
152170 return e
153171 } )
154172 //console.log(feed)
155- var cache_time
156- if ( immutable ) {
157- cache_time = 60 * 10
158- }
159- else {
160- cache_time = ( int ) ( ( ( max_time + ONE_MINUTE_MILLIS ) - now_time ) / 1000 )
161- }
173+ /* var cache_time
174+ if (immutable) {
175+ cache_time = 60 * 10
176+ }
177+ else {
178+ cache_time = (int)(((max_time + ONE_MINUTE_MILLIS) - now_time) / 1000)
179+ } */
162180 var promise = Promise . all ( feed . map ( e => e ) )
163181 promise . then ( async ( results ) => {
164182 var aux_arr = results . map ( e => e )
165183
166- res . set ( 'Cache-Control' , `public, max-age=${ cache_time } ` )
184+ // res.set('Cache-Control', `public, max-age=${cache_time}`)
167185
168186 console . log ( aux_arr )
169187 res . json ( { result : aux_arr } )
170188 } )
171189}
172- //getFeed(1)
190+
173191const filterObjkts = ( arr , id_arr ) => _ . filter ( arr , { token_id : tk . id } )
174- //console.log(_.find(ledger, { tz : 'KT1Hkg5qeNhfwpKW4fXvq7HGZB9z2EnmCCA9'}))
175192
176193const getTzLedger = async ( tz , res ) => {
177194 /* var ledger = desc(await getObjktLedger())
@@ -247,13 +264,16 @@ const mergehDAO = async (obj) => {
247264}
248265
249266const hDAOFeed = async ( counter , res ) => {
250- var hDAO = await gethDAOLedger ( )
251- var arr = _ . orderBy ( hDAO , [ 'hDAO_balance' ] , [ 'desc' ] )
252- 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+
253272 var promise = Promise . all ( objkts . map ( e => e ) )
254273 promise . then ( results => {
255274 var result = results . map ( e => e )
256- res . json ( { result : offset ( result , counter ) } )
275+ console . log ( result )
276+ res . json ( { result : result } )
257277 } ) . catch ( e => {
258278 res . status ( 500 ) . json ( { error : 'downstream API failure' } )
259279 } )
@@ -263,7 +283,7 @@ const hDAOFeed = async (counter, res) => {
263283//testSwaps()
264284//getFeed(0)
265285//getTzLedger('tz1UBZUkXpKGhYsP5KtzDNqLLchwF4uHrGjw')
266- //getObjktById(6246 )
286+ //getObjktById(5965 )
267287//const test2 = async () => console.log(await getObjktLedger())
268288//test2()
269289
@@ -272,18 +292,25 @@ const app = express()
272292app . use ( express . json ( ) )
273293app . use ( cors ( { origin : '*' } ) )
274294
275- app . get ( '/feed' , async ( req , res ) => {
276- var counter = req . query . counter
277- var max_time = req . query . hasOwnProperty ( 'time' ) ? customFloor ( req . query . time , ONE_MINUTE_MILLIS ) : null
278- const now_time_qt = customFloor ( Date . now ( ) , ONE_MINUTE_MILLIS )
279- if ( max_time != null & max_time > now_time_qt ) {
280- max_time = null
281- }
282- await getFeed ( counter , max_time , res )
295+ app . post ( '/feed' , async ( req , res ) => {
296+ /*
297+ var counter = req.query.counter
298+ var max_time = req.query.hasOwnProperty('time') ? customFloor(req.query.time, ONE_MINUTE_MILLIS) : null
299+ const now_time_qt = customFloor(Date.now(), ONE_MINUTE_MILLIS)
300+ if (max_time != null & max_time > now_time_qt) {
301+ max_time = null
302+ }
303+ */
304+ await getFeed ( req . body . counter , res )
305+ } )
306+
307+ app . post ( '/random' , async ( req , res ) => {
308+ await randomFeed ( parseInt ( req . body . counter ) , res )
283309} )
284310
285311app . post ( '/tz' , async ( req , res ) => {
286- console . log ( req . body . tz )
312+
313+ // list of restricted addresses
287314 var list = await axios . get ( 'https://raw.githubusercontent.com/hicetnunc2000/hicetnunc/main/filters/w.json' ) . then ( res => res . data )
288315
289316 list . includes ( req . body . tz )
@@ -295,6 +322,8 @@ app.post('/tz', async (req, res) => {
295322} )
296323
297324app . post ( '/objkt' , async ( req , res ) => {
325+
326+ // list of restricted objkts
298327 var list = await axios . get ( 'https://raw.githubusercontent.com/hicetnunc2000/hicetnunc/main/filters/o.json' ) . then ( res => res . data )
299328
300329 list . includes ( parseInt ( req . body . objkt_id ) )
@@ -308,13 +337,9 @@ app.post('/hdao', async (req, res) => {
308337 await hDAOFeed ( parseInt ( req . body . counter ) , res )
309338} )
310339
340+ const testhdao = async ( ) => await hDAOFeed ( parseInt ( 0 ) )
341+ //testhdao()
342+
311343app . listen ( 3001 )
312344//module.exports.handler = serverless(app)
313345
314- /* const test2 = async () => {
315- await axios.get('https://raw.githubusercontent.com/hicetnunc2000/hicetnunc/main/filters/o.json').then(res => console.log(res.data))
316- }
317- test2() */
318- //testTkHolder([{'kt' : 2020}, {'kt' : 2021}])
319- //getFeed(1)
320- //getObjktById(2000)
0 commit comments