cosmos-sdk/docs/uml/svg/transaction_flow.svg

48 lines
13 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="586px" preserveAspectRatio="none" style="width:1089px;height:586px;" version="1.1" viewBox="0 0 1089 586" width="1089px" zoomAndPan="magnify"><defs><filter height="300%" id="f1fk3fcjhssuz0" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f1fk3fcjhssuz0)" height="46.2656" style="stroke:#000000;stroke-width:2.0;" width="397" x="392" y="250.9609"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="23" x2="23" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="194.5" x2="194.5" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="360" x2="360" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="438" x2="438" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="591.5" x2="591.5" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="849" x2="849" y1="88.2969" y2="502.0234"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="986" x2="986" y1="88.2969" y2="502.0234"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="5" y="84.9951">User</text><ellipse cx="23.5" cy="15" fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M23.5,23 L23.5,50 M10.5,31 L36.5,31 M23.5,50 L10.5,65 M23.5,50 L36.5,65 " fill="none" filter="url(#f1fk3fcjhssuz0)" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="5" y="514.0186">User</text><ellipse cx="23.5" cy="527.3203" fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M23.5,535.3203 L23.5,562.3203 M10.5,543.3203 L36.5,543.3203 M23.5,562.3203 L10.5,577.3203 M23.5,562.3203 L36.5,577.3203 " fill="none" filter="url(#f1fk3fcjhssuz0)" style="stroke:#A80036;stroke-width:2.0;"/><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="78" x="153.5" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64" x="160.5" y="72.9951">baseApp</text><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="78" x="153.5" y="501.0234"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64" x="160.5" y="521.0186">baseApp</text><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="59" x="329" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="336" y="72.9951">router</text><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="59" x="329" y="501.0234"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45" x="336" y="521.0186">router</text><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="68" x="402" y="53"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="409" y="72.9951">handler</text><rect fill="#FEFECE" filter="url(#f1fk3fcjhssuz0)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" wid
@startuml
'https://plantuml.com/sequence-diagram
actor User
User -> baseApp : Transaction Type<Tx>
baseApp -> router : Route(ctx, msgRoute)
router - -> baseApp : handler
baseApp -> handler: Msg<Tx>(Context, Msg(...))
handler -> msgServer : <Tx>(Context, Msg)
alt addresses invalid, denominations wrong, etc.
msgServer - -> handler : error
end
msgServer -> keeper : perform action, update context
keeper - -> msgServer : results, error code
msgServer -> Context.EventManager : Emit relevant events
msgServer -> msgServer : maybe wrap results in more structure
msgServer - -> handler : result, error code
baseApp <- - handler : results, error code
@enduml
@startuml
actor User
User -> baseApp : Transaction Type<Tx>
baseApp -> router : Route(ctx, msgRoute)
router - -> baseApp : handler
baseApp -> handler: Msg<Tx>(Context, Msg(...))
handler -> msgServer : <Tx>(Context, Msg)
alt addresses invalid, denominations wrong, etc.
msgServer - -> handler : error
end
msgServer -> keeper : perform action, update context
keeper - -> msgServer : results, error code
msgServer -> Context.EventManager : Emit relevant events
msgServer -> msgServer : maybe wrap results in more structure
msgServer - -> handler : result, error code
baseApp <- - handler : results, error code
@enduml
PlantUML version 1.2021.5beta3(Unknown compile time)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>