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

Commit 89595f3

Browse files
committed
Add recommended curate amt
1 parent e7a4588 commit 89595f3

File tree

3 files changed

+63
-9
lines changed

3 files changed

+63
-9
lines changed

config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ const mainnet = {
99
nftSwapMap: 523,
1010
curationsPtr: 519,
1111
nftRoyaltiesMap: 522,
12-
daoLedger: 515
12+
daoLedger: 515,
13+
kolibriLedger: 380,
14+
hDaoSwap: "KT1V41fGzkdTJki4d11T1Rp9yPkCmDhB7jph",
15+
kolibriSwap: "KT1CiSKXR68qYSxnbzjwvfeMCRburaSDonT2",
1316
}
1417

1518
module.exports = {

conseilUtil.js

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ conseiljs.registerFetch(fetch)
99
const conseilServer = 'https://conseil-prod.cryptonomic-infra.tech'
1010
const conseilApiKey = 'aa73fa8a-8626-4f43-a605-ff63130f37b1' // signup at nautilus.cloud
1111
const tezosNode = ''
12-
const quipuSwapContract = "KT1V41fGzkdTJki4d11T1Rp9yPkCmDhB7jph"
1312
const 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

105133
const getTezBalanceForAddress = async (address) => {
106134
let accountQuery = conseiljs.ConseilQueryBuilder.blankQuery();
@@ -120,18 +148,23 @@ const getTezBalanceForAddress = async (address) => {
120148

121149

122150
const 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-
135168
const 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
}

index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,11 @@ app.post('/objkt', async (req, res) => {
351351
res.json({ result: await getObjktById(req.body.objkt_id) })
352352
})
353353

354+
app.get('/recommend_curate', async (req, res) => {
355+
const amt = await conseilUtil.getRecommendedCurateDefault()
356+
res.json({ amount: amt })
357+
})
358+
354359
app.post('/hdao', async (req, res) => {
355360
await hDAOFeed(parseInt(req.body.counter), res)
356361
})

0 commit comments

Comments
 (0)