@@ -9,7 +9,6 @@ conseiljs.registerFetch(fetch)
99const conseilServer = 'https://conseil-prod.cryptonomic-infra.tech'
1010const conseilApiKey = 'aa73fa8a-8626-4f43-a605-ff63130f37b1' // signup at nautilus.cloud
1111const tezosNode = ''
12- const quipuSwapContract = "KT1V41fGzkdTJki4d11T1Rp9yPkCmDhB7jph"
1312const mainnet = require ( './config' ) . networkConfig
1413
1514
@@ -101,6 +100,35 @@ const gethDaoBalanceForAddress = async (address) => {
101100 return balance
102101}
103102
103+ const getTokenBalance = async ( big_map_id , address , fa2 = false , token_id = 0 ) => {
104+ let tokenBalanceQuery = conseiljs . ConseilQueryBuilder . blankQuery ( ) ;
105+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . addFields ( tokenBalanceQuery , 'value' ) ;
106+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . addPredicate ( tokenBalanceQuery , 'big_map_id' , conseiljs . ConseilOperator . EQ , [ big_map_id ] )
107+ if ( fa2 ) {
108+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . addPredicate ( tokenBalanceQuery , 'key' , conseiljs . ConseilOperator . EQ , [
109+ `Pair 0x${ conseiljs . TezosMessageUtils . writeAddress ( address ) } ${ token_id } `
110+ ] )
111+ }
112+ else {
113+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . addPredicate ( tokenBalanceQuery , 'key' , conseiljs . ConseilOperator . EQ , [
114+ `0x${ conseiljs . TezosMessageUtils . writeAddress ( address ) } `
115+ ] )
116+ }
117+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . addPredicate ( tokenBalanceQuery , 'value' , conseiljs . ConseilOperator . EQ , [ 0 ] , true )
118+ tokenBalanceQuery = conseiljs . ConseilQueryBuilder . setLimit ( tokenBalanceQuery , 1 )
119+
120+ let balance = 0
121+
122+ try {
123+ const balanceResult = await conseiljs . TezosConseilClient . getTezosEntityData ( { url : conseilServer , apiKey : conseilApiKey , network : 'mainnet' } , 'mainnet' , 'big_map_contents' , tokenBalanceQuery ) ;
124+ balance = balanceResult [ 0 ] [ 'value' ] // TODO: consider bigNumber here, for the moment there is no reason for it
125+ } catch ( error ) {
126+ console . log ( `getTokenBalance failed for ${ JSON . stringify ( tokenBalanceQuery ) } with ${ error } ` )
127+ }
128+
129+ return balance
130+ }
131+
104132
105133const getTezBalanceForAddress = async ( address ) => {
106134 let accountQuery = conseiljs . ConseilQueryBuilder . blankQuery ( ) ;
@@ -120,18 +148,23 @@ const getTezBalanceForAddress = async (address) => {
120148
121149
122150const gethDAOPerTez = async ( ) => {
123- const tezBalance = await ( getTezBalanceForAddress ( quipuSwapContract ) )
124- const hdaoBalance = await ( gethDaoBalanceForAddress ( quipuSwapContract ) )
151+ const tezBalance = await ( getTezBalanceForAddress ( mainnet . hDaoSwap ) )
152+ const hdaoBalance = await ( gethDaoBalanceForAddress ( mainnet . hDaoSwap ) )
125153 return hdaoBalance / tezBalance
126154}
127155
128- const getTezPerhDAO = async ( ) => {
129- hDAOpTez = await gethDAOPerTez ( )
130- return 1 / hDAOpTez
156+ const getKolibriPerTez = async ( ) => {
157+ const tezBalance = await ( getTezBalanceForAddress ( mainnet . kolibriSwap ) )
158+ //console.log("Tez balance", tezBalance)
159+ var kolibriBalance = await ( getTokenBalance ( mainnet . kolibriLedger , mainnet . kolibriSwap ) )
160+ kolibriBalance = parseInt ( kolibriBalance . replace ( "Pair {} " , "" ) ) / ( 10 ** ( ( 18 - 6 ) ) )
161+ //console.log(kolibriBalance)
162+ //console.log(typeof(kolibriBalance))
163+ //console.log("Kol balance", kolibriBalance)
164+ return kolibriBalance / tezBalance
131165}
132166
133167
134-
135168const gethDaoBalances = async ( ) => {
136169 let hDaoBalanceQuery = conseiljs . ConseilQueryBuilder . blankQuery ( ) ;
137170 hDaoBalanceQuery = conseiljs . ConseilQueryBuilder . addFields ( hDaoBalanceQuery , 'key' , 'value' ) ;
@@ -359,6 +392,18 @@ const getFeaturedArtisticUniverse = async(max_time) => {
359392 } )
360393}
361394
395+ const getRecommendedCurateDefault = async ( ) => {
396+ hdaoPerTez = await gethDAOPerTez ( )
397+ kolPerTez = await getKolibriPerTez ( )
398+ //console.log("hdaoPerTez", hdaoPerTez)
399+ //console.log("kolPerTez", kolPerTez)
400+ hdaoPerKol = hdaoPerTez / kolPerTez
401+ //console.log("hdaoPerKol", hdaoPerKol)
402+
403+ //Minimum of $0.1, 0.1 hDAO, and 0.1tez, in hDAO
404+ return Math . floor ( Math . min ( hdaoPerKol * 0.1 , 0.1 , 0.1 * hdaoPerTez ) * 1_000_000 )
405+ }
406+
362407/**
363408 * Returns object ipfs hash and swaps if any
364409 *
@@ -425,5 +470,6 @@ module.exports = {
425470 getObjectById,
426471 getArtisticUniverse,
427472 getFeaturedArtisticUniverse,
428- hDAOFeed
473+ hDAOFeed,
474+ getRecommendedCurateDefault
429475}
0 commit comments