coreum-js 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +18 -0
  2. package/dist/main/client/index.d.ts +48 -0
  3. package/dist/main/client/index.js +242 -0
  4. package/dist/main/coreum/asset/ft/v1/event.d.ts +148 -0
  5. package/dist/main/coreum/asset/ft/v1/event.js +377 -0
  6. package/dist/main/coreum/asset/ft/v1/genesis.d.ts +415 -0
  7. package/dist/main/coreum/asset/ft/v1/genesis.js +197 -0
  8. package/dist/main/coreum/asset/ft/v1/params.d.ts +54 -0
  9. package/dist/main/coreum/asset/ft/v1/params.js +69 -0
  10. package/dist/main/coreum/asset/ft/v1/query.d.ts +1863 -0
  11. package/dist/main/coreum/asset/ft/v1/query.js +892 -0
  12. package/dist/main/coreum/asset/ft/v1/token.d.ts +145 -0
  13. package/dist/main/coreum/asset/ft/v1/token.js +361 -0
  14. package/dist/main/coreum/asset/ft/v1/tx.d.ts +416 -0
  15. package/dist/main/coreum/asset/ft/v1/tx.js +760 -0
  16. package/dist/main/coreum/asset/index.d.ts +3 -0
  17. package/dist/main/coreum/asset/index.js +26 -0
  18. package/dist/main/coreum/asset/nft/v1/event.d.ts +191 -0
  19. package/dist/main/coreum/asset/nft/v1/event.js +490 -0
  20. package/dist/main/coreum/asset/nft/v1/genesis.d.ts +321 -0
  21. package/dist/main/coreum/asset/nft/v1/genesis.js +362 -0
  22. package/dist/main/coreum/asset/nft/v1/nft.d.ts +153 -0
  23. package/dist/main/coreum/asset/nft/v1/nft.js +361 -0
  24. package/dist/main/coreum/asset/nft/v1/params.d.ts +54 -0
  25. package/dist/main/coreum/asset/nft/v1/params.js +69 -0
  26. package/dist/main/coreum/asset/nft/v1/query.d.ts +785 -0
  27. package/dist/main/coreum/asset/nft/v1/query.js +627 -0
  28. package/dist/main/coreum/asset/nft/v1/tx.d.ts +357 -0
  29. package/dist/main/coreum/asset/nft/v1/tx.js +806 -0
  30. package/dist/main/coreum/asset/nft/v1/types.d.ts +33 -0
  31. package/dist/main/coreum/asset/nft/v1/types.js +108 -0
  32. package/dist/main/coreum/customparams/v1/genesis.d.ts +48 -0
  33. package/dist/main/coreum/customparams/v1/genesis.js +70 -0
  34. package/dist/main/coreum/customparams/v1/params.d.ts +35 -0
  35. package/dist/main/coreum/customparams/v1/params.js +67 -0
  36. package/dist/main/coreum/customparams/v1/query.d.ts +74 -0
  37. package/dist/main/coreum/customparams/v1/query.js +119 -0
  38. package/dist/main/coreum/extensions/ft.d.ts +13 -0
  39. package/dist/main/coreum/extensions/ft.js +36 -0
  40. package/dist/main/coreum/extensions/nft.d.ts +11 -0
  41. package/dist/main/coreum/extensions/nft.js +30 -0
  42. package/dist/main/coreum/extensions/nftbeta.d.ts +13 -0
  43. package/dist/main/coreum/extensions/nftbeta.js +36 -0
  44. package/dist/main/coreum/feemodel/v1/genesis.d.ts +251 -0
  45. package/dist/main/coreum/feemodel/v1/genesis.js +87 -0
  46. package/dist/main/coreum/feemodel/v1/params.d.ts +384 -0
  47. package/dist/main/coreum/feemodel/v1/params.js +201 -0
  48. package/dist/main/coreum/feemodel/v1/query.d.ts +306 -0
  49. package/dist/main/coreum/feemodel/v1/query.js +214 -0
  50. package/dist/main/coreum/google/api/annotations.d.ts +1 -0
  51. package/dist/main/coreum/google/api/annotations.js +6 -0
  52. package/dist/main/coreum/google/api/http.d.ts +2953 -0
  53. package/dist/main/coreum/google/api/http.js +329 -0
  54. package/dist/main/coreum/google/protobuf/any.d.ts +148 -0
  55. package/dist/main/coreum/google/protobuf/any.js +122 -0
  56. package/dist/main/coreum/index.d.ts +291 -0
  57. package/dist/main/coreum/index.js +116 -0
  58. package/dist/main/coreum/nft/index.d.ts +2 -0
  59. package/dist/main/coreum/nft/index.js +9 -0
  60. package/dist/main/coreum/nft/v1beta1/event.d.ts +109 -0
  61. package/dist/main/coreum/nft/v1beta1/event.js +255 -0
  62. package/dist/main/coreum/nft/v1beta1/genesis.d.ts +460 -0
  63. package/dist/main/coreum/nft/v1beta1/genesis.js +160 -0
  64. package/dist/main/coreum/nft/v1beta1/nft.d.ts +153 -0
  65. package/dist/main/coreum/nft/v1beta1/nft.js +258 -0
  66. package/dist/main/coreum/nft/v1beta1/query.d.ts +1733 -0
  67. package/dist/main/coreum/nft/v1beta1/query.js +872 -0
  68. package/dist/main/coreum/nft/v1beta1/tx.d.ts +80 -0
  69. package/dist/main/coreum/nft/v1beta1/tx.js +155 -0
  70. package/dist/main/cosmos/base/query/v1beta1/pagination.d.ts +470 -0
  71. package/dist/main/cosmos/base/query/v1beta1/pagination.js +224 -0
  72. package/dist/main/cosmos/base/v1beta1/coin.d.ts +114 -0
  73. package/dist/main/cosmos/base/v1beta1/coin.js +242 -0
  74. package/dist/main/cosmos/msg/v1/msg.d.ts +1 -0
  75. package/dist/main/cosmos/msg/v1/msg.js +6 -0
  76. package/dist/main/index.d.ts +5 -0
  77. package/dist/main/index.js +22 -0
  78. package/dist/main/services/cosmostation.d.ts +4 -0
  79. package/dist/main/services/cosmostation.js +47 -0
  80. package/dist/main/services/index.d.ts +2 -0
  81. package/dist/main/services/index.js +19 -0
  82. package/dist/main/services/keplr.d.ts +2 -0
  83. package/dist/main/services/keplr.js +119 -0
  84. package/dist/main/signers/dcent.d.ts +1 -0
  85. package/dist/main/signers/dcent.js +41 -0
  86. package/dist/main/signers/index.d.ts +3 -0
  87. package/dist/main/signers/index.js +20 -0
  88. package/dist/main/signers/offline.d.ts +4 -0
  89. package/dist/main/signers/offline.js +11 -0
  90. package/dist/main/signers/signer.d.ts +6 -0
  91. package/dist/main/signers/signer.js +17 -0
  92. package/dist/main/types/core.d.ts +24 -0
  93. package/dist/main/types/core.js +18 -0
  94. package/dist/main/types/coreum.d.ts +74 -0
  95. package/dist/main/types/coreum.js +80 -0
  96. package/dist/main/types/index.d.ts +3 -0
  97. package/dist/main/types/index.js +20 -0
  98. package/dist/main/types/signing.d.ts +20 -0
  99. package/dist/main/types/signing.js +17 -0
  100. package/dist/main/utils/calculations.d.ts +6 -0
  101. package/dist/main/utils/calculations.js +41 -0
  102. package/dist/main/utils/event.d.ts +5 -0
  103. package/dist/main/utils/event.js +22 -0
  104. package/dist/main/utils/index.d.ts +3 -0
  105. package/dist/main/utils/index.js +20 -0
  106. package/dist/main/utils/nft.d.ts +2 -0
  107. package/dist/main/utils/nft.js +9 -0
  108. package/dist/main/utils/wallet.d.ts +5 -0
  109. package/dist/main/utils/wallet.js +37 -0
  110. package/dist/module/client/index.d.ts +48 -0
  111. package/dist/module/client/index.js +241 -0
  112. package/dist/module/coreum/asset/ft/v1/event.d.ts +148 -0
  113. package/dist/module/coreum/asset/ft/v1/event.js +368 -0
  114. package/dist/module/coreum/asset/ft/v1/genesis.d.ts +415 -0
  115. package/dist/module/coreum/asset/ft/v1/genesis.js +189 -0
  116. package/dist/module/coreum/asset/ft/v1/params.d.ts +54 -0
  117. package/dist/module/coreum/asset/ft/v1/params.js +63 -0
  118. package/dist/module/coreum/asset/ft/v1/query.d.ts +1863 -0
  119. package/dist/module/coreum/asset/ft/v1/query.js +878 -0
  120. package/dist/module/coreum/asset/ft/v1/token.d.ts +145 -0
  121. package/dist/module/coreum/asset/ft/v1/token.js +351 -0
  122. package/dist/module/coreum/asset/ft/v1/tx.d.ts +416 -0
  123. package/dist/module/coreum/asset/ft/v1/tx.js +747 -0
  124. package/dist/module/coreum/asset/index.d.ts +3 -0
  125. package/dist/module/coreum/asset/index.js +23 -0
  126. package/dist/module/coreum/asset/nft/v1/event.d.ts +191 -0
  127. package/dist/module/coreum/asset/nft/v1/event.js +479 -0
  128. package/dist/module/coreum/asset/nft/v1/genesis.d.ts +321 -0
  129. package/dist/module/coreum/asset/nft/v1/genesis.js +352 -0
  130. package/dist/module/coreum/asset/nft/v1/nft.d.ts +153 -0
  131. package/dist/module/coreum/asset/nft/v1/nft.js +351 -0
  132. package/dist/module/coreum/asset/nft/v1/params.d.ts +54 -0
  133. package/dist/module/coreum/asset/nft/v1/params.js +63 -0
  134. package/dist/module/coreum/asset/nft/v1/query.d.ts +785 -0
  135. package/dist/module/coreum/asset/nft/v1/query.js +615 -0
  136. package/dist/module/coreum/asset/nft/v1/tx.d.ts +357 -0
  137. package/dist/module/coreum/asset/nft/v1/tx.js +794 -0
  138. package/dist/module/coreum/asset/nft/v1/types.d.ts +33 -0
  139. package/dist/module/coreum/asset/nft/v1/types.js +101 -0
  140. package/dist/module/coreum/customparams/v1/genesis.d.ts +48 -0
  141. package/dist/module/coreum/customparams/v1/genesis.js +64 -0
  142. package/dist/module/coreum/customparams/v1/params.d.ts +35 -0
  143. package/dist/module/coreum/customparams/v1/params.js +60 -0
  144. package/dist/module/coreum/customparams/v1/query.d.ts +74 -0
  145. package/dist/module/coreum/customparams/v1/query.js +114 -0
  146. package/dist/module/coreum/extensions/ft.d.ts +13 -0
  147. package/dist/module/coreum/extensions/ft.js +32 -0
  148. package/dist/module/coreum/extensions/nft.d.ts +11 -0
  149. package/dist/module/coreum/extensions/nft.js +26 -0
  150. package/dist/module/coreum/extensions/nftbeta.d.ts +13 -0
  151. package/dist/module/coreum/extensions/nftbeta.js +32 -0
  152. package/dist/module/coreum/feemodel/v1/genesis.d.ts +251 -0
  153. package/dist/module/coreum/feemodel/v1/genesis.js +81 -0
  154. package/dist/module/coreum/feemodel/v1/params.d.ts +384 -0
  155. package/dist/module/coreum/feemodel/v1/params.js +194 -0
  156. package/dist/module/coreum/feemodel/v1/query.d.ts +306 -0
  157. package/dist/module/coreum/feemodel/v1/query.js +209 -0
  158. package/dist/module/coreum/google/api/annotations.d.ts +1 -0
  159. package/dist/module/coreum/google/api/annotations.js +3 -0
  160. package/dist/module/coreum/google/api/http.d.ts +2953 -0
  161. package/dist/module/coreum/google/api/http.js +320 -0
  162. package/dist/module/coreum/google/protobuf/any.d.ts +148 -0
  163. package/dist/module/coreum/google/protobuf/any.js +115 -0
  164. package/dist/module/coreum/index.d.ts +291 -0
  165. package/dist/module/coreum/index.js +113 -0
  166. package/dist/module/coreum/nft/index.d.ts +2 -0
  167. package/dist/module/coreum/nft/index.js +6 -0
  168. package/dist/module/coreum/nft/v1beta1/event.d.ts +109 -0
  169. package/dist/module/coreum/nft/v1beta1/event.js +246 -0
  170. package/dist/module/coreum/nft/v1beta1/genesis.d.ts +460 -0
  171. package/dist/module/coreum/nft/v1beta1/genesis.js +152 -0
  172. package/dist/module/coreum/nft/v1beta1/nft.d.ts +153 -0
  173. package/dist/module/coreum/nft/v1beta1/nft.js +250 -0
  174. package/dist/module/coreum/nft/v1beta1/query.d.ts +1733 -0
  175. package/dist/module/coreum/nft/v1beta1/query.js +858 -0
  176. package/dist/module/coreum/nft/v1beta1/tx.d.ts +80 -0
  177. package/dist/module/coreum/nft/v1beta1/tx.js +149 -0
  178. package/dist/module/cosmos/base/query/v1beta1/pagination.d.ts +470 -0
  179. package/dist/module/cosmos/base/query/v1beta1/pagination.js +216 -0
  180. package/dist/module/cosmos/base/v1beta1/coin.d.ts +114 -0
  181. package/dist/module/cosmos/base/v1beta1/coin.js +232 -0
  182. package/dist/module/cosmos/msg/v1/msg.d.ts +1 -0
  183. package/dist/module/cosmos/msg/v1/msg.js +3 -0
  184. package/dist/module/index.d.ts +5 -0
  185. package/dist/module/index.js +6 -0
  186. package/dist/module/services/cosmostation.d.ts +4 -0
  187. package/dist/module/services/cosmostation.js +42 -0
  188. package/dist/module/services/index.d.ts +2 -0
  189. package/dist/module/services/index.js +3 -0
  190. package/dist/module/services/keplr.d.ts +2 -0
  191. package/dist/module/services/keplr.js +115 -0
  192. package/dist/module/signers/dcent.d.ts +1 -0
  193. package/dist/module/signers/dcent.js +31 -0
  194. package/dist/module/signers/index.d.ts +3 -0
  195. package/dist/module/signers/index.js +4 -0
  196. package/dist/module/signers/offline.d.ts +4 -0
  197. package/dist/module/signers/offline.js +7 -0
  198. package/dist/module/signers/signer.d.ts +6 -0
  199. package/dist/module/signers/signer.js +11 -0
  200. package/dist/module/types/core.d.ts +24 -0
  201. package/dist/module/types/core.js +15 -0
  202. package/dist/module/types/coreum.d.ts +74 -0
  203. package/dist/module/types/coreum.js +77 -0
  204. package/dist/module/types/index.d.ts +3 -0
  205. package/dist/module/types/index.js +4 -0
  206. package/dist/module/types/signing.d.ts +20 -0
  207. package/dist/module/types/signing.js +14 -0
  208. package/dist/module/utils/calculations.d.ts +6 -0
  209. package/dist/module/utils/calculations.js +29 -0
  210. package/dist/module/utils/event.d.ts +5 -0
  211. package/dist/module/utils/event.js +18 -0
  212. package/dist/module/utils/index.d.ts +3 -0
  213. package/dist/module/utils/index.js +4 -0
  214. package/dist/module/utils/nft.d.ts +2 -0
  215. package/dist/module/utils/nft.js +5 -0
  216. package/dist/module/utils/wallet.d.ts +5 -0
  217. package/dist/module/utils/wallet.js +31 -0
  218. package/package.json +55 -0
