-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathflutterchain_arch.drawio
117 lines (117 loc) · 13.3 KB
/
flutterchain_arch.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<mxfile host="app.diagrams.net" modified="2023-05-29T08:04:59.800Z" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0" etag="2paUS5RpA7OrK_HaENmQ" version="21.3.3" type="device">
<diagram name="Page-1" id="xYnI6xa1wOAg2UJ0YVqq">
<mxGraphModel dx="2252" dy="3460" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="vHMya00ToIqsoJ4eIDJd-1" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="60" y="210" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-3" value="<h1>FlutterChainLibrary<br></h1><p>FlutterChainLibrary is a class that provides top-level functions to manage your cryptocurrency assets. This class also includes a wallet storage feature that allows you to create, read, update, and delete wallets.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="80" y="220" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-4" target="vHMya00ToIqsoJ4eIDJd-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-4" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="20" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-5" value="<h1>FlutterChainService<br></h1><p>FlutterChainService is a class that handles all cryptocurrency operations, including transferring native tokens, calling smart-contract functions, and more. This class contains all blockchain-related services, including cryptography functions and RPC calls to the blockchain.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="620" y="30" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" target="vHMya00ToIqsoJ4eIDJd-1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="620" y="565" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-16" target="vHMya00ToIqsoJ4eIDJd-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-16" target="vHMya00ToIqsoJ4eIDJd-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-16" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1300" y="-45" width="1570" height="470" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-17" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1890" y="-580" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-18" value="<h1>BlockchainService<br></h1><p>BlockchainService is an abstract class that needs to be implemented for each cryptocurrency that you want to add. It contains all the necessary functions for operating with the blockchain. Any class that implements this class must also inject a JS VM engine and a network client into itself.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1910" y="-570" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-19" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1410" y="30" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-20" value="<h1>NearBlockChainService<br></h1><p>NearBlockChainService is an implementation of the BlockchainService class, designed to make it easy to operate with the Near Blockchain. This class provides convenient methods for interacting with the Near Blockchain.</p><p></p><p> </p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1430" y="40" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-21" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1880" y="20" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-22" value="<h1>ETC.. <br></h1><p>...<br></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2010" y="160" width="90" height="50" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-24" value="<b><font style="font-size: 23px;">Implements</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1750" y="-170" width="320" height="60" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-27" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1240" y="1330" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-28" value="<h1>Repositories<br></h1><p>Repositories are used for storing data in a library. They provide a way to manage data and perform CRUD (create, read, update, delete) operations on it.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1260" y="1340" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.466;entryY=0.005;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-31" target="vHMya00ToIqsoJ4eIDJd-27" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-31" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="620" y="480" width="1570" height="470" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-32" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="680" y="570" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-33" value="<h1>WalletRepository<br></h1><p>provide CRUD operation for wallets<br></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="700" y="580" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-35" value="<b><font style="font-size: 23px;">Implements</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1050" y="1100" width="320" height="60" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-36" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1140" y="570" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-37" value="<h1>ETC.. <br></h1><p>...<br></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1270" y="710" width="90" height="50" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-42" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="2260" y="-1240" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-43" target="vHMya00ToIqsoJ4eIDJd-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-43" value="<h1>JavaScript VM engine<br></h1><p>All BlockchainServices will inject a JavaScript VM engine as a dependency. This is because this library uses wallet-core as the core of all cryptographic operations, and it's compiled in C++ to WebAssembly (WASM), which the library executes in a webview (on iOS and Android) or natively on the web.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2280" y="-1230" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-44" value="" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="2880" y="-780" width="350" height="340" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="vHMya00ToIqsoJ4eIDJd-45" target="vHMya00ToIqsoJ4eIDJd-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-45" value="<h1>Blockchain network client<br></h1><p>All Blockchain services will have their own network client for making calls on the blockchain. For example, for Near, we have NearRpcClient, which makes calls to the Near Blockchain.</p><p></p>" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2900" y="-770" width="310" height="330" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-48" value="<font size="1"><b style="font-size: 25px;">Injects</b></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1940" y="-880" width="305" height="120" as="geometry" />
</mxCell>
<mxCell id="vHMya00ToIqsoJ4eIDJd-49" value="<font size="1"><b style="font-size: 25px;">Injects</b></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2420" y="-720" width="305" height="120" as="geometry" />
</mxCell>
<mxCell id="kyk3WRV1pMxz9PT8Guyt-1" value="<font size="1"><b style="font-size: 25px;">Injects</b></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="970" y="10" width="305" height="120" as="geometry" />
</mxCell>
<mxCell id="kyk3WRV1pMxz9PT8Guyt-2" value="<font size="1"><b style="font-size: 25px;">Injects</b></font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="330" y="590" width="305" height="120" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>