These are the functions I made based on MIna's globalSlotToTimestamp() function:
function globalSlotToTimestamp1() {
let { genesisTimestamp, slotTime } = Mina.activeInstance.getNetworkConstants();
let slot = Mina.activeInstance.getNetworkState().globalSlotSinceGenesis;
return UInt64.from(slot).mul(slotTime).add(genesisTimestamp)
}
function globalSlotToTimestamp2() {
let { genesisTimestamp, slotTime } = Mina.activeInstance.getNetworkConstants();
let slot = Mina.activeInstance.currentSlot();
return UInt64.from(slot).mul(slotTime).add(genesisTimestamp);
}
The following test:
it('commits to a bounty solution', async () => {
console.log(globalSlotToTimestamp1().toJSON())
console.log(globalSlotToTimestamp2().toJSON())
const txn = await Mina.transaction(hunter.publicKey, () => {
zkApp.commitBountyKey(bountyKeyCommit);
});
await txn.prove();
await txn.sign([hunter.privateKey]).send();
console.log(globalSlotToTimestamp1().toJSON())
console.log(globalSlotToTimestamp2().toJSON())
});
Produces the following output:
console.log
1706011706239
at Object.<anonymous> (src/Core.test.ts:67:17)
console.log
1706011886239
at Object.<anonymous> (src/Core.test.ts:68:17)
console.log
1706011706239
at Object.<anonymous> (src/Core.test.ts:85:17)
console.log
1706011886239
at Object.<anonymous> (src/Core.test.ts:86:17)