File tree Expand file tree Collapse file tree 3 files changed +23
-7
lines changed
Expand file tree Collapse file tree 3 files changed +23
-7
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,8 @@ import {
1818 SignedIntent ,
1919 SignMessageArgs ,
2020 getTimeDrift ,
21- updateTimeDrift
21+ updateTimeDrift ,
22+ getLocalTime
2223} from './intents'
2324import {
2425 FeeOptionsResponse ,
@@ -609,6 +610,7 @@ export class SequenceWaaS {
609610 session . clear ( )
610611 await this . waas . completeSignOut ( )
611612 await this . deviceName . set ( undefined )
613+ updateTimeDrift ( undefined )
612614 }
613615 }
614616
@@ -672,9 +674,9 @@ export class SequenceWaaS {
672674 }
673675
674676 async waitForSessionValid ( timeout : number = 600000 , pollRate : number = 2000 ) {
675- const start = Date . now ( )
677+ const start = getLocalTime ( )
676678
677- while ( Date . now ( ) - start < timeout ) {
679+ while ( getLocalTime ( ) - start < timeout ) {
678680 if ( await this . isSessionValid ( ) ) {
679681 return true
680682 }
Original file line number Diff line number Diff line change @@ -18,6 +18,10 @@ function isSessionStorageAvailable() {
1818 return typeof window === 'object' && typeof window . sessionStorage === 'object'
1919}
2020
21+ export function getLocalTime ( ) {
22+ return new Date ( ) . getTime ( )
23+ }
24+
2125export function getTimeDrift ( ) {
2226 if ( isSessionStorageAvailable ( ) ) {
2327 const drift = window . sessionStorage . getItem ( timeDriftKey )
@@ -28,16 +32,24 @@ export function getTimeDrift() {
2832 return timeDrift
2933}
3034
31- export function updateTimeDrift ( serverTime : Date ) {
32- timeDrift = ( Date . now ( ) - serverTime . getTime ( ) ) / 1000
35+ export function updateTimeDrift ( serverTime ?: Date ) {
36+ if ( ! serverTime ) {
37+ timeDrift = undefined
38+ if ( isSessionStorageAvailable ( ) ) {
39+ window . sessionStorage . removeItem ( timeDriftKey )
40+ }
41+ return
42+ }
43+
44+ timeDrift = ( getLocalTime ( ) - serverTime . getTime ( ) ) / 1000
3345 if ( isSessionStorageAvailable ( ) ) {
3446 window . sessionStorage . setItem ( timeDriftKey , timeDrift . toString ( 10 ) )
3547 }
3648}
3749
3850export function makeIntent < T > ( name : IntentName , lifespan : number , data : T ) : Intent < T > {
3951 const drift = Math . abs ( Math . floor ( getTimeDrift ( ) || 0 ) )
40- const issuedAt = Math . floor ( Date . now ( ) / 1000 - drift )
52+ const issuedAt = Math . floor ( getLocalTime ( ) / 1000 - drift )
4153 const expiresAt = issuedAt + lifespan + 2 * drift
4254 return {
4355 version : VERSION ,
Original file line number Diff line number Diff line change 1+ import { getLocalTime } from "./base"
2+
13export function useLifespan ( lifespan : number ) {
2- const issuedAt = Math . floor ( Date . now ( ) / 1000 )
4+ const issuedAt = Math . floor ( getLocalTime ( ) / 1000 )
35 return {
46 issuedAt,
57 expiresAt : issuedAt + lifespan
You can’t perform that action at this time.
0 commit comments