web3-0.9.0.0: src/Network/Ipfs/Api/Key.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
-- |
-- Module : Network.Ipfs.Api.Key
-- Copyright : Alexander Krupenkin 2016
-- License : BSD3
--
-- Maintainer : mail@akru.me
-- Stability : experimental
-- Portability : unknown
--
-- Api calls with `key` prefix.
--
module Network.Ipfs.Api.Key where
import Control.Monad.IO.Class (MonadIO)
import Data.Text (Text)
import Network.Ipfs.Api.Internal (_keyGen, _keyList, _keyRename,
_keyRm)
import Network.Ipfs.Api.Internal.Call (call)
import Network.Ipfs.Api.Types (KeyDetailsObj, KeyObj,
KeyRenameObj)
import Network.Ipfs.Client (IpfsT)
-- | 'List all local keypairs.
list :: MonadIO m => IpfsT m KeyObj
list = call _keyList
-- | Create a new keypair.
gen :: MonadIO m => Text -> Text -> IpfsT m KeyDetailsObj
gen name = call . _keyGen name . Just
-- | Rename a keypair.
rename :: MonadIO m => Text -> Text -> IpfsT m KeyRenameObj
rename was = call . _keyRename was . Just
-- | Remove a keypair.
rm :: MonadIO m => Text -> IpfsT m KeyObj
rm = call . _keyRm