@@ -0,0 +1,806 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MsgClientImpl = exports.EmptyResponse = exports.MsgRemoveFromWhitelist = exports.MsgAddToWhitelist = exports.MsgUnfreeze = exports.MsgFreeze = exports.MsgBurn = exports.MsgMint = exports.MsgIssueClass = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const long_1 = __importDefault(require("long"));
9
+ const minimal_1 = __importDefault(require("protobufjs/minimal"));
10
+ const any_1 = require("../../../google/protobuf/any");
11
+ const nft_1 = require("./nft");
12
+ exports.protobufPackage = "coreum.asset.nft.v1";
13
+ function createBaseMsgIssueClass() {
14
+ return {
15
+ issuer: "",
16
+ symbol: "",
17
+ name: "",
18
+ description: "",
19
+ uri: "",
20
+ uriHash: "",
21
+ data: undefined,
22
+ features: [],
23
+ royaltyRate: "",
24
+ };
25
+ }
26
+ exports.MsgIssueClass = {
27
+ encode(message, writer = minimal_1.default.Writer.create()) {
28
+ if (message.issuer !== "") {
29
+ writer.uint32(10).string(message.issuer);
30
+ }
31
+ if (message.symbol !== "") {
32
+ writer.uint32(18).string(message.symbol);
33
+ }
34
+ if (message.name !== "") {
35
+ writer.uint32(26).string(message.name);
36
+ }
37
+ if (message.description !== "") {
38
+ writer.uint32(34).string(message.description);
39
+ }
40
+ if (message.uri !== "") {
41
+ writer.uint32(42).string(message.uri);
42
+ }
43
+ if (message.uriHash !== "") {
44
+ writer.uint32(50).string(message.uriHash);
45
+ }
46
+ if (message.data !== undefined) {
47
+ any_1.Any.encode(message.data, writer.uint32(58).fork()).ldelim();
48
+ }
49
+ writer.uint32(66).fork();
50
+ for (const v of message.features) {
51
+ writer.int32(v);
52
+ }
53
+ writer.ldelim();
54
+ if (message.royaltyRate !== "") {
55
+ writer.uint32(74).string(message.royaltyRate);
56
+ }
57
+ return writer;
58
+ },
59
+ decode(input, length) {
60
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
61
+ let end = length === undefined ? reader.len : reader.pos + length;
62
+ const message = createBaseMsgIssueClass();
63
+ while (reader.pos < end) {
64
+ const tag = reader.uint32();
65
+ switch (tag >>> 3) {
66
+ case 1:
67
+ if (tag != 10) {
68
+ break;
69
+ }
70
+ message.issuer = reader.string();
71
+ continue;
72
+ case 2:
73
+ if (tag != 18) {
74
+ break;
75
+ }
76
+ message.symbol = reader.string();
77
+ continue;
78
+ case 3:
79
+ if (tag != 26) {
80
+ break;
81
+ }
82
+ message.name = reader.string();
83
+ continue;
84
+ case 4:
85
+ if (tag != 34) {
86
+ break;
87
+ }
88
+ message.description = reader.string();
89
+ continue;
90
+ case 5:
91
+ if (tag != 42) {
92
+ break;
93
+ }
94
+ message.uri = reader.string();
95
+ continue;
96
+ case 6:
97
+ if (tag != 50) {
98
+ break;
99
+ }
100
+ message.uriHash = reader.string();
101
+ continue;
102
+ case 7:
103
+ if (tag != 58) {
104
+ break;
105
+ }
106
+ message.data = any_1.Any.decode(reader, reader.uint32());
107
+ continue;
108
+ case 8:
109
+ if (tag == 64) {
110
+ message.features.push(reader.int32());
111
+ continue;
112
+ }
113
+ if (tag == 66) {
114
+ const end2 = reader.uint32() + reader.pos;
115
+ while (reader.pos < end2) {
116
+ message.features.push(reader.int32());
117
+ }
118
+ continue;
119
+ }
120
+ break;
121
+ case 9:
122
+ if (tag != 74) {
123
+ break;
124
+ }
125
+ message.royaltyRate = reader.string();
126
+ continue;
127
+ }
128
+ if ((tag & 7) == 4 || tag == 0) {
129
+ break;
130
+ }
131
+ reader.skipType(tag & 7);
132
+ }
133
+ return message;
134
+ },
135
+ fromJSON(object) {
136
+ return {
137
+ issuer: isSet(object.issuer) ? String(object.issuer) : "",
138
+ symbol: isSet(object.symbol) ? String(object.symbol) : "",
139
+ name: isSet(object.name) ? String(object.name) : "",
140
+ description: isSet(object.description) ? String(object.description) : "",
141
+ uri: isSet(object.uri) ? String(object.uri) : "",
142
+ uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
143
+ data: isSet(object.data) ? any_1.Any.fromJSON(object.data) : undefined,
144
+ features: Array.isArray(object === null || object === void 0 ? void 0 : object.features)
145
+ ? object.features.map((e) => (0, nft_1.classFeatureFromJSON)(e))
146
+ : [],
147
+ royaltyRate: isSet(object.royaltyRate) ? String(object.royaltyRate) : "",
148
+ };
149
+ },
150
+ toJSON(message) {
151
+ const obj = {};
152
+ message.issuer !== undefined && (obj.issuer = message.issuer);
153
+ message.symbol !== undefined && (obj.symbol = message.symbol);
154
+ message.name !== undefined && (obj.name = message.name);
155
+ message.description !== undefined &&
156
+ (obj.description = message.description);
157
+ message.uri !== undefined && (obj.uri = message.uri);
158
+ message.uriHash !== undefined && (obj.uriHash = message.uriHash);
159
+ message.data !== undefined &&
160
+ (obj.data = message.data ? any_1.Any.toJSON(message.data) : undefined);
161
+ if (message.features) {
162
+ obj.features = message.features.map((e) => (0, nft_1.classFeatureToJSON)(e));
163
+ }
164
+ else {
165
+ obj.features = [];
166
+ }
167
+ message.royaltyRate !== undefined &&
168
+ (obj.royaltyRate = message.royaltyRate);
169
+ return obj;
170
+ },
171
+ create(base) {
172
+ return exports.MsgIssueClass.fromPartial(base !== null && base !== void 0 ? base : {});
173
+ },
174
+ fromPartial(object) {
175
+ var _a, _b, _c, _d, _e, _f, _g, _h;
176
+ const message = createBaseMsgIssueClass();
177
+ message.issuer = (_a = object.issuer) !== null && _a !== void 0 ? _a : "";
178
+ message.symbol = (_b = object.symbol) !== null && _b !== void 0 ? _b : "";
179
+ message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
180
+ message.description = (_d = object.description) !== null && _d !== void 0 ? _d : "";
181
+ message.uri = (_e = object.uri) !== null && _e !== void 0 ? _e : "";
182
+ message.uriHash = (_f = object.uriHash) !== null && _f !== void 0 ? _f : "";
183
+ message.data =
184
+ object.data !== undefined && object.data !== null
185
+ ? any_1.Any.fromPartial(object.data)
186
+ : undefined;
187
+ message.features = ((_g = object.features) === null || _g === void 0 ? void 0 : _g.map((e) => e)) || [];
188
+ message.royaltyRate = (_h = object.royaltyRate) !== null && _h !== void 0 ? _h : "";
189
+ return message;
190
+ },
191
+ };
192
+ function createBaseMsgMint() {
193
+ return {
194
+ sender: "",
195
+ classId: "",
196
+ id: "",
197
+ uri: "",
198
+ uriHash: "",
199
+ data: undefined,
200
+ };
201
+ }
202
+ exports.MsgMint = {
203
+ encode(message, writer = minimal_1.default.Writer.create()) {
204
+ if (message.sender !== "") {
205
+ writer.uint32(10).string(message.sender);
206
+ }
207
+ if (message.classId !== "") {
208
+ writer.uint32(18).string(message.classId);
209
+ }
210
+ if (message.id !== "") {
211
+ writer.uint32(26).string(message.id);
212
+ }
213
+ if (message.uri !== "") {
214
+ writer.uint32(34).string(message.uri);
215
+ }
216
+ if (message.uriHash !== "") {
217
+ writer.uint32(42).string(message.uriHash);
218
+ }
219
+ if (message.data !== undefined) {
220
+ any_1.Any.encode(message.data, writer.uint32(50).fork()).ldelim();
221
+ }
222
+ return writer;
223
+ },
224
+ decode(input, length) {
225
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
226
+ let end = length === undefined ? reader.len : reader.pos + length;
227
+ const message = createBaseMsgMint();
228
+ while (reader.pos < end) {
229
+ const tag = reader.uint32();
230
+ switch (tag >>> 3) {
231
+ case 1:
232
+ if (tag != 10) {
233
+ break;
234
+ }
235
+ message.sender = reader.string();
236
+ continue;
237
+ case 2:
238
+ if (tag != 18) {
239
+ break;
240
+ }
241
+ message.classId = reader.string();
242
+ continue;
243
+ case 3:
244
+ if (tag != 26) {
245
+ break;
246
+ }
247
+ message.id = reader.string();
248
+ continue;
249
+ case 4:
250
+ if (tag != 34) {
251
+ break;
252
+ }
253
+ message.uri = reader.string();
254
+ continue;
255
+ case 5:
256
+ if (tag != 42) {
257
+ break;
258
+ }
259
+ message.uriHash = reader.string();
260
+ continue;
261
+ case 6:
262
+ if (tag != 50) {
263
+ break;
264
+ }
265
+ message.data = any_1.Any.decode(reader, reader.uint32());
266
+ continue;
267
+ }
268
+ if ((tag & 7) == 4 || tag == 0) {
269
+ break;
270
+ }
271
+ reader.skipType(tag & 7);
272
+ }
273
+ return message;
274
+ },
275
+ fromJSON(object) {
276
+ return {
277
+ sender: isSet(object.sender) ? String(object.sender) : "",
278
+ classId: isSet(object.classId) ? String(object.classId) : "",
279
+ id: isSet(object.id) ? String(object.id) : "",
280
+ uri: isSet(object.uri) ? String(object.uri) : "",
281
+ uriHash: isSet(object.uriHash) ? String(object.uriHash) : "",
282
+ data: isSet(object.data) ? any_1.Any.fromJSON(object.data) : undefined,
283
+ };
284
+ },
285
+ toJSON(message) {
286
+ const obj = {};
287
+ message.sender !== undefined && (obj.sender = message.sender);
288
+ message.classId !== undefined && (obj.classId = message.classId);
289
+ message.id !== undefined && (obj.id = message.id);
290
+ message.uri !== undefined && (obj.uri = message.uri);
291
+ message.uriHash !== undefined && (obj.uriHash = message.uriHash);
292
+ message.data !== undefined &&
293
+ (obj.data = message.data ? any_1.Any.toJSON(message.data) : undefined);
294
+ return obj;
295
+ },
296
+ create(base) {
297
+ return exports.MsgMint.fromPartial(base !== null && base !== void 0 ? base : {});
298
+ },
299
+ fromPartial(object) {
300
+ var _a, _b, _c, _d, _e;
301
+ const message = createBaseMsgMint();
302
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
303
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
304
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
305
+ message.uri = (_d = object.uri) !== null && _d !== void 0 ? _d : "";
306
+ message.uriHash = (_e = object.uriHash) !== null && _e !== void 0 ? _e : "";
307
+ message.data =
308
+ object.data !== undefined && object.data !== null
309
+ ? any_1.Any.fromPartial(object.data)
310
+ : undefined;
311
+ return message;
312
+ },
313
+ };
314
+ function createBaseMsgBurn() {
315
+ return { sender: "", classId: "", id: "" };
316
+ }
317
+ exports.MsgBurn = {
318
+ encode(message, writer = minimal_1.default.Writer.create()) {
319
+ if (message.sender !== "") {
320
+ writer.uint32(10).string(message.sender);
321
+ }
322
+ if (message.classId !== "") {
323
+ writer.uint32(18).string(message.classId);
324
+ }
325
+ if (message.id !== "") {
326
+ writer.uint32(26).string(message.id);
327
+ }
328
+ return writer;
329
+ },
330
+ decode(input, length) {
331
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
332
+ let end = length === undefined ? reader.len : reader.pos + length;
333
+ const message = createBaseMsgBurn();
334
+ while (reader.pos < end) {
335
+ const tag = reader.uint32();
336
+ switch (tag >>> 3) {
337
+ case 1:
338
+ if (tag != 10) {
339
+ break;
340
+ }
341
+ message.sender = reader.string();
342
+ continue;
343
+ case 2:
344
+ if (tag != 18) {
345
+ break;
346
+ }
347
+ message.classId = reader.string();
348
+ continue;
349
+ case 3:
350
+ if (tag != 26) {
351
+ break;
352
+ }
353
+ message.id = reader.string();
354
+ continue;
355
+ }
356
+ if ((tag & 7) == 4 || tag == 0) {
357
+ break;
358
+ }
359
+ reader.skipType(tag & 7);
360
+ }
361
+ return message;
362
+ },
363
+ fromJSON(object) {
364
+ return {
365
+ sender: isSet(object.sender) ? String(object.sender) : "",
366
+ classId: isSet(object.classId) ? String(object.classId) : "",
367
+ id: isSet(object.id) ? String(object.id) : "",
368
+ };
369
+ },
370
+ toJSON(message) {
371
+ const obj = {};
372
+ message.sender !== undefined && (obj.sender = message.sender);
373
+ message.classId !== undefined && (obj.classId = message.classId);
374
+ message.id !== undefined && (obj.id = message.id);
375
+ return obj;
376
+ },
377
+ create(base) {
378
+ return exports.MsgBurn.fromPartial(base !== null && base !== void 0 ? base : {});
379
+ },
380
+ fromPartial(object) {
381
+ var _a, _b, _c;
382
+ const message = createBaseMsgBurn();
383
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
384
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
385
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
386
+ return message;
387
+ },
388
+ };
389
+ function createBaseMsgFreeze() {
390
+ return { sender: "", classId: "", id: "" };
391
+ }
392
+ exports.MsgFreeze = {
393
+ encode(message, writer = minimal_1.default.Writer.create()) {
394
+ if (message.sender !== "") {
395
+ writer.uint32(10).string(message.sender);
396
+ }
397
+ if (message.classId !== "") {
398
+ writer.uint32(18).string(message.classId);
399
+ }
400
+ if (message.id !== "") {
401
+ writer.uint32(26).string(message.id);
402
+ }
403
+ return writer;
404
+ },
405
+ decode(input, length) {
406
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
407
+ let end = length === undefined ? reader.len : reader.pos + length;
408
+ const message = createBaseMsgFreeze();
409
+ while (reader.pos < end) {
410
+ const tag = reader.uint32();
411
+ switch (tag >>> 3) {
412
+ case 1:
413
+ if (tag != 10) {
414
+ break;
415
+ }
416
+ message.sender = reader.string();
417
+ continue;
418
+ case 2:
419
+ if (tag != 18) {
420
+ break;
421
+ }
422
+ message.classId = reader.string();
423
+ continue;
424
+ case 3:
425
+ if (tag != 26) {
426
+ break;
427
+ }
428
+ message.id = reader.string();
429
+ continue;
430
+ }
431
+ if ((tag & 7) == 4 || tag == 0) {
432
+ break;
433
+ }
434
+ reader.skipType(tag & 7);
435
+ }
436
+ return message;
437
+ },
438
+ fromJSON(object) {
439
+ return {
440
+ sender: isSet(object.sender) ? String(object.sender) : "",
441
+ classId: isSet(object.classId) ? String(object.classId) : "",
442
+ id: isSet(object.id) ? String(object.id) : "",
443
+ };
444
+ },
445
+ toJSON(message) {
446
+ const obj = {};
447
+ message.sender !== undefined && (obj.sender = message.sender);
448
+ message.classId !== undefined && (obj.classId = message.classId);
449
+ message.id !== undefined && (obj.id = message.id);
450
+ return obj;
451
+ },
452
+ create(base) {
453
+ return exports.MsgFreeze.fromPartial(base !== null && base !== void 0 ? base : {});
454
+ },
455
+ fromPartial(object) {
456
+ var _a, _b, _c;
457
+ const message = createBaseMsgFreeze();
458
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
459
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
460
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
461
+ return message;
462
+ },
463
+ };
464
+ function createBaseMsgUnfreeze() {
465
+ return { sender: "", classId: "", id: "" };
466
+ }
467
+ exports.MsgUnfreeze = {
468
+ encode(message, writer = minimal_1.default.Writer.create()) {
469
+ if (message.sender !== "") {
470
+ writer.uint32(10).string(message.sender);
471
+ }
472
+ if (message.classId !== "") {
473
+ writer.uint32(18).string(message.classId);
474
+ }
475
+ if (message.id !== "") {
476
+ writer.uint32(26).string(message.id);
477
+ }
478
+ return writer;
479
+ },
480
+ decode(input, length) {
481
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
482
+ let end = length === undefined ? reader.len : reader.pos + length;
483
+ const message = createBaseMsgUnfreeze();
484
+ while (reader.pos < end) {
485
+ const tag = reader.uint32();
486
+ switch (tag >>> 3) {
487
+ case 1:
488
+ if (tag != 10) {
489
+ break;
490
+ }
491
+ message.sender = reader.string();
492
+ continue;
493
+ case 2:
494
+ if (tag != 18) {
495
+ break;
496
+ }
497
+ message.classId = reader.string();
498
+ continue;
499
+ case 3:
500
+ if (tag != 26) {
501
+ break;
502
+ }
503
+ message.id = reader.string();
504
+ continue;
505
+ }
506
+ if ((tag & 7) == 4 || tag == 0) {
507
+ break;
508
+ }
509
+ reader.skipType(tag & 7);
510
+ }
511
+ return message;
512
+ },
513
+ fromJSON(object) {
514
+ return {
515
+ sender: isSet(object.sender) ? String(object.sender) : "",
516
+ classId: isSet(object.classId) ? String(object.classId) : "",
517
+ id: isSet(object.id) ? String(object.id) : "",
518
+ };
519
+ },
520
+ toJSON(message) {
521
+ const obj = {};
522
+ message.sender !== undefined && (obj.sender = message.sender);
523
+ message.classId !== undefined && (obj.classId = message.classId);
524
+ message.id !== undefined && (obj.id = message.id);
525
+ return obj;
526
+ },
527
+ create(base) {
528
+ return exports.MsgUnfreeze.fromPartial(base !== null && base !== void 0 ? base : {});
529
+ },
530
+ fromPartial(object) {
531
+ var _a, _b, _c;
532
+ const message = createBaseMsgUnfreeze();
533
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
534
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
535
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
536
+ return message;
537
+ },
538
+ };
539
+ function createBaseMsgAddToWhitelist() {
540
+ return { sender: "", classId: "", id: "", account: "" };
541
+ }
542
+ exports.MsgAddToWhitelist = {
543
+ encode(message, writer = minimal_1.default.Writer.create()) {
544
+ if (message.sender !== "") {
545
+ writer.uint32(10).string(message.sender);
546
+ }
547
+ if (message.classId !== "") {
548
+ writer.uint32(18).string(message.classId);
549
+ }
550
+ if (message.id !== "") {
551
+ writer.uint32(26).string(message.id);
552
+ }
553
+ if (message.account !== "") {
554
+ writer.uint32(34).string(message.account);
555
+ }
556
+ return writer;
557
+ },
558
+ decode(input, length) {
559
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
560
+ let end = length === undefined ? reader.len : reader.pos + length;
561
+ const message = createBaseMsgAddToWhitelist();
562
+ while (reader.pos < end) {
563
+ const tag = reader.uint32();
564
+ switch (tag >>> 3) {
565
+ case 1:
566
+ if (tag != 10) {
567
+ break;
568
+ }
569
+ message.sender = reader.string();
570
+ continue;
571
+ case 2:
572
+ if (tag != 18) {
573
+ break;
574
+ }
575
+ message.classId = reader.string();
576
+ continue;
577
+ case 3:
578
+ if (tag != 26) {
579
+ break;
580
+ }
581
+ message.id = reader.string();
582
+ continue;
583
+ case 4:
584
+ if (tag != 34) {
585
+ break;
586
+ }
587
+ message.account = reader.string();
588
+ continue;
589
+ }
590
+ if ((tag & 7) == 4 || tag == 0) {
591
+ break;
592
+ }
593
+ reader.skipType(tag & 7);
594
+ }
595
+ return message;
596
+ },
597
+ fromJSON(object) {
598
+ return {
599
+ sender: isSet(object.sender) ? String(object.sender) : "",
600
+ classId: isSet(object.classId) ? String(object.classId) : "",
601
+ id: isSet(object.id) ? String(object.id) : "",
602
+ account: isSet(object.account) ? String(object.account) : "",
603
+ };
604
+ },
605
+ toJSON(message) {
606
+ const obj = {};
607
+ message.sender !== undefined && (obj.sender = message.sender);
608
+ message.classId !== undefined && (obj.classId = message.classId);
609
+ message.id !== undefined && (obj.id = message.id);
610
+ message.account !== undefined && (obj.account = message.account);
611
+ return obj;
612
+ },
613
+ create(base) {
614
+ return exports.MsgAddToWhitelist.fromPartial(base !== null && base !== void 0 ? base : {});
615
+ },
616
+ fromPartial(object) {
617
+ var _a, _b, _c, _d;
618
+ const message = createBaseMsgAddToWhitelist();
619
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
620
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
621
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
622
+ message.account = (_d = object.account) !== null && _d !== void 0 ? _d : "";
623
+ return message;
624
+ },
625
+ };
626
+ function createBaseMsgRemoveFromWhitelist() {
627
+ return { sender: "", classId: "", id: "", account: "" };
628
+ }
629
+ exports.MsgRemoveFromWhitelist = {
630
+ encode(message, writer = minimal_1.default.Writer.create()) {
631
+ if (message.sender !== "") {
632
+ writer.uint32(10).string(message.sender);
633
+ }
634
+ if (message.classId !== "") {
635
+ writer.uint32(18).string(message.classId);
636
+ }
637
+ if (message.id !== "") {
638
+ writer.uint32(26).string(message.id);
639
+ }
640
+ if (message.account !== "") {
641
+ writer.uint32(34).string(message.account);
642
+ }
643
+ return writer;
644
+ },
645
+ decode(input, length) {
646
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
647
+ let end = length === undefined ? reader.len : reader.pos + length;
648
+ const message = createBaseMsgRemoveFromWhitelist();
649
+ while (reader.pos < end) {
650
+ const tag = reader.uint32();
651
+ switch (tag >>> 3) {
652
+ case 1:
653
+ if (tag != 10) {
654
+ break;
655
+ }
656
+ message.sender = reader.string();
657
+ continue;
658
+ case 2:
659
+ if (tag != 18) {
660
+ break;
661
+ }
662
+ message.classId = reader.string();
663
+ continue;
664
+ case 3:
665
+ if (tag != 26) {
666
+ break;
667
+ }
668
+ message.id = reader.string();
669
+ continue;
670
+ case 4:
671
+ if (tag != 34) {
672
+ break;
673
+ }
674
+ message.account = reader.string();
675
+ continue;
676
+ }
677
+ if ((tag & 7) == 4 || tag == 0) {
678
+ break;
679
+ }
680
+ reader.skipType(tag & 7);
681
+ }
682
+ return message;
683
+ },
684
+ fromJSON(object) {
685
+ return {
686
+ sender: isSet(object.sender) ? String(object.sender) : "",
687
+ classId: isSet(object.classId) ? String(object.classId) : "",
688
+ id: isSet(object.id) ? String(object.id) : "",
689
+ account: isSet(object.account) ? String(object.account) : "",
690
+ };
691
+ },
692
+ toJSON(message) {
693
+ const obj = {};
694
+ message.sender !== undefined && (obj.sender = message.sender);
695
+ message.classId !== undefined && (obj.classId = message.classId);
696
+ message.id !== undefined && (obj.id = message.id);
697
+ message.account !== undefined && (obj.account = message.account);
698
+ return obj;
699
+ },
700
+ create(base) {
701
+ return exports.MsgRemoveFromWhitelist.fromPartial(base !== null && base !== void 0 ? base : {});
702
+ },
703
+ fromPartial(object) {
704
+ var _a, _b, _c, _d;
705
+ const message = createBaseMsgRemoveFromWhitelist();
706
+ message.sender = (_a = object.sender) !== null && _a !== void 0 ? _a : "";
707
+ message.classId = (_b = object.classId) !== null && _b !== void 0 ? _b : "";
708
+ message.id = (_c = object.id) !== null && _c !== void 0 ? _c : "";
709
+ message.account = (_d = object.account) !== null && _d !== void 0 ? _d : "";
710
+ return message;
711
+ },
712
+ };
713
+ function createBaseEmptyResponse() {
714
+ return {};
715
+ }
716
+ exports.EmptyResponse = {
717
+ encode(_, writer = minimal_1.default.Writer.create()) {
718
+ return writer;
719
+ },
720
+ decode(input, length) {
721
+ const reader = input instanceof minimal_1.default.Reader ? input : minimal_1.default.Reader.create(input);
722
+ let end = length === undefined ? reader.len : reader.pos + length;
723
+ const message = createBaseEmptyResponse();
724
+ while (reader.pos < end) {
725
+ const tag = reader.uint32();
726
+ switch (tag >>> 3) {
727
+ }
728
+ if ((tag & 7) == 4 || tag == 0) {
729
+ break;
730
+ }
731
+ reader.skipType(tag & 7);
732
+ }
733
+ return message;
734
+ },
735
+ fromJSON(_) {
736
+ return {};
737
+ },
738
+ toJSON(_) {
739
+ const obj = {};
740
+ return obj;
741
+ },
742
+ create(base) {
743
+ return exports.EmptyResponse.fromPartial(base !== null && base !== void 0 ? base : {});
744
+ },
745
+ fromPartial(_) {
746
+ const message = createBaseEmptyResponse();
747
+ return message;
748
+ },
749
+ };
750
+ class MsgClientImpl {
751
+ constructor(rpc, opts) {
752
+ this.service = (opts === null || opts === void 0 ? void 0 : opts.service) || "coreum.asset.nft.v1.Msg";
753
+ this.rpc = rpc;
754
+ this.IssueClass = this.IssueClass.bind(this);
755
+ this.Mint = this.Mint.bind(this);
756
+ this.Burn = this.Burn.bind(this);
757
+ this.Freeze = this.Freeze.bind(this);
758
+ this.Unfreeze = this.Unfreeze.bind(this);
759
+ this.AddToWhitelist = this.AddToWhitelist.bind(this);
760
+ this.RemoveFromWhitelist = this.RemoveFromWhitelist.bind(this);
761
+ }
762
+ IssueClass(request) {
763
+ const data = exports.MsgIssueClass.encode(request).finish();
764
+ const promise = this.rpc.request(this.service, "IssueClass", data);
765
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
766
+ }
767
+ Mint(request) {
768
+ const data = exports.MsgMint.encode(request).finish();
769
+ const promise = this.rpc.request(this.service, "Mint", data);
770
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
771
+ }
772
+ Burn(request) {
773
+ const data = exports.MsgBurn.encode(request).finish();
774
+ const promise = this.rpc.request(this.service, "Burn", data);
775
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
776
+ }
777
+ Freeze(request) {
778
+ const data = exports.MsgFreeze.encode(request).finish();
779
+ const promise = this.rpc.request(this.service, "Freeze", data);
780
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
781
+ }
782
+ Unfreeze(request) {
783
+ const data = exports.MsgUnfreeze.encode(request).finish();
784
+ const promise = this.rpc.request(this.service, "Unfreeze", data);
785
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
786
+ }
787
+ AddToWhitelist(request) {
788
+ const data = exports.MsgAddToWhitelist.encode(request).finish();
789
+ const promise = this.rpc.request(this.service, "AddToWhitelist", data);
790
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
791
+ }
792
+ RemoveFromWhitelist(request) {
793
+ const data = exports.MsgRemoveFromWhitelist.encode(request).finish();
794
+ const promise = this.rpc.request(this.service, "RemoveFromWhitelist", data);
795
+ return promise.then((data) => exports.EmptyResponse.decode(minimal_1.default.Reader.create(data)));
796
+ }
797
+ }
798
+ exports.MsgClientImpl = MsgClientImpl;
799
+ if (minimal_1.default.util.Long !== long_1.default) {
800
+ minimal_1.default.util.Long = long_1.default;
801
+ minimal_1.default.configure();
802
+ }
803
+ function isSet(value) {
804
+ return value !== null && value !== undefined;
805
+ }
806
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZXVtL2Fzc2V0L25mdC92MS90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLGlFQUFxQztBQUNyQyxzREFBbUQ7QUFDbkQsK0JBQStFO0FBRWxFLFFBQUEsZUFBZSxHQUFHLHFCQUFxQixDQUFDO0FBNERyRCxTQUFTLHVCQUF1QjtJQUM5QixPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxFQUFFO1FBQ1IsV0FBVyxFQUFFLEVBQUU7UUFDZixHQUFHLEVBQUUsRUFBRTtRQUNQLE9BQU8sRUFBRSxFQUFFO1FBQ1gsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsRUFBRTtRQUNaLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRVksUUFBQSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxDQUNKLE9BQXNCLEVBQ3RCLFNBQXFCLGlCQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUV4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxD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