Skip to content

Commit e4bba8d

Browse files
committed
wip
1 parent 097422e commit e4bba8d

File tree

6 files changed

+25
-82
lines changed

6 files changed

+25
-82
lines changed

ghcjs/lightning-verifier/src/App/Types.hs

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ import Functora.Miso.Prelude
3838
import Functora.Miso.Types as X
3939
import Functora.Money hiding (Currency, Money, Text)
4040
import qualified Functora.Prelude as Prelude
41-
import qualified Functora.Rates as Rates
42-
import qualified Functora.Web as Web
4341
import qualified Paths_lightning_verifier as Paths
4442
import qualified Text.URI as URI
4543

@@ -49,21 +47,16 @@ data Model = Model
4947
modelLinks :: OpenedOrClosed,
5048
modelLoading :: Bool,
5149
modelState :: St Unique,
52-
modelMarket :: MVar Rates.Market,
5350
modelFavMap :: Map MisoString Fav,
5451
modelFavName :: Field MisoString Unique,
55-
modelCurrencies :: NonEmpty CurrencyInfo,
5652
modelProducerQueue :: TChan (InstantOrDelayed (Model -> JSM Model)),
57-
modelConsumerQueue :: TChan (InstantOrDelayed (Model -> JSM Model)),
58-
modelOnlineAt :: UTCTime,
59-
modelWebOpts :: Web.Opts
53+
modelConsumerQueue :: TChan (InstantOrDelayed (Model -> JSM Model))
6054
}
6155
deriving stock (Eq, Generic)
6256

6357
data Action
6458
= Noop
6559
| InitUpdate (Maybe Aes.Crypto)
66-
| TimeUpdate
6760
| SyncInputs
6861
| ChanUpdate Model
6962
| PushUpdate (InstantOrDelayed (Model -> JSM Model))
@@ -94,8 +87,8 @@ deriving via GenericType (St Identity) instance Binary (St Identity)
9487

9588
data StDoc f = StDoc
9689
{ stDocFieldPairs :: [FieldPair DynamicField f],
97-
stDocLnInvoice :: Field MisoString f,
98-
stDocCreatedAt :: UTCTime
90+
stDocLnPreimage :: Field MisoString f,
91+
stDocLnInvoice :: Field MisoString f
9992
}
10093
deriving stock (Generic)
10194

@@ -115,13 +108,13 @@ deriving via GenericType (StDoc Identity) instance Binary (StDoc Identity)
115108

116109
newStDoc :: (MonadIO m) => m (StDoc Unique)
117110
newStDoc = do
118-
ct <- getCurrentTime
111+
r <- newTextField mempty
119112
ln <- newTextField mempty
120113
pure
121114
StDoc
122115
{ stDocFieldPairs = mempty,
123-
stDocLnInvoice = ln,
124-
stDocCreatedAt = ct
116+
stDocLnPreimage = r,
117+
stDocLnInvoice = ln
125118
}
126119

127120
data Screen

ghcjs/lightning-verifier/src/App/Widgets/Fav.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ favItem st label Fav {favUri = uri} =
156156
--
157157
-- TODO : Implement here pure, less costly equivalent of newModel.
158158
--
159-
next <- newModel (st ^. #modelWebOpts) (Just st) uri
159+
next <- newModel (Just st) uri
160160
pure
161161
$ nextSt
162162
& #modelFav

ghcjs/lightning-verifier/src/App/Widgets/Main.hs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,18 @@ screenWidget st@Model {modelState = St {stScreen = Converter}} =
127127
Field.argsAction = PushUpdate . Delayed 300
128128
}
129129
( Field.defOpts @Model @Action
130-
& #optsFullWidth
131-
.~ True
132130
& #optsPlaceholder
133-
.~ "Lightning Invoice"
131+
.~ "Invoice"
132+
),
133+
Field.textField
134+
Field.Args
135+
{ Field.argsModel = st,
136+
Field.argsOptic = #modelState . #stDoc . #stDocLnPreimage,
137+
Field.argsAction = PushUpdate . Delayed 300
138+
}
139+
( Field.defOpts @Model @Action
140+
& #optsPlaceholder
141+
.~ "Preimage"
134142
)
135143
]
136144

ghcjs/lightning-verifier/src/App/Widgets/Templates.hs

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,11 @@ import App.Types
88
import qualified Functora.Aes as Aes
99
import Functora.Cfg
1010
import Functora.Miso.Prelude
11-
import qualified Functora.Rates as Rates
12-
import qualified Functora.Web as Web
1311

