Skip to content

Commit

Permalink
Try #3424:
Browse files Browse the repository at this point in the history
  • Loading branch information
iohk-bors[bot] committed Aug 5, 2022
2 parents 8bb2a1f + 7d8c6c9 commit 489cd9a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
23 changes: 21 additions & 2 deletions lib/shelley/src/Cardano/Wallet/Shelley/Network/Blockfrost.hs
Expand Up @@ -129,6 +129,10 @@ import Cardano.Wallet.Primitive.Types.RewardAccount
( RewardAccount )
import Cardano.Wallet.Primitive.Types.TokenBundle
( TokenBundle (..) )
import Cardano.Wallet.Primitive.Types.TokenMap
( AssetId (..) )
import Cardano.Wallet.Primitive.Types.TokenQuantity
( TokenQuantity (..) )
import Cardano.Wallet.Primitive.Types.Tx
( Tx (..), TxIn (..), TxOut (..), TxScriptValidity (..), TxSize (..) )
import Cardano.Wallet.Shelley.Network.Blockfrost.Conversion
Expand Down Expand Up @@ -206,7 +210,7 @@ import Data.Set
import Data.Text
( Text )
import Data.Text.Class
( ToText (..) )
( ToText (..), fromText )
import Data.These
( These (That, These, This) )
import Data.Traversable
Expand Down Expand Up @@ -240,6 +244,7 @@ import qualified Cardano.Ledger.Coin as Ledger
import qualified Cardano.Slotting.Time as ST
import qualified Cardano.Wallet.Network.Light as LN
import qualified Cardano.Wallet.Primitive.Types.Coin as Coin
import qualified Cardano.Wallet.Primitive.Types.TokenMap as TokenMap
import qualified Cardano.Wallet.Shelley.Network.Blockfrost.Fixture as Fixture
import qualified Cardano.Wallet.Shelley.Network.Blockfrost.Layer as Layer
import qualified Data.Aeson as Aeson
Expand All @@ -250,6 +255,7 @@ import qualified Data.Sequence as Seq
import qualified Data.Set as Set
import qualified Data.Text as T
import qualified Data.Vector as V
import qualified Money
import qualified Ouroboros.Consensus.HardFork.History.Qry as HF
import qualified Ouroboros.Consensus.Util.Counting as UC

Expand Down Expand Up @@ -743,7 +749,20 @@ assembleTransaction
] of
[l] -> fromBfLovelaces l
_ -> throwError $ InvalidUtxoOutputAmount out
pure $ TokenBundle coin mempty -- TODO: Handle native assets
let bfAssets = [ ( Money.someDiscreteCurrency sd
, Money.someDiscreteAmount sd
)
| BF.AssetAmount sd <- _utxoOutputAmount
]
tokens <- for bfAssets \(textValue, a) -> do
let (policy, name) = T.splitAt 56 textValue
policyId <-
first (InvalidTokenPolicyId policy) (fromText policy)
assetName <-
first (InvalidTokenName name) (fromText name)
assetQuantity <- TokenQuantity <$> (a <?#> "TokenQuantity")
pure (AssetId policyId assetName, assetQuantity)
pure $ TokenBundle coin (TokenMap.fromFlatList tokens)
pure TxOut{..}
withdrawals <-
Map.fromList
Expand Down
Expand Up @@ -47,6 +47,8 @@ data BlockfrostError
| InvalidAddress Text TextDecodingError
| InvalidStakeAddress Text TextDecodingError
| InvalidPoolId Text TextDecodingError
| InvalidTokenPolicyId Text TextDecodingError
| InvalidTokenName Text TextDecodingError
| PoolStakePercentageError Coin Coin
| InvalidDecentralizationLevelPercentage Double
| InvalidPercentage Double MkPercentageError
Expand Down

0 comments on commit 489cd9a

Please sign in to comment.