mirror of https://github.com/voidlizard/hbs2
wip
This commit is contained in:
parent
708d9464c7
commit
b6c85789b9
|
@ -160,11 +160,16 @@ export key refs = do
|
||||||
reflog <- asks _refLogAPI
|
reflog <- asks _refLogAPI
|
||||||
ip <- asks _progress
|
ip <- asks _progress
|
||||||
|
|
||||||
LWWBlockData{..} <- waitOrInitLWWRef
|
lww@LWWBlockData{..} <- waitOrInitLWWRef
|
||||||
|
|
||||||
debug $ red $ pretty $ AsBase58 lwwRefLogPubKey
|
debug $ red $ pretty $ AsBase58 lwwRefLogPubKey
|
||||||
|
|
||||||
puk <- error $ show $ "FIXME: puk" <+> pretty (AsBase58 lwwRefLogPubKey)
|
(sk0,pk0) <- liftIO $ runKeymanClient do
|
||||||
|
creds <- loadCredentials lwwRefLogPubKey
|
||||||
|
>>= orThrowUser "can't load credentials"
|
||||||
|
pure ( view peerSignSk creds, view peerSignPk creds )
|
||||||
|
|
||||||
|
(puk,sk) <- derivedKey @HBS2Basic @'Sign lwwRefSeed sk0
|
||||||
|
|
||||||
subscribeRefLog puk
|
subscribeRefLog puk
|
||||||
|
|
||||||
|
@ -246,7 +251,7 @@ export key refs = do
|
||||||
|
|
||||||
debug $ red "MAKE TX" <+> pretty rw <+> pretty gk0old <+> "->" <+> pretty gk0new
|
debug $ red "MAKE TX" <+> pretty rw <+> pretty gk0old <+> "->" <+> pretty gk0new
|
||||||
|
|
||||||
tx <- lift $ makeTx sto rw rank puk repohead bss out
|
tx <- lift $ makeTx sto rw rank puk (const $ pure (Just sk)) repohead bss out
|
||||||
|
|
||||||
r <- lift $ race (pause @'Seconds 1) (callService @RpcRefLogPost reflog tx)
|
r <- lift $ race (pause @'Seconds 1) (callService @RpcRefLogPost reflog tx)
|
||||||
>>= orThrowUser "hbs2-peer rpc timeout"
|
>>= orThrowUser "hbs2-peer rpc timeout"
|
||||||
|
|
|
@ -85,26 +85,24 @@ makeRepoHeadSimple name brief manifest gk refs = do
|
||||||
writeRepoHead :: MonadUnliftIO m => AnyStorage -> RepoHead -> m HashRef
|
writeRepoHead :: MonadUnliftIO m => AnyStorage -> RepoHead -> m HashRef
|
||||||
writeRepoHead sto rh = writeAsMerkle sto (serialise rh) <&> HashRef
|
writeRepoHead sto rh = writeAsMerkle sto (serialise rh) <&> HashRef
|
||||||
|
|
||||||
makeTx :: (MonadUnliftIO m, GroupKeyOperations m)
|
makeTx :: forall s m . (MonadUnliftIO m, GroupKeyOperations m, s ~ HBS2Basic)
|
||||||
=> AnyStorage
|
=> AnyStorage
|
||||||
-> Bool -- ^ rewrite bundle merkle tree with new gk0
|
-> Bool -- ^ rewrite bundle merkle tree with new gk0
|
||||||
-> Rank -- ^ tx rank
|
-> Rank -- ^ tx rank
|
||||||
-> RefLogId
|
-> RefLogId
|
||||||
|
-> ( PubKey 'Sign s -> m (Maybe (PrivKey 'Sign s) ) )
|
||||||
-> RepoHead
|
-> RepoHead
|
||||||
-> [HashRef]
|
-> [HashRef]
|
||||||
-> [LBS]
|
-> [LBS]
|
||||||
-> m RepoTx
|
-> m RepoTx
|
||||||
|
|
||||||
makeTx sto rewrite r puk rh prev lbss = do
|
makeTx sto rewrite r puk findSk rh prev lbss = do
|
||||||
|
|
||||||
let rfk = RefLogKey @HBS2Basic puk
|
let rfk = RefLogKey @HBS2Basic puk
|
||||||
|
|
||||||
creds <- liftIO ( runKeymanClient $ loadCredentials puk )
|
privk <- findSk puk
|
||||||
>>= orThrow TxKeyringNotFound
|
>>= orThrow TxKeyringNotFound
|
||||||
|
|
||||||
let pubk = view peerSignPk creds
|
|
||||||
let privk = view peerSignSk creds
|
|
||||||
|
|
||||||
-- FIXME: delete-on-fail
|
-- FIXME: delete-on-fail
|
||||||
headRef <- writeRepoHead sto rh
|
headRef <- writeRepoHead sto rh
|
||||||
|
|
||||||
|
@ -168,7 +166,7 @@ makeTx sto rewrite r puk rh prev lbss = do
|
||||||
& serialise
|
& serialise
|
||||||
& LBS.toStrict
|
& LBS.toStrict
|
||||||
|
|
||||||
makeRefLogUpdate @L4Proto @HBS2Basic pubk privk tx
|
makeRefLogUpdate @L4Proto @HBS2Basic puk privk tx
|
||||||
|
|
||||||
|
|
||||||
unpackTx :: MonadIO m
|
unpackTx :: MonadIO m
|
||||||
|
|
Loading…
Reference in New Issue