2024-06-06 13:04:36 +10:00
|
|
|
export function arrayToObject(arrRequest) {
|
|
|
|
|
let { client, ask, content, expiry, nonce } = arrRequest
|
|
|
|
|
let { slots, slotSize, duration, proofProbability, reward, collateral, maxSlotLoss } = ask
|
|
|
|
|
let { cid, merkleRoot } = content
|
|
|
|
|
return {
|
|
|
|
|
client,
|
|
|
|
|
ask: {
|
|
|
|
|
slots,
|
|
|
|
|
slotSize,
|
|
|
|
|
duration,
|
|
|
|
|
proofProbability,
|
|
|
|
|
reward,
|
|
|
|
|
collateral,
|
|
|
|
|
maxSlotLoss
|
|
|
|
|
},
|
|
|
|
|
content: {
|
|
|
|
|
cid,
|
|
|
|
|
merkleRoot
|
|
|
|
|
},
|
|
|
|
|
expiry,
|
|
|
|
|
nonce
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function price(request) {
|
|
|
|
|
if (!request) {
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
return request.ask.reward * request.ask.duration * request.ask.slots
|
|
|
|
|
}
|
2024-06-06 15:28:29 +10:00
|
|
|
|
|
|
|
|
export function getStateColour(state) {
|
|
|
|
|
if (state === 'New') {
|
|
|
|
|
return 'yellow'
|
|
|
|
|
} else if (state === 'Fulfilled') {
|
|
|
|
|
return 'green'
|
|
|
|
|
} else if (state === 'Finished') {
|
|
|
|
|
return 'gray'
|
|
|
|
|
} else {
|
|
|
|
|
return 'red'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-19 16:43:41 +10:00
|
|
|
export const moderatedState = {
|
|
|
|
|
pending: { text: 'Pending 🤷♂️', color: 'gray' },
|
|
|
|
|
approved: { text: 'Approved ✅', color: 'green' },
|
|
|
|
|
banned: { text: 'NSFW! 🫣', color: 'red' }
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-06 15:28:29 +10:00
|
|
|
export const requestState = [
|
|
|
|
|
'New', // [default] waiting to fill slots
|
|
|
|
|
'Fulfilled', // all slots filled, accepting regular proofs
|
|
|
|
|
'Cancelled', // not enough slots filled before expiry
|
|
|
|
|
'Finished', // successfully completed
|
|
|
|
|
'Failed' // too many nodes have failed to provide proofs, data lost
|
|
|
|
|
]
|