Open
Description
Phantom handling in Rust codegen is not correct I believe
record CreateScriptsRequest a = {
scripts : Map ScriptHash (ScriptDatum a)
}
derive Eq (CreateScriptsRequest a)
derive Json (CreateScriptsRequest a)
record ScriptDatum a = {
scriptType : a,
-- ^ Protocol specific script type stored in this UTxO
redeemer : AssetClass
-- ^ Wallet containing `$redeemer` must sign the 'delete-script' transaction as an authorization method
}
derive Eq (ScriptDatum a)
derive PlutusData (ScriptDatum a)
derive Json (ScriptDatum a)
creates a
#[derive(std::fmt::Debug, std::clone::Clone)]
pub struct CreateScriptsRequest<A>{pub scripts: lbf_prelude::prelude::Map<lbf_plutus::plutus::v1::ScriptHash
,crate::cardano::extra::scriptstorage::validation::ScriptDatum<A>>,
phantom_A: std::marker::PhantomData<A>}
#[derive(std::fmt::Debug, std::clone::Clone)]
pub struct ScriptDatum<A>{pub script_type: A,
pub redeemer: lbf_plutus::plutus::v1::AssetClass}
There's 2 problems here.
- There's no actual phantom types in the original LB type def
- Even if there was, we have a problem when phantom values are not made pub in Rust
Metadata
Metadata
Assignees
Type
Projects
Status
Todo