digraph GovernanceAuthorityToken { rankdir = LR; // Inputs: ////////////////////////////////////////////////////////////////////////////// // governance in governance_datum [ shape = record , label = "{{ GovernanceState }}" ]; governance_addr [ shape = record , label = "{{ Script | Governance }}" , style = "bold" ]; ////////////////////////////////////////////////////////////////////////////// // proposal in proposal_datum [ shape = record , label = "{{ ProposalState }}" ]; proposal_addr -> proposal_redeemer [style = "dashed", dir="none"]; proposal_addr [ shape = record , label = "{{ Script | Proposal }}" , style = "bold" ]; governance_datum -> governance_addr [style = "dashed"]; governance_redeemer [ shape = record , label = "{{ GovernanceAction | MintAuthorityTokens }}" ]; governance_addr -> governance_redeemer [style = "dashed", dir="none"]; proposal_datum -> proposal_addr [style = "dashed"]; ////////////////////////////////////////////////////////////////////////////// // user wallet in user_wallet_min_ada_in [ shape = ellipse , label = min utxo> ]; user_wallet_in [ shape = box , label = "User Inputs" , style = "bold" , peripheries = 2 ]; user_wallet_min_ada_in -> user_wallet_in [ style = "dashed" ]; tx1 [ shape = diamond , label = "Tx1" , style = "bold" ]; user_wallet_in -> tx1; governance_addr -> tx1; proposal_addr -> tx1; ////////////////////////////////////////////////////////////////////////////// // governance out governance_datum_out [ shape = record , label = "{{ GovernanceState }}" ]; governance_addr_out [ shape = record , label = "{{ Script | Governance }}" , style = "bold" ]; governance_datum_out -> governance_addr_out [ style = "dashed" ]; ////////////////////////////////////////////////////////////////////////////// // proposal out proposal_datum_out -> proposal_addr_out [ style = "dashed" ]; proposal_redeemer [ shape = record , label = "{{ ProposalAction | FinishVoting }}" ]; proposal_datum_out [ shape = record , label = "{{ ProposalState }}" ]; proposal_addr_out [ shape = record , label = "{{ Script | Proposal }}" , style = "bold" ]; ////////////////////////////////////////////////////////////////////////////// // effect out effect_governance_token_out [ shape = ellipse , label = ]; effect_addr_out [ shape = record , label = "{{ Script | Effect }}" , style = "bold" ]; effect_governance_token_out -> effect_addr_out [ style = "dashed" ]; effect_min_ada_out -> effect_addr_out [ style = "dashed" ]; effect_min_ada_out [ shape = ellipse , label = min utxo> ]; tx1 -> governance_addr_out; tx1 -> proposal_addr_out; tx1 -> effect_addr_out; ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // effect in effect_addr_out2 [ shape = record , label = "{{ Script | Effect }}" , style = "bold" ]; ////////////////////////////////////////////////////////////////////////////// // market in market_addr_in [ shape = record , label = "{{ Script | Market }}" , style = "bold" ]; market_datum_in [ shape = record , label = "{{ MarketState | params: A }}" ]; market_datum_in -> market_addr_in [ style = "dashed" ]; ////////////////////////////////////////////////////////////////////////////// // market out market_addr_out [ shape = record , label = "{{ Script | Market }}" , style = "bold" ]; market_datum_out [ shape = record , label = "{{ MarketState | params: f(A) }}" ]; market_datum_out -> market_addr_out [ style = "dashed" ]; tx2 [ shape = diamond , label = "Tx2" , style = "bold" ]; user_wallet_min_ada_out [ shape = ellipse , label = min utxo> ]; user_wallet_out [ shape = box , label = "User Outputs" , style = "bold" , peripheries = 2 ]; user_wallet_min_ada_out -> user_wallet_out [ style = "dashed" ]; effect_addr_out -> tx2; market_addr_in -> tx2; tx2 -> user_wallet_out; tx2 -> effect_addr_out2; tx2 -> market_addr_out; }