script to add auto resolution to all markets
This commit is contained in:
parent
1f588600fb
commit
55ebf76c37
56
functions/src/scripts/add-auto-resolution.ts
Normal file
56
functions/src/scripts/add-auto-resolution.ts
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
import * as admin from 'firebase-admin'
|
||||||
|
|
||||||
|
import { initAdmin } from './script-init'
|
||||||
|
initAdmin()
|
||||||
|
|
||||||
|
import { getValues } from '../utils'
|
||||||
|
import { Contract } from '../../../common/contract'
|
||||||
|
import { DAY_MS } from 'common/util/time'
|
||||||
|
|
||||||
|
const firestore = admin.firestore()
|
||||||
|
|
||||||
|
async function addAutoResolutionToContracts() {
|
||||||
|
console.log('Adding auto resolution to existing contracts')
|
||||||
|
|
||||||
|
const contracts = await getValues<Contract>(firestore.collection('contracts'))
|
||||||
|
|
||||||
|
console.log('Loaded', contracts.length, 'contracts')
|
||||||
|
|
||||||
|
for (const contract of contracts.filter((c) => !c.isResolved)) {
|
||||||
|
addAutoResolutionToContract(contract)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function addAutoResolutionToContract(contract: Contract) {
|
||||||
|
const contractRef = firestore.doc(`folds/${contract.id}`)
|
||||||
|
if (contract.autoResolutionTime != null && contract.autoResolution != null) {
|
||||||
|
console.log('Skipping, already has auto resolution', contract.slug)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (contract.autoResolutionTime != null || contract.autoResolution != null) {
|
||||||
|
console.error(
|
||||||
|
'Has partial auto resolution, please check manually',
|
||||||
|
contract.slug
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (contract.closeTime == null) {
|
||||||
|
console.error('Has no close time, please check manually', contract.slug)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const autoResolutionTime =
|
||||||
|
contract.closeTime > Date.now()
|
||||||
|
? contract.closeTime + 7 * DAY_MS
|
||||||
|
: Date.now() + 14 * DAY_MS
|
||||||
|
|
||||||
|
console.log('Adding auto resolution', contract.slug)
|
||||||
|
|
||||||
|
await contractRef.update({
|
||||||
|
autoResolution: 'MKT',
|
||||||
|
autoResolutionTime: autoResolutionTime,
|
||||||
|
} as Partial<Contract>)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (require.main === module)
|
||||||
|
addAutoResolutionToContracts().then(() => process.exit())
|
Loading…
Reference in New Issue
Block a user