14-
newModel ::
15-
( MonadThrow m,
16-
MonadUnliftIO m
17-
) =>
18-
Web.Opts ->
19-
Maybe Model ->
20-
URI ->
21-
m Model
22-
newModel webOpts mSt uri = do
23-
ct <- getCurrentTime
12+
newModel :: (MonadThrow m, MonadUnliftIO m) => Maybe Model -> URI -> m Model
13+
newModel mSt uri = do
2414
prod <- liftIO newBroadcastTChanIO
2515
cons <- liftIO . atomically $ dupTChan prod
26-
market <-
27-
maybe
28-
Rates.newMarket
29-
pure
30-
(mSt ^? _Just . #modelMarket)
3116
defKm <-
3217
maybe
3318
(Aes.randomKm 32)
@@ -103,17 +88,10 @@ newModel webOpts mSt uri = do
10388
modelLinks = Closed,
10489
modelLoading = True,
10590
modelState = st,
106-
modelMarket = market,
10791
modelFavMap = mempty,
10892
modelFavName = favName,
109-
modelCurrencies =
110-
fromMaybe
111-
[btc, usd]
112-
(mSt ^? _Just . #modelCurrencies),
11393
modelProducerQueue = prod,
114-
modelConsumerQueue = cons,
115-
modelOnlineAt = fromMaybe ct (mSt ^? _Just . #modelOnlineAt),
116-
modelWebOpts = webOpts
94+
modelConsumerQueue = cons
11795
}
11896

11997
newDonateDoc :: IO (StDoc Unique)

ghcjs/lightning-verifier/src/Main.hs

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import qualified Functora.Aes as Aes
2626
import qualified Functora.Miso.Jsm as Jsm
2727
import Functora.Miso.Prelude
2828
import qualified Functora.Prelude as Prelude
29-
import qualified Functora.Web as Web
3029
import Language.Javascript.JSaddle ((!), (!!))
3130
import qualified Language.Javascript.JSaddle as JS
3231
import qualified Miso
@@ -46,8 +45,7 @@ main =
4645
$ do
4746
uri <- URI.mkURI . Prelude.inspect =<< getCurrentURI
4847
mSt <- unShareUri uri
49-
web <- getWebOpts
50-
st <- newModel web Nothing uri
48+
st <- newModel Nothing uri
5149
startApp
5250
App
5351
{ model = st,
@@ -60,15 +58,6 @@ main =
6058
logLevel = Off
6159
}
6260

63-
getWebOpts :: JSM Web.Opts
64-
getWebOpts = do
65-
#ifdef wasi_HOST_OS
66-
ctx <- JS.askJSM
67-
pure $ Web.defOpts ctx
68-
#else
69-
pure Web.defOpts
70-
#endif
71-
7261
#if !defined(__GHCJS__) && !defined(ghcjs_HOST_OS) && !defined(wasi_HOST_OS)
7362
runApp :: JSM () -> IO ()
7463
runApp app = do
@@ -116,9 +105,6 @@ updateModel (InitUpdate ext) prevSt = do
116105
batchEff
117106
prevSt
118107
[ do
119-
sleepSeconds 60
120-
pure TimeUpdate,
121-
do
122108
--
123109
-- NOTE : making a new pair of TChans to avoid deadlocks
124110
-- when running in ghcid mode and reloading page without
@@ -149,7 +135,7 @@ updateModel (InitUpdate ext) prevSt = do
149135
. (& #modelFavMap %~ fav)
150136
. (& #modelLoading .~ False)
151137
Just uri -> do
152-
finSt <- newModel (nextSt ^. #modelWebOpts) (Just nextSt) uri
138+
finSt <- newModel (Just nextSt) uri
153139
Misc.pushActionQueue nextSt
154140
$ Instant
155141
( const
@@ -163,21 +149,6 @@ updateModel (InitUpdate ext) prevSt = do
163149
pure
164150
$ ChanUpdate nextSt
165151
]
166-
updateModel TimeUpdate st = do
167-
batchEff
168-
st
169-
[ do
170-
sleepSeconds 60
171-
pure TimeUpdate,
172-
do
173-
ct <- getCurrentTime
174-
unless (upToDate ct $ st ^. #modelOnlineAt)
175-
. Misc.pushActionQueue st
176-
. Instant
177-
$ pure
178-
. id
179-
pure Noop
180-
]
181152
updateModel SyncInputs st = do
182153
batchEff
183154
st
@@ -324,9 +295,3 @@ syncUri uri = do
324295
. from @Prelude.Text @Prelude.String
325296
$ URI.render nextUri
326297
)
327-
328-
upToDate :: UTCTime -> UTCTime -> Bool
329-
upToDate lhs rhs =
330-
diff < 3600
331-
where
332-
diff = abs . toRational $ diffUTCTime lhs rhs

ghcjs/lightning-verifier/test/App/TypesSpec.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import App.Widgets.Templates
55
import qualified Data.Aeson as A
66
import qualified Data.Generics as Syb
77
import Functora.Miso.Prelude hiding (prop)
8-
import qualified Functora.Web as Web
98
import qualified Optics.Generic as Ops
109
import qualified Optics.Setter as Ops
1110
import Test.Hspec
@@ -56,8 +55,8 @@ spec = do
5655
-- $ over soplate fun expr
5756
-- `shouldBe` Mul (Sub (Lit 2) (Lit 3)) (Lit 4)
5857
it "serialization" $ do
59-
st0 <- newModel Web.defOpts Nothing =<< URI.mkURI "http://localhost"
58+
st0 <- newModel Nothing =<< URI.mkURI "http://localhost"
6059
uri <- stUri st0
61-
st1 <- newModel Web.defOpts Nothing uri
60+
st1 <- newModel Nothing uri
6261
(st0 ^. #modelState . #stDoc . to uniqueToIdentity)
6362
`shouldBe` (st1 ^. #modelState . #stDoc . to uniqueToIdentity)

0 commit comments

Comments
 (0)