Skip to content

Commit

Permalink
integration test for submitting tx encoded as hex
Browse files Browse the repository at this point in the history
  • Loading branch information
Piotr Stachyra authored and paweljakubas committed Jan 18, 2022
1 parent 9fcc063 commit 943f109
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 5 deletions.
6 changes: 1 addition & 5 deletions lib/core-integration/src/Test/Integration/Framework/DSL.hs
Expand Up @@ -2304,11 +2304,7 @@ submitTxWithWid
submitTxWithWid ctx w tx = do
let submitEndpoint = Link.submitTransaction @'Shelley w
let payload = Json $ Aeson.toJSON tx
let headers = Headers
[ ("Content-Type", "application/json")
, ("Accept", "application/json")
]
request @ApiTxId ctx submitEndpoint headers payload
request @ApiTxId ctx submitEndpoint Default payload

getWallet
:: forall w m.
Expand Down
3 changes: 3 additions & 0 deletions lib/core-integration/src/Test/Integration/Plutus.hs
Expand Up @@ -24,6 +24,9 @@ module Test.Integration.Plutus
, withdrawScript_1

, currencyTx

-- utils
, toHex
) where

{- HLINT ignore "Avoid restricted qualification" -}
Expand Down
Expand Up @@ -2215,6 +2215,36 @@ spec = describe "NEW_SHELLEY_TRANSACTIONS" $ do
, expectErrorMessage (errMsg404NoWallet wid)
]

it "TRANS_NEW_SUBMIT_03 - Can submit transaction encoded in base16" $ \ctx -> runResourceT $ do
wa <- fixtureWallet ctx

-- Construct tx
payload <- mkTxPayload ctx wa $ minUTxOValue (_mainEra ctx)
let constructEndpoint = Link.createUnsignedTransaction @'Shelley wa
sealedTx <- getFromResponse #transaction <$>
request @(ApiConstructTransaction n) ctx constructEndpoint Default payload

-- Sign tx
let toSign = Json [json|
{ "transaction": #{sealedTx}
, "passphrase": #{fixturePassphrase}
}|]
let signEndpoint = Link.signTransaction @'Shelley wa
signedTx <- getFromResponse #transaction <$>
request @ApiSerialisedTransaction ctx signEndpoint Default toSign
let signedTxHex = PlutusScenario.toHex $ serialisedTx $ getApiT signedTx

-- Submit tx
let submitEndpoint = Link.submitTransaction @'Shelley wa
let toSend = Json [json|
{ "transaction": #{signedTxHex}
}|]
submittedTx <- request @ApiTxId ctx submitEndpoint Default toSend
verify submittedTx
[ expectSuccess
, expectResponseCode HTTP.status202
]

describe "Plutus scenarios" $ do
let scenarios =
[ ( "ping-pong"
Expand Down

0 comments on commit 943f109

Please sign in to comment.