This commit is contained in:
hatim boufnichel 2021-01-29 15:46:47 +01:00
parent 6d8c82b693
commit b0c5f40595
2 changed files with 41 additions and 29 deletions

View file

@ -1112,15 +1112,18 @@ const sendSpontaneousPayment = async (
console.log(orderResponse) console.log(orderResponse)
console.log(Schema.isOrderResponse(orderResponse)) console.log(Schema.isOrderResponse(orderResponse))
if (Schema.isOrderResponse(orderResponse)) { //@ts-expect-error
if (orderResponse && orderResponse.type === 'orderAck') {
//@ts-expect-error
res(orderResponse) res(orderResponse)
} }
}) })
}), }),
v => !Schema.isOrderResponse(v) //@ts-expect-error
v => !v || !v.type
) )
if (!Schema.isOrderResponse(encryptedOrderAckRes)) { if (!encryptedOrderAckRes || !encryptedOrderAckRes.type) {
const e = TypeError( const e = TypeError(
`Expected encryptedOrderAckRes got: ${typeof encryptedOrderAckRes}` `Expected encryptedOrderAckRes got: ${typeof encryptedOrderAckRes}`
) )
@ -1361,17 +1364,17 @@ const createPostNew = async (tags, title, content, SEA) => {
} }
const mySecret = require('../Mediator').getMySecret() const mySecret = require('../Mediator').getMySecret()
await Common.Utils.asyncForEach(content, async c => { await Common.Utils.asyncForEach(content, async c => {
const cBis = c
if (
(cBis.type === 'image/embedded' || cBis.type === 'video/embedded') &&
cBis.isPrivate
) {
const encryptedMagnet = await SEA.encrypt(cBis.magnetURI, mySecret)
cBis.magnetURI = encryptedMagnet
}
// @ts-expect-error // @ts-expect-error
const uuid = Gun.text.random() const uuid = Gun.text.random()
newPost.contentItems[uuid] = cBis if (
(c.type === 'image/embedded' || c.type === 'video/embedded') &&
c.isPrivate
) {
const encryptedMagnet = await SEA.encrypt(c.magnetURI, mySecret)
newPost.contentItems[uuid] = { ...c, magnetURI: encryptedMagnet }
} else {
newPost.contentItems[uuid] = c
}
}) })
/** @type {string} */ /** @type {string} */

View file

@ -357,6 +357,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
} }
case 'torrentSeed': { case 'torrentSeed': {
console.log('TORRENT') console.log('TORRENT')
const numberOfTokens = Number(ackInfo)
if (isNaN(numberOfTokens)) {
breakError = 'ackInfo provided is not a valid number'
break
}
const seedUrl = process.env.TORRENT_SEED_URL const seedUrl = process.env.TORRENT_SEED_URL
const seedToken = process.env.TORRENT_SEED_TOKEN const seedToken = process.env.TORRENT_SEED_TOKEN
if (!seedUrl || !seedToken) { if (!seedUrl || !seedToken) {
@ -364,26 +369,30 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
break //service not available break //service not available
} }
console.log('SEED URL OK') console.log('SEED URL OK')
const token = crypto.randomBytes(32).toString('hex') const tokens = Array(numberOfTokens)
const reqData = { for (let i = 0; i < numberOfTokens; i++) {
seed_token: seedToken, tokens[i] = crypto.randomBytes(32).toString('hex')
wallet_token: token
} }
console.log(seedUrl) /**@param {string} token */
console.log(seedToken) const enrollToken = async token => {
const res = await fetch(`${seedUrl}/api/enroll_token`, { const reqData = {
method: 'POST', seed_token: seedToken,
headers: { wallet_token: token
'Content-Type': 'application/json' }
}, const res = await fetch(`${seedUrl}/api/enroll_token`, {
body: JSON.stringify(reqData) method: 'POST',
}) headers: {
if (res.status !== 200) { 'Content-Type': 'application/json'
breakError = 'torrentSeed service currently not available' },
break //request didnt work, save coordinate anyway body: JSON.stringify(reqData)
})
if (res.status !== 200) {
throw new Error('torrentSeed service currently not available')
}
} }
await Promise.all(tokens.map(enrollToken))
console.log('RES SEED OK') console.log('RES SEED OK')
const ackData = { seedUrl, token } const ackData = { seedUrl, tokens }
const toSend = JSON.stringify(ackData) const toSend = JSON.stringify(ackData)
const encrypted = await SEA.encrypt(toSend, secret) const encrypted = await SEA.encrypt(toSend, secret)
const serviceResponse = { const serviceResponse = {