Skip to content

Commit 6acdc3a

Browse files
authored
Fixes for shielded transaction submission (#3409)
* Fixes JSON representation in Nock * Adds the `--shielded` option for `juvix dev anoma add-transaction`
1 parent f46577d commit 6acdc3a

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

app/Commands/Dev/Anoma.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ runCommand g =
3131
(Prove.runCommand opts)
3232
AnomaCommandAddTransaction opts ->
3333
runAnomaWithHostConfig
34-
(addTransaction (opts ^. addTransactionFile))
34+
(addTransaction (opts ^. addTransactionShielded) (opts ^. addTransactionFile))
3535
AnomaCommandIndexer opts -> runAnomaWithHostConfig (Indexer.runCommand opts)
3636
where
3737
runAnomaWithHostConfig :: (Members (Error SimpleError ': AppEffects) x) => Sem (Anoma ': x) () -> Sem x ()

app/Commands/Dev/Anoma/AddTransaction/Options.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ module Commands.Dev.Anoma.AddTransaction.Options where
22

33
import CommonOptions
44

5-
newtype AddTransactionOptions = AddTransactionOptions
6-
{ _addTransactionFile :: AppPath File
5+
data AddTransactionOptions = AddTransactionOptions
6+
{ _addTransactionFile :: AppPath File,
7+
_addTransactionShielded :: Bool
78
}
89
deriving stock (Data)
910

@@ -12,4 +13,5 @@ makeLenses ''AddTransactionOptions
1213
parseAddTransactionOptions :: Parser AddTransactionOptions
1314
parseAddTransactionOptions = do
1415
_addTransactionFile <- parseInputFile FileExtNockma
16+
_addTransactionShielded <- switch (long "shielded" <> help "Add a shielded transaction")
1517
pure AddTransactionOptions {..}

app/Commands/Dev/Anoma/Base.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Commands.Dev.Anoma.Base where
22

33
import Anoma.Effect (Anoma)
44
import Anoma.Effect qualified as Anoma
5+
import Anoma.Http.AddTransaction
56
import Commands.Base hiding (Atom)
67
import Commands.Dev.Anoma.Prove.Options.ProveArg
78
import Data.ByteString qualified as BS
@@ -83,13 +84,15 @@ prepareArg = \case
8384
addTransaction ::
8485
forall r.
8586
(Members '[Error SimpleError, Anoma] r, Members AppEffects r) =>
87+
Bool ->
8688
AppPath File ->
8789
Sem r ()
88-
addTransaction programFile = do
90+
addTransaction isShielded programFile = do
8991
afile <- fromAppPathFile programFile
9092
parsedTerm <- runAppError @JuvixError (Nockma.cueJammedFileOrPretty afile)
9193
cellOrFail parsedTerm $ \t ->
9294
Anoma.addTransaction
9395
Anoma.AddTransactionInput
94-
{ _addTransactionInputCandidate = t
96+
{ _addTransactionInputCandidate = t,
97+
_addTransactionInputType = if isShielded then TransactionCairo else TransactionTransparent
9598
}

src/Anoma/Effect/AddTransaction.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import Juvix.Compiler.Nockma.Language qualified as Nockma
1010
import Juvix.Prelude
1111
import Juvix.Prelude.Aeson qualified as Aeson
1212

13-
newtype AddTransactionInput = AddTransactionInput
14-
{ _addTransactionInputCandidate :: Nockma.Term Natural
13+
data AddTransactionInput = AddTransactionInput
14+
{ _addTransactionInputCandidate :: Nockma.Term Natural,
15+
_addTransactionInputType :: TransactionType
1516
}
1617

1718
makeLenses ''AddTransactionInput

src/Juvix/Compiler/Nockma/Translation/FromTree.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1177,7 +1177,7 @@ goConstructor mr t args = assert (all isCell args) $
11771177
case t of
11781178
Tree.BuiltinTag b -> case nockmaBuiltinTag b of
11791179
Just (NockmaBuiltinBool v) -> nockBoolLiteral v
1180-
Just (NockmaBuiltinJson s) -> nockStringLiteral s
1180+
Just (NockmaBuiltinJson s) -> foldTerms (nockStringLiteral s :| args)
11811181
Nothing -> crash
11821182
Tree.UserTag tag -> case mr of
11831183
NockmaMemRepConstr ->

test/Anoma/Client/Positive.hs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Anoma.Client.Positive where
22

33
import Anoma.Client.Base
44
import Anoma.Effect
5+
import Anoma.Http.AddTransaction (TransactionType (TransactionTransparent))
56
import Base
67
import Juvix.Compiler.Nockma.Language hiding (Path)
78
import Juvix.Prelude.Pretty
@@ -54,7 +55,8 @@ proveAndSubmit program proveArgs = do
5455
step "Submitting transaction candidate"
5556
addTransaction
5657
AddTransactionInput
57-
{ _addTransactionInputCandidate = resProve ^. runNockmaResult
58+
{ _addTransactionInputCandidate = resProve ^. runNockmaResult,
59+
_addTransactionInputType = TransactionTransparent
5860
}
5961
return (resProve ^. runNockmaTraces)
6062

0 commit comments

Comments
 (0)