@@ -4,38 +4,73 @@ class QueryClient {
4
4
final String url;
5
5
late final Provider ? provider;
6
6
late final polkadot.Dev api;
7
- late final QueryContracts contracts;
8
- late final balance.QueryBalances balances;
9
- late final QueryFarms farms;
10
- late final QueryNodes nodes;
11
- late final QueryPricingPolicies policies;
12
- late final QueryTwins twins;
13
- late final QueryBridge bridge;
14
- late final Dao .QueryDao dao;
15
- late final QueryTFTPrice price;
16
-
17
- QueryClient (this .url) {
18
- provider = Provider .fromUri (Uri .parse (url));
19
- api = polkadot.Dev (provider! );
20
- contracts = QueryContracts (this );
21
- balances = balance.QueryBalances (this );
22
- farms = QueryFarms (this );
23
- nodes = QueryNodes (this );
24
- policies = QueryPricingPolicies (this );
25
- twins = QueryTwins (this );
26
- bridge = QueryBridge (this );
27
- price = QueryTFTPrice (this );
28
- dao = Dao .QueryDao (this );
7
+ QueryTwins ? _twins;
8
+ QueryContracts ? _contracts;
9
+ balance.QueryBalances ? _balances;
10
+ QueryFarms ? _farms;
11
+ QueryNodes ? _nodes;
12
+ QueryPricingPolicies ? _policies;
13
+ QueryBridge ? _bridge;
14
+ QueryTFTPrice ? _price;
15
+ Dao .QueryDao ? _dao;
16
+
17
+ QueryClient (this .url) {}
18
+
19
+ QueryTwins get twins {
20
+ if (_twins == null ) _twins = QueryTwins (this );
21
+ return _twins! ;
22
+ }
23
+
24
+ QueryContracts get contracts {
25
+ if (_twins == null ) _contracts = QueryContracts (this );
26
+ return _contracts! ;
27
+ }
28
+
29
+ balance.QueryBalances get balances {
30
+ if (_balances == null ) _balances = balance.QueryBalances (this );
31
+ return _balances! ;
32
+ }
33
+
34
+ QueryFarms get farms {
35
+ if (_farms == null ) _farms = QueryFarms (this );
36
+ return _farms! ;
37
+ }
38
+
39
+ QueryNodes get nodes {
40
+ if (_nodes == null ) _nodes = QueryNodes (this );
41
+ return _nodes! ;
42
+ }
43
+
44
+ QueryPricingPolicies get policies {
45
+ if (_policies == null ) _policies = QueryPricingPolicies (this );
46
+ return _policies! ;
47
+ }
48
+
49
+ QueryBridge get bridge {
50
+ if (_bridge == null ) _bridge = QueryBridge (this );
51
+ return _bridge! ;
29
52
}
30
53
31
- void checkInputs () {
54
+ QueryTFTPrice get price {
55
+ if (_price == null ) _price = QueryTFTPrice (this );
56
+ return _price! ;
57
+ }
58
+
59
+ Dao .QueryDao get dao {
60
+ if (_dao == null ) _dao = Dao .QueryDao (this );
61
+ return _dao! ;
62
+ }
63
+
64
+ void _checkInputs () {
32
65
if (url.isEmpty) {
33
66
throw FormatException ("URL should be provided" );
34
67
}
35
68
}
36
69
37
70
Future <void > connect () async {
38
- checkInputs ();
71
+ _checkInputs ();
72
+ provider = Provider .fromUri (Uri .parse (url));
73
+ api = polkadot.Dev (provider! );
39
74
}
40
75
41
76
Future <void > disconnect () async {
@@ -47,35 +82,62 @@ class Client extends QueryClient {
47
82
final String mnemonic;
48
83
late String address;
49
84
final String keypairType;
50
- late Signer .Signer signer;
51
85
KeyPair ? keypair;
52
- late final balance.Balances clientBalances;
53
- late final Contracts clientContracts;
54
- late final Farms clientFarms;
55
- late final Dao .Dao clientDao;
56
- late final Twins clientTwins;
57
- late final KVStore kvStrore;
58
- late final Nodes clientNodes;
86
+ KVStore ? _kvStore;
59
87
final SUPPORTED_KEYPAIR_TYPES = ["sr25519" , "ed25519" ];
60
88
61
- Client (String url, this .mnemonic, this .keypairType) : super (url) {
62
- if (provider == null ) {
63
- provider = Provider .fromUri (Uri .parse (url));
64
- api = polkadot.Dev (provider! );
65
- }
66
- clientBalances = balance.Balances (this );
67
- clientContracts = Contracts (this );
68
- clientFarms = Farms (this );
69
- clientDao = Dao .Dao (this );
70
- clientTwins = Twins (this );
71
- clientNodes = Nodes (this );
72
- kvStrore = KVStore (this );
73
- signer = Signer .Signer ();
89
+ Client (String url, this .mnemonic, this .keypairType) : super (url) {}
90
+
91
+ @override
92
+ Twins get twins {
93
+ if (_twins == null ) _twins = Twins (this );
94
+ return _twins as Twins ;
95
+ }
96
+
97
+ @override
98
+ Contracts get contracts {
99
+ if (_contracts == null ) _contracts = Contracts (this );
100
+ return _contracts as Contracts ;
101
+ }
102
+
103
+ @override
104
+ balance.Balances get balances {
105
+ if (_balances == null ) _balances = balance.Balances (this );
106
+ return _balances as balance.Balances ;
107
+ }
108
+
109
+ @override
110
+ Farms get farms {
111
+ if (_farms == null ) _farms = Farms (this );
112
+ return _farms as Farms ;
113
+ }
114
+
115
+ @override
116
+ Nodes get nodes {
117
+ if (_nodes == null ) _nodes = Nodes (this );
118
+ return _nodes as Nodes ;
119
+ }
120
+
121
+ @override
122
+ Bridge get bridge {
123
+ if (_bridge == null ) _bridge = Bridge (this );
124
+ return _bridge as Bridge ;
125
+ }
126
+
127
+ @override
128
+ Dao .Dao get dao {
129
+ if (_dao == null ) _dao = Dao .Dao (this );
130
+ return _dao as Dao .Dao ;
131
+ }
132
+
133
+ KVStore get kvStore {
134
+ if (_kvStore == null ) _kvStore = KVStore (this );
135
+ return _kvStore as KVStore ;
74
136
}
75
137
76
138
@override
77
- void checkInputs () {
78
- super .checkInputs ();
139
+ void _checkInputs () {
140
+ super ._checkInputs ();
79
141
if (mnemonic.isEmpty) {
80
142
throw FormatException ("Mnemonic or secret should be provided" );
81
143
} else if (mnemonic != "//Allice" && ! validateMnemonic (mnemonic)) {
@@ -98,7 +160,8 @@ class Client extends QueryClient {
98
160
@override
99
161
Future <void > connect () async {
100
162
await super .connect ();
101
- checkInputs ();
163
+ _checkInputs ();
164
+ final Signer .Signer signer = Signer .Signer ();
102
165
if (keypairType == "sr25519" ) {
103
166
keypair = await signer.fromMnemonic (mnemonic, Signer .KPType .sr25519);
104
167
address = keypair! .address;
0 commit comments