@super-protocol/sdk-js 3.16.5 → 3.17.0

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 (215) hide show
  1. package/dist/cjs/RIGenerator.d.ts +3 -2
  2. package/dist/cjs/RIGenerator.js +7 -6
  3. package/dist/cjs/TIIGenerator.d.ts +2 -2
  4. package/dist/cjs/TIIGenerator.js +32 -4
  5. package/dist/cjs/TeeInputGeneratorBase.d.ts +3 -3
  6. package/dist/cjs/TeeInputGeneratorBase.js +5 -5
  7. package/dist/cjs/certificates/serializer.d.ts +5 -3
  8. package/dist/cjs/certificates/serializer.js +26 -11
  9. package/dist/cjs/certificates/types.d.ts +1 -1
  10. package/dist/cjs/connectors/BaseConnector.d.ts +3 -3
  11. package/dist/cjs/connectors/BaseConnector.js +1 -1
  12. package/dist/cjs/connectors/BlockchainConnector.js +3 -3
  13. package/dist/cjs/connectors/BlockchainEventsListener.d.ts +2 -2
  14. package/dist/cjs/connectors/BlockchainEventsListener.js +3 -2
  15. package/dist/cjs/constants.d.ts +1 -3
  16. package/dist/cjs/constants.js +3 -7
  17. package/dist/cjs/contracts/abi.d.ts +1067 -1137
  18. package/dist/cjs/contracts/abi.js +1408 -1500
  19. package/dist/cjs/crypto/Crypto.d.ts +10 -13
  20. package/dist/cjs/crypto/Crypto.js +14 -17
  21. package/dist/cjs/crypto/nodejs/AES.d.ts +1 -1
  22. package/dist/cjs/crypto/nodejs/AES.js +2 -2
  23. package/dist/cjs/crypto/nodejs/ARIA.d.ts +1 -1
  24. package/dist/cjs/crypto/nodejs/ARIA.js +2 -2
  25. package/dist/cjs/errors/index.d.ts +1 -0
  26. package/dist/cjs/errors/index.js +4 -2
  27. package/dist/cjs/errors/insufficient-funds.error.d.ts +19 -0
  28. package/dist/cjs/errors/insufficient-funds.error.js +57 -0
  29. package/dist/cjs/index.d.ts +3 -6
  30. package/dist/cjs/index.js +6 -9
  31. package/dist/cjs/models/Offer.d.ts +16 -1
  32. package/dist/cjs/models/Offer.js +59 -9
  33. package/dist/cjs/models/Order.d.ts +1 -1
  34. package/dist/cjs/models/Order.js +11 -15
  35. package/dist/cjs/models/Provider.d.ts +0 -1
  36. package/dist/cjs/models/Provider.js +1 -7
  37. package/dist/cjs/models/TCB.d.ts +1 -28
  38. package/dist/cjs/models/TCB.js +1 -61
  39. package/dist/cjs/models/TeeOffer.d.ts +3 -18
  40. package/dist/cjs/models/TeeOffer.js +20 -106
  41. package/dist/cjs/providers/storage/S3StorageProvider.js +5 -5
  42. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
  43. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +7 -7
  44. package/dist/cjs/providers/storage/fs-storage-provider.js +35 -15
  45. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +1 -2
  46. package/dist/cjs/staticModels/Consensus.d.ts +5 -16
  47. package/dist/cjs/staticModels/Consensus.js +17 -86
  48. package/dist/cjs/staticModels/Offers.d.ts +4 -1
  49. package/dist/cjs/staticModels/Offers.js +9 -8
  50. package/dist/cjs/staticModels/OffersCommon.d.ts +3 -1
  51. package/dist/cjs/staticModels/OffersCommon.js +6 -2
  52. package/dist/cjs/staticModels/Orders.js +12 -11
  53. package/dist/cjs/staticModels/ProviderRewards.js +2 -2
  54. package/dist/cjs/staticModels/StaticModel.js +5 -5
  55. package/dist/cjs/staticModels/SuperproToken.d.ts +7 -7
  56. package/dist/cjs/staticModels/SuperproToken.js +3 -3
  57. package/dist/cjs/staticModels/TeeOffers.d.ts +1 -7
  58. package/dist/cjs/staticModels/TeeOffers.js +11 -20
  59. package/dist/cjs/store.d.ts +0 -1
  60. package/dist/cjs/store.js +1 -2
  61. package/dist/cjs/tee/TeeBlockVerifier.d.ts +1 -2
  62. package/dist/cjs/tee/TeeBlockVerifier.js +17 -24
  63. package/dist/cjs/tee/TeeCertificateService.d.ts +1 -1
  64. package/dist/cjs/tee/TeeCertificateService.js +6 -10
  65. package/dist/cjs/tee/statuses.d.ts +0 -7
  66. package/dist/cjs/tee/statuses.js +2 -10
  67. package/dist/cjs/types/Consensus.d.ts +10 -31
  68. package/dist/cjs/types/Consensus.js +2 -10
  69. package/dist/cjs/types/Offer.d.ts +5 -0
  70. package/dist/cjs/types/Order.d.ts +26 -21
  71. package/dist/cjs/types/Order.js +24 -17
  72. package/dist/cjs/types/index.d.ts +0 -1
  73. package/dist/cjs/types/index.js +1 -2
  74. package/dist/cjs/utils/CryptoKeysTransformer.js +5 -5
  75. package/dist/cjs/utils/TxManager.js +21 -5
  76. package/dist/cjs/utils/helper.d.ts +2 -8
  77. package/dist/cjs/utils/helper.js +6 -75
  78. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
  79. package/dist/cjs/utils/helpers/OrderArgsHelper.js +5 -5
  80. package/dist/cjs/utils/helpers/index.d.ts +1 -0
  81. package/dist/cjs/utils/helpers/index.js +2 -1
  82. package/dist/cjs/utils/helpers/streamToBuffer.d.ts +4 -0
  83. package/dist/cjs/utils/helpers/streamToBuffer.js +13 -0
  84. package/dist/cjs/utils/order/versify.js +1 -7
  85. package/dist/cjs/utils/rent-calculator/rent-calculator.js +2 -3
  86. package/dist/cjs/utils/rent-calculator/types.d.ts +0 -1
  87. package/dist/cjs/utils/tcb.d.ts +2 -0
  88. package/dist/cjs/utils/tcb.js +13 -0
  89. package/dist/cjs/utils/types.d.ts +0 -5
  90. package/dist/mjs/RIGenerator.d.ts +3 -2
  91. package/dist/mjs/RIGenerator.js +8 -7
  92. package/dist/mjs/TIIGenerator.d.ts +2 -2
  93. package/dist/mjs/TIIGenerator.js +32 -4
  94. package/dist/mjs/TeeInputGeneratorBase.d.ts +3 -3
  95. package/dist/mjs/TeeInputGeneratorBase.js +5 -5
  96. package/dist/mjs/certificates/serializer.d.ts +5 -3
  97. package/dist/mjs/certificates/serializer.js +26 -11
  98. package/dist/mjs/certificates/types.d.ts +1 -1
  99. package/dist/mjs/connectors/BaseConnector.d.ts +3 -3
  100. package/dist/mjs/connectors/BaseConnector.js +1 -1
  101. package/dist/mjs/connectors/BlockchainConnector.js +3 -3
  102. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +2 -2
  103. package/dist/mjs/connectors/BlockchainEventsListener.js +3 -2
  104. package/dist/mjs/constants.d.ts +1 -3
  105. package/dist/mjs/constants.js +2 -6
  106. package/dist/mjs/contracts/abi.d.ts +1067 -1137
  107. package/dist/mjs/contracts/abi.js +1406 -1498
  108. package/dist/mjs/crypto/Crypto.d.ts +10 -13
  109. package/dist/mjs/crypto/Crypto.js +14 -17
  110. package/dist/mjs/crypto/nodejs/AES.d.ts +1 -1
  111. package/dist/mjs/crypto/nodejs/AES.js +2 -2
  112. package/dist/mjs/crypto/nodejs/ARIA.d.ts +1 -1
  113. package/dist/mjs/crypto/nodejs/ARIA.js +2 -2
  114. package/dist/mjs/errors/index.d.ts +1 -0
  115. package/dist/mjs/errors/index.js +2 -1
  116. package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
  117. package/dist/mjs/errors/insufficient-funds.error.js +53 -0
  118. package/dist/mjs/index.d.ts +3 -6
  119. package/dist/mjs/index.js +4 -7
  120. package/dist/mjs/models/Offer.d.ts +16 -1
  121. package/dist/mjs/models/Offer.js +53 -3
  122. package/dist/mjs/models/Order.d.ts +1 -1
  123. package/dist/mjs/models/Order.js +11 -15
  124. package/dist/mjs/models/Provider.d.ts +0 -1
  125. package/dist/mjs/models/Provider.js +1 -7
  126. package/dist/mjs/models/TCB.d.ts +1 -28
  127. package/dist/mjs/models/TCB.js +2 -62
  128. package/dist/mjs/models/TeeOffer.d.ts +3 -18
  129. package/dist/mjs/models/TeeOffer.js +13 -99
  130. package/dist/mjs/providers/storage/S3StorageProvider.js +5 -5
  131. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
  132. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +7 -7
  133. package/dist/mjs/providers/storage/fs-storage-provider.js +35 -15
  134. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +1 -2
  135. package/dist/mjs/staticModels/Consensus.d.ts +5 -16
  136. package/dist/mjs/staticModels/Consensus.js +18 -87
  137. package/dist/mjs/staticModels/Offers.d.ts +4 -1
  138. package/dist/mjs/staticModels/Offers.js +9 -8
  139. package/dist/mjs/staticModels/OffersCommon.d.ts +3 -1
  140. package/dist/mjs/staticModels/OffersCommon.js +6 -2
  141. package/dist/mjs/staticModels/Orders.js +12 -11
  142. package/dist/mjs/staticModels/ProviderRewards.js +3 -3
  143. package/dist/mjs/staticModels/StaticModel.js +5 -5
  144. package/dist/mjs/staticModels/SuperproToken.d.ts +7 -7
  145. package/dist/mjs/staticModels/SuperproToken.js +3 -3
  146. package/dist/mjs/staticModels/TeeOffers.d.ts +1 -7
  147. package/dist/mjs/staticModels/TeeOffers.js +12 -21
  148. package/dist/mjs/store.d.ts +0 -1
  149. package/dist/mjs/store.js +2 -3
  150. package/dist/mjs/tee/TeeBlockVerifier.d.ts +1 -2
  151. package/dist/mjs/tee/TeeBlockVerifier.js +17 -24
  152. package/dist/mjs/tee/TeeCertificateService.d.ts +1 -1
  153. package/dist/mjs/tee/TeeCertificateService.js +7 -11
  154. package/dist/mjs/tee/statuses.d.ts +0 -7
  155. package/dist/mjs/tee/statuses.js +1 -9
  156. package/dist/mjs/types/Consensus.d.ts +10 -31
  157. package/dist/mjs/types/Consensus.js +1 -9
  158. package/dist/mjs/types/Offer.d.ts +5 -0
  159. package/dist/mjs/types/Order.d.ts +26 -21
  160. package/dist/mjs/types/Order.js +21 -17
  161. package/dist/mjs/types/index.d.ts +0 -1
  162. package/dist/mjs/types/index.js +1 -2
  163. package/dist/mjs/utils/CryptoKeysTransformer.js +5 -5
  164. package/dist/mjs/utils/TxManager.js +21 -5
  165. package/dist/mjs/utils/helper.d.ts +2 -8
  166. package/dist/mjs/utils/helper.js +5 -68
  167. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
  168. package/dist/mjs/utils/helpers/OrderArgsHelper.js +5 -5
  169. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  170. package/dist/mjs/utils/helpers/index.js +2 -1
  171. package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
  172. package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
  173. package/dist/mjs/utils/order/versify.js +1 -7
  174. package/dist/mjs/utils/rent-calculator/rent-calculator.js +2 -3
  175. package/dist/mjs/utils/rent-calculator/types.d.ts +0 -1
  176. package/dist/mjs/utils/tcb.d.ts +2 -0
  177. package/dist/mjs/utils/tcb.js +9 -0
  178. package/dist/mjs/utils/types.d.ts +0 -5
  179. package/package.json +8 -9
  180. package/dist/cjs/contracts/Campaign.d.ts +0 -1198
  181. package/dist/cjs/contracts/Campaign.js +0 -1554
  182. package/dist/cjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  183. package/dist/cjs/contracts/adminCertificateHelperAbi.js +0 -410
  184. package/dist/cjs/proto/TeeDeviceInfo.d.ts +0 -292
  185. package/dist/cjs/proto/TeeDeviceInfo.js +0 -491
  186. package/dist/cjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  187. package/dist/cjs/staticModels/AdminCertificateHelper.js +0 -99
  188. package/dist/cjs/staticModels/Campaign.d.ts +0 -63
  189. package/dist/cjs/staticModels/Campaign.js +0 -318
  190. package/dist/cjs/tee/QuoteValidator.d.ts +0 -46
  191. package/dist/cjs/tee/QuoteValidator.js +0 -456
  192. package/dist/cjs/tee/TcbSerializer.d.ts +0 -20
  193. package/dist/cjs/tee/TcbSerializer.js +0 -27
  194. package/dist/cjs/types/Campaign.d.ts +0 -55
  195. package/dist/cjs/types/Campaign.js +0 -17
  196. package/dist/cjs/utils/admin-service.d.ts +0 -13
  197. package/dist/cjs/utils/admin-service.js +0 -73
  198. package/dist/mjs/contracts/Campaign.d.ts +0 -1198
  199. package/dist/mjs/contracts/Campaign.js +0 -1551
  200. package/dist/mjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  201. package/dist/mjs/contracts/adminCertificateHelperAbi.js +0 -407
  202. package/dist/mjs/proto/TeeDeviceInfo.d.ts +0 -292
  203. package/dist/mjs/proto/TeeDeviceInfo.js +0 -485
  204. package/dist/mjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  205. package/dist/mjs/staticModels/AdminCertificateHelper.js +0 -92
  206. package/dist/mjs/staticModels/Campaign.d.ts +0 -63
  207. package/dist/mjs/staticModels/Campaign.js +0 -313
  208. package/dist/mjs/tee/QuoteValidator.d.ts +0 -46
  209. package/dist/mjs/tee/QuoteValidator.js +0 -449
  210. package/dist/mjs/tee/TcbSerializer.d.ts +0 -20
  211. package/dist/mjs/tee/TcbSerializer.js +0 -23
  212. package/dist/mjs/types/Campaign.d.ts +0 -55
  213. package/dist/mjs/types/Campaign.js +0 -14
  214. package/dist/mjs/utils/admin-service.d.ts +0 -13
  215. package/dist/mjs/utils/admin-service.js +0 -66
@@ -1,1554 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.abi = exports.ScoreUpdated = exports.RoleRevoked = exports.RoleGranted = exports.RoleAdminChanged = exports.RewardClaimed = exports.NodeUpdated = exports.NodeRemoved = exports.NodeInserted = exports.MigrationTransactionsUpdated = exports.MigrationSubmitted = exports.MigrationStatusUpdated = exports.MigrationCommitted = exports.CompetitionToggled = void 0;
4
- exports.CompetitionToggled = 'CompetitionToggled';
5
- exports.MigrationCommitted = 'MigrationCommitted';
6
- exports.MigrationStatusUpdated = 'MigrationStatusUpdated';
7
- exports.MigrationSubmitted = 'MigrationSubmitted';
8
- exports.MigrationTransactionsUpdated = 'MigrationTransactionsUpdated';
9
- exports.NodeInserted = 'NodeInserted';
10
- exports.NodeRemoved = 'NodeRemoved';
11
- exports.NodeUpdated = 'NodeUpdated';
12
- exports.RewardClaimed = 'RewardClaimed';
13
- exports.RoleAdminChanged = 'RoleAdminChanged';
14
- exports.RoleGranted = 'RoleGranted';
15
- exports.RoleRevoked = 'RoleRevoked';
16
- exports.ScoreUpdated = 'ScoreUpdated';
17
- exports.abi = [
18
- {
19
- "inputs": [
20
- {
21
- "internalType": "uint32",
22
- "name": "_notValidBefore",
23
- "type": "uint32"
24
- },
25
- {
26
- "internalType": "uint32",
27
- "name": "_notValidAfter",
28
- "type": "uint32"
29
- },
30
- {
31
- "internalType": "address",
32
- "name": "_usdt",
33
- "type": "address"
34
- }
35
- ],
36
- "stateMutability": "nonpayable",
37
- "type": "constructor"
38
- },
39
- {
40
- "inputs": [],
41
- "name": "InvalidParticipant",
42
- "type": "error"
43
- },
44
- {
45
- "anonymous": false,
46
- "inputs": [
47
- {
48
- "indexed": false,
49
- "internalType": "bool",
50
- "name": "active",
51
- "type": "bool"
52
- }
53
- ],
54
- "name": "CompetitionToggled",
55
- "type": "event"
56
- },
57
- {
58
- "anonymous": false,
59
- "inputs": [
60
- {
61
- "indexed": true,
62
- "internalType": "address",
63
- "name": "participant",
64
- "type": "address"
65
- },
66
- {
67
- "indexed": true,
68
- "internalType": "bytes32",
69
- "name": "migrationHash",
70
- "type": "bytes32"
71
- }
72
- ],
73
- "name": "MigrationCommitted",
74
- "type": "event"
75
- },
76
- {
77
- "anonymous": false,
78
- "inputs": [
79
- {
80
- "indexed": true,
81
- "internalType": "uint256",
82
- "name": "migrationIndex",
83
- "type": "uint256"
84
- },
85
- {
86
- "indexed": true,
87
- "internalType": "enum Campaign.Status",
88
- "name": "status",
89
- "type": "uint8"
90
- }
91
- ],
92
- "name": "MigrationStatusUpdated",
93
- "type": "event"
94
- },
95
- {
96
- "anonymous": false,
97
- "inputs": [
98
- {
99
- "indexed": true,
100
- "internalType": "address",
101
- "name": "participant",
102
- "type": "address"
103
- },
104
- {
105
- "indexed": true,
106
- "internalType": "uint256",
107
- "name": "migrationIndex",
108
- "type": "uint256"
109
- }
110
- ],
111
- "name": "MigrationSubmitted",
112
- "type": "event"
113
- },
114
- {
115
- "anonymous": false,
116
- "inputs": [
117
- {
118
- "indexed": true,
119
- "internalType": "uint256",
120
- "name": "migrationIndex",
121
- "type": "uint256"
122
- },
123
- {
124
- "indexed": false,
125
- "internalType": "uint256",
126
- "name": "transactions",
127
- "type": "uint256"
128
- }
129
- ],
130
- "name": "MigrationTransactionsUpdated",
131
- "type": "event"
132
- },
133
- {
134
- "anonymous": false,
135
- "inputs": [
136
- {
137
- "indexed": true,
138
- "internalType": "address",
139
- "name": "participant",
140
- "type": "address"
141
- },
142
- {
143
- "indexed": false,
144
- "internalType": "int256",
145
- "name": "score",
146
- "type": "int256"
147
- },
148
- {
149
- "indexed": false,
150
- "internalType": "uint256",
151
- "name": "nodeId",
152
- "type": "uint256"
153
- }
154
- ],
155
- "name": "NodeInserted",
156
- "type": "event"
157
- },
158
- {
159
- "anonymous": false,
160
- "inputs": [
161
- {
162
- "indexed": true,
163
- "internalType": "address",
164
- "name": "participant",
165
- "type": "address"
166
- },
167
- {
168
- "indexed": false,
169
- "internalType": "int256",
170
- "name": "score",
171
- "type": "int256"
172
- },
173
- {
174
- "indexed": false,
175
- "internalType": "uint256",
176
- "name": "nodeId",
177
- "type": "uint256"
178
- }
179
- ],
180
- "name": "NodeRemoved",
181
- "type": "event"
182
- },
183
- {
184
- "anonymous": false,
185
- "inputs": [
186
- {
187
- "indexed": true,
188
- "internalType": "address",
189
- "name": "participant",
190
- "type": "address"
191
- },
192
- {
193
- "indexed": false,
194
- "internalType": "int256",
195
- "name": "oldScore",
196
- "type": "int256"
197
- },
198
- {
199
- "indexed": false,
200
- "internalType": "int256",
201
- "name": "newScore",
202
- "type": "int256"
203
- },
204
- {
205
- "indexed": false,
206
- "internalType": "uint256",
207
- "name": "nodeId",
208
- "type": "uint256"
209
- }
210
- ],
211
- "name": "NodeUpdated",
212
- "type": "event"
213
- },
214
- {
215
- "anonymous": false,
216
- "inputs": [
217
- {
218
- "indexed": true,
219
- "internalType": "address",
220
- "name": "participant",
221
- "type": "address"
222
- },
223
- {
224
- "indexed": true,
225
- "internalType": "uint256",
226
- "name": "amount",
227
- "type": "uint256"
228
- }
229
- ],
230
- "name": "RewardClaimed",
231
- "type": "event"
232
- },
233
- {
234
- "anonymous": false,
235
- "inputs": [
236
- {
237
- "indexed": true,
238
- "internalType": "bytes32",
239
- "name": "role",
240
- "type": "bytes32"
241
- },
242
- {
243
- "indexed": true,
244
- "internalType": "bytes32",
245
- "name": "previousAdminRole",
246
- "type": "bytes32"
247
- },
248
- {
249
- "indexed": true,
250
- "internalType": "bytes32",
251
- "name": "newAdminRole",
252
- "type": "bytes32"
253
- }
254
- ],
255
- "name": "RoleAdminChanged",
256
- "type": "event"
257
- },
258
- {
259
- "anonymous": false,
260
- "inputs": [
261
- {
262
- "indexed": true,
263
- "internalType": "bytes32",
264
- "name": "role",
265
- "type": "bytes32"
266
- },
267
- {
268
- "indexed": true,
269
- "internalType": "address",
270
- "name": "account",
271
- "type": "address"
272
- },
273
- {
274
- "indexed": true,
275
- "internalType": "address",
276
- "name": "sender",
277
- "type": "address"
278
- }
279
- ],
280
- "name": "RoleGranted",
281
- "type": "event"
282
- },
283
- {
284
- "anonymous": false,
285
- "inputs": [
286
- {
287
- "indexed": true,
288
- "internalType": "bytes32",
289
- "name": "role",
290
- "type": "bytes32"
291
- },
292
- {
293
- "indexed": true,
294
- "internalType": "address",
295
- "name": "account",
296
- "type": "address"
297
- },
298
- {
299
- "indexed": true,
300
- "internalType": "address",
301
- "name": "sender",
302
- "type": "address"
303
- }
304
- ],
305
- "name": "RoleRevoked",
306
- "type": "event"
307
- },
308
- {
309
- "anonymous": false,
310
- "inputs": [
311
- {
312
- "indexed": true,
313
- "internalType": "address",
314
- "name": "participant",
315
- "type": "address"
316
- },
317
- {
318
- "indexed": false,
319
- "internalType": "int256",
320
- "name": "oldScore",
321
- "type": "int256"
322
- },
323
- {
324
- "indexed": false,
325
- "internalType": "int256",
326
- "name": "newScore",
327
- "type": "int256"
328
- }
329
- ],
330
- "name": "ScoreUpdated",
331
- "type": "event"
332
- },
333
- {
334
- "inputs": [],
335
- "name": "DEFAULT_ADMIN_ROLE",
336
- "outputs": [
337
- {
338
- "internalType": "bytes32",
339
- "name": "",
340
- "type": "bytes32"
341
- }
342
- ],
343
- "stateMutability": "view",
344
- "type": "function"
345
- },
346
- {
347
- "inputs": [
348
- {
349
- "internalType": "uint256",
350
- "name": "transactions",
351
- "type": "uint256"
352
- }
353
- ],
354
- "name": "_getTransactionScoreDetailed",
355
- "outputs": [
356
- {
357
- "internalType": "int256",
358
- "name": "",
359
- "type": "int256"
360
- }
361
- ],
362
- "stateMutability": "pure",
363
- "type": "function"
364
- },
365
- {
366
- "inputs": [
367
- {
368
- "components": [
369
- {
370
- "internalType": "uint64",
371
- "name": "migrationIndex",
372
- "type": "uint64"
373
- },
374
- {
375
- "internalType": "uint256",
376
- "name": "transactions",
377
- "type": "uint256"
378
- },
379
- {
380
- "internalType": "uint256",
381
- "name": "calculatedTransactionsBlockNumber",
382
- "type": "uint256"
383
- }
384
- ],
385
- "internalType": "struct Campaign.UpdateTxsArgs[]",
386
- "name": "args",
387
- "type": "tuple[]"
388
- }
389
- ],
390
- "name": "batchUpdateMigrationTransactionsByApp",
391
- "outputs": [],
392
- "stateMutability": "nonpayable",
393
- "type": "function"
394
- },
395
- {
396
- "inputs": [],
397
- "name": "claimReward",
398
- "outputs": [],
399
- "stateMutability": "nonpayable",
400
- "type": "function"
401
- },
402
- {
403
- "inputs": [
404
- {
405
- "internalType": "bytes32",
406
- "name": "migrationHash",
407
- "type": "bytes32"
408
- }
409
- ],
410
- "name": "commitMigration",
411
- "outputs": [],
412
- "stateMutability": "nonpayable",
413
- "type": "function"
414
- },
415
- {
416
- "inputs": [
417
- {
418
- "internalType": "address",
419
- "name": "",
420
- "type": "address"
421
- },
422
- {
423
- "internalType": "bytes32",
424
- "name": "",
425
- "type": "bytes32"
426
- }
427
- ],
428
- "name": "commitmentTimestamps",
429
- "outputs": [
430
- {
431
- "internalType": "uint256",
432
- "name": "",
433
- "type": "uint256"
434
- }
435
- ],
436
- "stateMutability": "view",
437
- "type": "function"
438
- },
439
- {
440
- "inputs": [],
441
- "name": "competitionActive",
442
- "outputs": [
443
- {
444
- "internalType": "bool",
445
- "name": "",
446
- "type": "bool"
447
- }
448
- ],
449
- "stateMutability": "view",
450
- "type": "function"
451
- },
452
- {
453
- "inputs": [],
454
- "name": "getCompetitionSetup",
455
- "outputs": [
456
- {
457
- "internalType": "uint256",
458
- "name": "claimDateAfter",
459
- "type": "uint256"
460
- },
461
- {
462
- "internalType": "uint256",
463
- "name": "notValidBeforeTs",
464
- "type": "uint256"
465
- },
466
- {
467
- "internalType": "uint256",
468
- "name": "notValidAfterTs",
469
- "type": "uint256"
470
- }
471
- ],
472
- "stateMutability": "view",
473
- "type": "function"
474
- },
475
- {
476
- "inputs": [
477
- {
478
- "internalType": "uint256",
479
- "name": "from",
480
- "type": "uint256"
481
- },
482
- {
483
- "internalType": "uint256",
484
- "name": "to",
485
- "type": "uint256"
486
- },
487
- {
488
- "internalType": "enum Campaign.Status",
489
- "name": "status",
490
- "type": "uint8"
491
- }
492
- ],
493
- "name": "getMigrationRange",
494
- "outputs": [
495
- {
496
- "components": [
497
- {
498
- "components": [
499
- {
500
- "internalType": "address",
501
- "name": "participant",
502
- "type": "address"
503
- },
504
- {
505
- "internalType": "uint16",
506
- "name": "score",
507
- "type": "uint16"
508
- },
509
- {
510
- "internalType": "bool",
511
- "name": "firstSourceMigration",
512
- "type": "bool"
513
- },
514
- {
515
- "internalType": "enum Campaign.MigrationNetwork",
516
- "name": "sourceNetwork",
517
- "type": "uint8"
518
- },
519
- {
520
- "internalType": "enum Campaign.Status",
521
- "name": "status",
522
- "type": "uint8"
523
- },
524
- {
525
- "internalType": "uint16",
526
- "name": "statusChecks",
527
- "type": "uint16"
528
- },
529
- {
530
- "internalType": "uint32",
531
- "name": "submittedTimestamp",
532
- "type": "uint32"
533
- },
534
- {
535
- "internalType": "address",
536
- "name": "sourceAddress",
537
- "type": "address"
538
- },
539
- {
540
- "internalType": "address",
541
- "name": "destinationAddress",
542
- "type": "address"
543
- },
544
- {
545
- "internalType": "string",
546
- "name": "sourceUrl",
547
- "type": "string"
548
- },
549
- {
550
- "internalType": "string",
551
- "name": "destinationUrl",
552
- "type": "string"
553
- },
554
- {
555
- "internalType": "uint256",
556
- "name": "calculatedTransactionsBlockNumber",
557
- "type": "uint256"
558
- },
559
- {
560
- "internalType": "uint256",
561
- "name": "transactions",
562
- "type": "uint256"
563
- },
564
- {
565
- "internalType": "uint256",
566
- "name": "commitmentTimestamp",
567
- "type": "uint256"
568
- }
569
- ],
570
- "internalType": "struct Campaign.Migration",
571
- "name": "migration",
572
- "type": "tuple"
573
- },
574
- {
575
- "internalType": "uint256",
576
- "name": "index",
577
- "type": "uint256"
578
- }
579
- ],
580
- "internalType": "struct Campaign.MigrationWithIndex[]",
581
- "name": "result",
582
- "type": "tuple[]"
583
- }
584
- ],
585
- "stateMutability": "view",
586
- "type": "function"
587
- },
588
- {
589
- "inputs": [
590
- {
591
- "internalType": "uint256[]",
592
- "name": "indexes",
593
- "type": "uint256[]"
594
- }
595
- ],
596
- "name": "getMigrationsByIndexes",
597
- "outputs": [
598
- {
599
- "components": [
600
- {
601
- "components": [
602
- {
603
- "internalType": "address",
604
- "name": "participant",
605
- "type": "address"
606
- },
607
- {
608
- "internalType": "uint16",
609
- "name": "score",
610
- "type": "uint16"
611
- },
612
- {
613
- "internalType": "bool",
614
- "name": "firstSourceMigration",
615
- "type": "bool"
616
- },
617
- {
618
- "internalType": "enum Campaign.MigrationNetwork",
619
- "name": "sourceNetwork",
620
- "type": "uint8"
621
- },
622
- {
623
- "internalType": "enum Campaign.Status",
624
- "name": "status",
625
- "type": "uint8"
626
- },
627
- {
628
- "internalType": "uint16",
629
- "name": "statusChecks",
630
- "type": "uint16"
631
- },
632
- {
633
- "internalType": "uint32",
634
- "name": "submittedTimestamp",
635
- "type": "uint32"
636
- },
637
- {
638
- "internalType": "address",
639
- "name": "sourceAddress",
640
- "type": "address"
641
- },
642
- {
643
- "internalType": "address",
644
- "name": "destinationAddress",
645
- "type": "address"
646
- },
647
- {
648
- "internalType": "string",
649
- "name": "sourceUrl",
650
- "type": "string"
651
- },
652
- {
653
- "internalType": "string",
654
- "name": "destinationUrl",
655
- "type": "string"
656
- },
657
- {
658
- "internalType": "uint256",
659
- "name": "calculatedTransactionsBlockNumber",
660
- "type": "uint256"
661
- },
662
- {
663
- "internalType": "uint256",
664
- "name": "transactions",
665
- "type": "uint256"
666
- },
667
- {
668
- "internalType": "uint256",
669
- "name": "commitmentTimestamp",
670
- "type": "uint256"
671
- }
672
- ],
673
- "internalType": "struct Campaign.Migration",
674
- "name": "migration",
675
- "type": "tuple"
676
- },
677
- {
678
- "internalType": "uint256",
679
- "name": "index",
680
- "type": "uint256"
681
- }
682
- ],
683
- "internalType": "struct Campaign.MigrationWithIndex[]",
684
- "name": "result",
685
- "type": "tuple[]"
686
- }
687
- ],
688
- "stateMutability": "view",
689
- "type": "function"
690
- },
691
- {
692
- "inputs": [
693
- {
694
- "internalType": "uint256",
695
- "name": "rank",
696
- "type": "uint256"
697
- }
698
- ],
699
- "name": "getParticipantByRank",
700
- "outputs": [
701
- {
702
- "components": [
703
- {
704
- "internalType": "address",
705
- "name": "participant",
706
- "type": "address"
707
- },
708
- {
709
- "internalType": "int256",
710
- "name": "score",
711
- "type": "int256"
712
- }
713
- ],
714
- "internalType": "struct AVLTreeLib.ParticipantScore",
715
- "name": "",
716
- "type": "tuple"
717
- }
718
- ],
719
- "stateMutability": "view",
720
- "type": "function"
721
- },
722
- {
723
- "inputs": [
724
- {
725
- "internalType": "address",
726
- "name": "participant",
727
- "type": "address"
728
- }
729
- ],
730
- "name": "getParticipantInfo",
731
- "outputs": [
732
- {
733
- "components": [
734
- {
735
- "components": [
736
- {
737
- "internalType": "bool",
738
- "name": "isRewardClaimed",
739
- "type": "bool"
740
- },
741
- {
742
- "internalType": "uint256",
743
- "name": "totalTransactions",
744
- "type": "uint256"
745
- },
746
- {
747
- "internalType": "uint256[]",
748
- "name": "migrationsIndexes",
749
- "type": "uint256[]"
750
- }
751
- ],
752
- "internalType": "struct Campaign.ParticipantInfo",
753
- "name": "storedInfo",
754
- "type": "tuple"
755
- },
756
- {
757
- "components": [
758
- {
759
- "internalType": "address",
760
- "name": "participant",
761
- "type": "address"
762
- },
763
- {
764
- "internalType": "uint256",
765
- "name": "rank",
766
- "type": "uint256"
767
- },
768
- {
769
- "internalType": "int256",
770
- "name": "score",
771
- "type": "int256"
772
- },
773
- {
774
- "internalType": "uint256",
775
- "name": "reward",
776
- "type": "uint256"
777
- }
778
- ],
779
- "internalType": "struct Campaign.ParticipantInfoViewed",
780
- "name": "viewedInfo",
781
- "type": "tuple"
782
- }
783
- ],
784
- "internalType": "struct Campaign.FullParticipantInfo",
785
- "name": "data",
786
- "type": "tuple"
787
- }
788
- ],
789
- "stateMutability": "view",
790
- "type": "function"
791
- },
792
- {
793
- "inputs": [
794
- {
795
- "internalType": "address",
796
- "name": "participant",
797
- "type": "address"
798
- }
799
- ],
800
- "name": "getParticipantRank",
801
- "outputs": [
802
- {
803
- "internalType": "uint256",
804
- "name": "rank",
805
- "type": "uint256"
806
- }
807
- ],
808
- "stateMutability": "view",
809
- "type": "function"
810
- },
811
- {
812
- "inputs": [
813
- {
814
- "internalType": "address",
815
- "name": "participant",
816
- "type": "address"
817
- }
818
- ],
819
- "name": "getParticipantRewardAndPoints",
820
- "outputs": [
821
- {
822
- "internalType": "uint256",
823
- "name": "reward",
824
- "type": "uint256"
825
- }
826
- ],
827
- "stateMutability": "view",
828
- "type": "function"
829
- },
830
- {
831
- "inputs": [
832
- {
833
- "internalType": "address",
834
- "name": "participant",
835
- "type": "address"
836
- }
837
- ],
838
- "name": "getParticipantScore",
839
- "outputs": [
840
- {
841
- "internalType": "int256",
842
- "name": "score",
843
- "type": "int256"
844
- }
845
- ],
846
- "stateMutability": "view",
847
- "type": "function"
848
- },
849
- {
850
- "inputs": [
851
- {
852
- "internalType": "uint256",
853
- "name": "centerRank",
854
- "type": "uint256"
855
- },
856
- {
857
- "internalType": "uint256",
858
- "name": "range",
859
- "type": "uint256"
860
- }
861
- ],
862
- "name": "getParticipantsAroundRank",
863
- "outputs": [
864
- {
865
- "components": [
866
- {
867
- "internalType": "address",
868
- "name": "participant",
869
- "type": "address"
870
- },
871
- {
872
- "internalType": "int256",
873
- "name": "score",
874
- "type": "int256"
875
- }
876
- ],
877
- "internalType": "struct AVLTreeLib.ParticipantScore[]",
878
- "name": "participants",
879
- "type": "tuple[]"
880
- }
881
- ],
882
- "stateMutability": "view",
883
- "type": "function"
884
- },
885
- {
886
- "inputs": [
887
- {
888
- "internalType": "uint256",
889
- "name": "startRank",
890
- "type": "uint256"
891
- },
892
- {
893
- "internalType": "uint256",
894
- "name": "endRank",
895
- "type": "uint256"
896
- }
897
- ],
898
- "name": "getParticipantsByRange",
899
- "outputs": [
900
- {
901
- "components": [
902
- {
903
- "internalType": "address",
904
- "name": "participant",
905
- "type": "address"
906
- },
907
- {
908
- "internalType": "int256",
909
- "name": "score",
910
- "type": "int256"
911
- }
912
- ],
913
- "internalType": "struct AVLTreeLib.ParticipantScore[]",
914
- "name": "participants",
915
- "type": "tuple[]"
916
- }
917
- ],
918
- "stateMutability": "view",
919
- "type": "function"
920
- },
921
- {
922
- "inputs": [
923
- {
924
- "internalType": "uint256",
925
- "name": "startRank",
926
- "type": "uint256"
927
- },
928
- {
929
- "internalType": "uint256",
930
- "name": "endRank",
931
- "type": "uint256"
932
- }
933
- ],
934
- "name": "getParticipantsInfoByRange",
935
- "outputs": [
936
- {
937
- "components": [
938
- {
939
- "components": [
940
- {
941
- "internalType": "bool",
942
- "name": "isRewardClaimed",
943
- "type": "bool"
944
- },
945
- {
946
- "internalType": "uint256",
947
- "name": "totalTransactions",
948
- "type": "uint256"
949
- },
950
- {
951
- "internalType": "uint256[]",
952
- "name": "migrationsIndexes",
953
- "type": "uint256[]"
954
- }
955
- ],
956
- "internalType": "struct Campaign.ParticipantInfo",
957
- "name": "storedInfo",
958
- "type": "tuple"
959
- },
960
- {
961
- "components": [
962
- {
963
- "internalType": "address",
964
- "name": "participant",
965
- "type": "address"
966
- },
967
- {
968
- "internalType": "uint256",
969
- "name": "rank",
970
- "type": "uint256"
971
- },
972
- {
973
- "internalType": "int256",
974
- "name": "score",
975
- "type": "int256"
976
- },
977
- {
978
- "internalType": "uint256",
979
- "name": "reward",
980
- "type": "uint256"
981
- }
982
- ],
983
- "internalType": "struct Campaign.ParticipantInfoViewed",
984
- "name": "viewedInfo",
985
- "type": "tuple"
986
- }
987
- ],
988
- "internalType": "struct Campaign.FullParticipantInfo[]",
989
- "name": "datas",
990
- "type": "tuple[]"
991
- }
992
- ],
993
- "stateMutability": "view",
994
- "type": "function"
995
- },
996
- {
997
- "inputs": [
998
- {
999
- "internalType": "bytes32",
1000
- "name": "role",
1001
- "type": "bytes32"
1002
- }
1003
- ],
1004
- "name": "getRoleAdmin",
1005
- "outputs": [
1006
- {
1007
- "internalType": "bytes32",
1008
- "name": "",
1009
- "type": "bytes32"
1010
- }
1011
- ],
1012
- "stateMutability": "view",
1013
- "type": "function"
1014
- },
1015
- {
1016
- "inputs": [],
1017
- "name": "getStat",
1018
- "outputs": [
1019
- {
1020
- "internalType": "uint256",
1021
- "name": "totalMigrations",
1022
- "type": "uint256"
1023
- },
1024
- {
1025
- "internalType": "uint256",
1026
- "name": "_totalTransactions",
1027
- "type": "uint256"
1028
- },
1029
- {
1030
- "internalType": "uint256",
1031
- "name": "_totalDeployedMigrations",
1032
- "type": "uint256"
1033
- },
1034
- {
1035
- "internalType": "uint256",
1036
- "name": "_totalNotDeployedMigrations",
1037
- "type": "uint256"
1038
- },
1039
- {
1040
- "internalType": "uint256",
1041
- "name": "_totalRevokedMigrations",
1042
- "type": "uint256"
1043
- }
1044
- ],
1045
- "stateMutability": "view",
1046
- "type": "function"
1047
- },
1048
- {
1049
- "inputs": [
1050
- {
1051
- "internalType": "uint256",
1052
- "name": "count",
1053
- "type": "uint256"
1054
- }
1055
- ],
1056
- "name": "getTopParticipants",
1057
- "outputs": [
1058
- {
1059
- "components": [
1060
- {
1061
- "internalType": "address",
1062
- "name": "participant",
1063
- "type": "address"
1064
- },
1065
- {
1066
- "internalType": "int256",
1067
- "name": "score",
1068
- "type": "int256"
1069
- }
1070
- ],
1071
- "internalType": "struct AVLTreeLib.ParticipantScore[]",
1072
- "name": "participants",
1073
- "type": "tuple[]"
1074
- }
1075
- ],
1076
- "stateMutability": "view",
1077
- "type": "function"
1078
- },
1079
- {
1080
- "inputs": [
1081
- {
1082
- "internalType": "uint256",
1083
- "name": "count",
1084
- "type": "uint256"
1085
- }
1086
- ],
1087
- "name": "getTopParticipantsInfo",
1088
- "outputs": [
1089
- {
1090
- "components": [
1091
- {
1092
- "components": [
1093
- {
1094
- "internalType": "bool",
1095
- "name": "isRewardClaimed",
1096
- "type": "bool"
1097
- },
1098
- {
1099
- "internalType": "uint256",
1100
- "name": "totalTransactions",
1101
- "type": "uint256"
1102
- },
1103
- {
1104
- "internalType": "uint256[]",
1105
- "name": "migrationsIndexes",
1106
- "type": "uint256[]"
1107
- }
1108
- ],
1109
- "internalType": "struct Campaign.ParticipantInfo",
1110
- "name": "storedInfo",
1111
- "type": "tuple"
1112
- },
1113
- {
1114
- "components": [
1115
- {
1116
- "internalType": "address",
1117
- "name": "participant",
1118
- "type": "address"
1119
- },
1120
- {
1121
- "internalType": "uint256",
1122
- "name": "rank",
1123
- "type": "uint256"
1124
- },
1125
- {
1126
- "internalType": "int256",
1127
- "name": "score",
1128
- "type": "int256"
1129
- },
1130
- {
1131
- "internalType": "uint256",
1132
- "name": "reward",
1133
- "type": "uint256"
1134
- }
1135
- ],
1136
- "internalType": "struct Campaign.ParticipantInfoViewed",
1137
- "name": "viewedInfo",
1138
- "type": "tuple"
1139
- }
1140
- ],
1141
- "internalType": "struct Campaign.FullParticipantInfo[]",
1142
- "name": "datas",
1143
- "type": "tuple[]"
1144
- }
1145
- ],
1146
- "stateMutability": "view",
1147
- "type": "function"
1148
- },
1149
- {
1150
- "inputs": [],
1151
- "name": "getTotalMigrations",
1152
- "outputs": [
1153
- {
1154
- "internalType": "uint256",
1155
- "name": "",
1156
- "type": "uint256"
1157
- }
1158
- ],
1159
- "stateMutability": "view",
1160
- "type": "function"
1161
- },
1162
- {
1163
- "inputs": [],
1164
- "name": "getTotalParticipants",
1165
- "outputs": [
1166
- {
1167
- "internalType": "uint256",
1168
- "name": "count",
1169
- "type": "uint256"
1170
- }
1171
- ],
1172
- "stateMutability": "view",
1173
- "type": "function"
1174
- },
1175
- {
1176
- "inputs": [
1177
- {
1178
- "internalType": "bytes32",
1179
- "name": "role",
1180
- "type": "bytes32"
1181
- },
1182
- {
1183
- "internalType": "address",
1184
- "name": "account",
1185
- "type": "address"
1186
- }
1187
- ],
1188
- "name": "grantRole",
1189
- "outputs": [],
1190
- "stateMutability": "nonpayable",
1191
- "type": "function"
1192
- },
1193
- {
1194
- "inputs": [
1195
- {
1196
- "internalType": "bytes32",
1197
- "name": "role",
1198
- "type": "bytes32"
1199
- },
1200
- {
1201
- "internalType": "address",
1202
- "name": "account",
1203
- "type": "address"
1204
- }
1205
- ],
1206
- "name": "hasRole",
1207
- "outputs": [
1208
- {
1209
- "internalType": "bool",
1210
- "name": "",
1211
- "type": "bool"
1212
- }
1213
- ],
1214
- "stateMutability": "view",
1215
- "type": "function"
1216
- },
1217
- {
1218
- "inputs": [
1219
- {
1220
- "internalType": "uint256",
1221
- "name": "",
1222
- "type": "uint256"
1223
- }
1224
- ],
1225
- "name": "migrations",
1226
- "outputs": [
1227
- {
1228
- "internalType": "address",
1229
- "name": "participant",
1230
- "type": "address"
1231
- },
1232
- {
1233
- "internalType": "uint16",
1234
- "name": "score",
1235
- "type": "uint16"
1236
- },
1237
- {
1238
- "internalType": "bool",
1239
- "name": "firstSourceMigration",
1240
- "type": "bool"
1241
- },
1242
- {
1243
- "internalType": "enum Campaign.MigrationNetwork",
1244
- "name": "sourceNetwork",
1245
- "type": "uint8"
1246
- },
1247
- {
1248
- "internalType": "enum Campaign.Status",
1249
- "name": "status",
1250
- "type": "uint8"
1251
- },
1252
- {
1253
- "internalType": "uint16",
1254
- "name": "statusChecks",
1255
- "type": "uint16"
1256
- },
1257
- {
1258
- "internalType": "uint32",
1259
- "name": "submittedTimestamp",
1260
- "type": "uint32"
1261
- },
1262
- {
1263
- "internalType": "address",
1264
- "name": "sourceAddress",
1265
- "type": "address"
1266
- },
1267
- {
1268
- "internalType": "address",
1269
- "name": "destinationAddress",
1270
- "type": "address"
1271
- },
1272
- {
1273
- "internalType": "string",
1274
- "name": "sourceUrl",
1275
- "type": "string"
1276
- },
1277
- {
1278
- "internalType": "string",
1279
- "name": "destinationUrl",
1280
- "type": "string"
1281
- },
1282
- {
1283
- "internalType": "uint256",
1284
- "name": "calculatedTransactionsBlockNumber",
1285
- "type": "uint256"
1286
- },
1287
- {
1288
- "internalType": "uint256",
1289
- "name": "transactions",
1290
- "type": "uint256"
1291
- },
1292
- {
1293
- "internalType": "uint256",
1294
- "name": "commitmentTimestamp",
1295
- "type": "uint256"
1296
- }
1297
- ],
1298
- "stateMutability": "view",
1299
- "type": "function"
1300
- },
1301
- {
1302
- "inputs": [
1303
- {
1304
- "internalType": "address",
1305
- "name": "participant",
1306
- "type": "address"
1307
- }
1308
- ],
1309
- "name": "participantExist",
1310
- "outputs": [
1311
- {
1312
- "internalType": "bool",
1313
- "name": "",
1314
- "type": "bool"
1315
- }
1316
- ],
1317
- "stateMutability": "view",
1318
- "type": "function"
1319
- },
1320
- {
1321
- "inputs": [
1322
- {
1323
- "internalType": "address",
1324
- "name": "",
1325
- "type": "address"
1326
- }
1327
- ],
1328
- "name": "registeredDstAddresses",
1329
- "outputs": [
1330
- {
1331
- "internalType": "bool",
1332
- "name": "",
1333
- "type": "bool"
1334
- }
1335
- ],
1336
- "stateMutability": "view",
1337
- "type": "function"
1338
- },
1339
- {
1340
- "inputs": [
1341
- {
1342
- "internalType": "address",
1343
- "name": "",
1344
- "type": "address"
1345
- }
1346
- ],
1347
- "name": "registeredSrcAddresses",
1348
- "outputs": [
1349
- {
1350
- "internalType": "uint64",
1351
- "name": "migrationIndex",
1352
- "type": "uint64"
1353
- },
1354
- {
1355
- "internalType": "bool",
1356
- "name": "initialized",
1357
- "type": "bool"
1358
- }
1359
- ],
1360
- "stateMutability": "view",
1361
- "type": "function"
1362
- },
1363
- {
1364
- "inputs": [
1365
- {
1366
- "internalType": "address",
1367
- "name": "",
1368
- "type": "address"
1369
- },
1370
- {
1371
- "internalType": "address",
1372
- "name": "",
1373
- "type": "address"
1374
- }
1375
- ],
1376
- "name": "registeredSrcAddressesByParticipant",
1377
- "outputs": [
1378
- {
1379
- "internalType": "uint64",
1380
- "name": "migrationIndex",
1381
- "type": "uint64"
1382
- },
1383
- {
1384
- "internalType": "bool",
1385
- "name": "initialized",
1386
- "type": "bool"
1387
- }
1388
- ],
1389
- "stateMutability": "view",
1390
- "type": "function"
1391
- },
1392
- {
1393
- "inputs": [
1394
- {
1395
- "internalType": "bytes32",
1396
- "name": "role",
1397
- "type": "bytes32"
1398
- },
1399
- {
1400
- "internalType": "address",
1401
- "name": "account",
1402
- "type": "address"
1403
- }
1404
- ],
1405
- "name": "renounceRole",
1406
- "outputs": [],
1407
- "stateMutability": "nonpayable",
1408
- "type": "function"
1409
- },
1410
- {
1411
- "inputs": [
1412
- {
1413
- "internalType": "enum Campaign.MigrationNetwork",
1414
- "name": "srcNetwork",
1415
- "type": "uint8"
1416
- },
1417
- {
1418
- "internalType": "address",
1419
- "name": "srcAddress",
1420
- "type": "address"
1421
- },
1422
- {
1423
- "internalType": "address",
1424
- "name": "dstAddress",
1425
- "type": "address"
1426
- },
1427
- {
1428
- "internalType": "string",
1429
- "name": "srcUrl",
1430
- "type": "string"
1431
- },
1432
- {
1433
- "internalType": "string",
1434
- "name": "dstUrl",
1435
- "type": "string"
1436
- }
1437
- ],
1438
- "name": "revealMigration",
1439
- "outputs": [],
1440
- "stateMutability": "nonpayable",
1441
- "type": "function"
1442
- },
1443
- {
1444
- "inputs": [
1445
- {
1446
- "internalType": "address",
1447
- "name": "participant",
1448
- "type": "address"
1449
- }
1450
- ],
1451
- "name": "revokeParticipant",
1452
- "outputs": [],
1453
- "stateMutability": "nonpayable",
1454
- "type": "function"
1455
- },
1456
- {
1457
- "inputs": [
1458
- {
1459
- "internalType": "bytes32",
1460
- "name": "role",
1461
- "type": "bytes32"
1462
- },
1463
- {
1464
- "internalType": "address",
1465
- "name": "account",
1466
- "type": "address"
1467
- }
1468
- ],
1469
- "name": "revokeRole",
1470
- "outputs": [],
1471
- "stateMutability": "nonpayable",
1472
- "type": "function"
1473
- },
1474
- {
1475
- "inputs": [
1476
- {
1477
- "internalType": "bytes4",
1478
- "name": "interfaceId",
1479
- "type": "bytes4"
1480
- }
1481
- ],
1482
- "name": "supportsInterface",
1483
- "outputs": [
1484
- {
1485
- "internalType": "bool",
1486
- "name": "",
1487
- "type": "bool"
1488
- }
1489
- ],
1490
- "stateMutability": "view",
1491
- "type": "function"
1492
- },
1493
- {
1494
- "inputs": [
1495
- {
1496
- "internalType": "uint64",
1497
- "name": "migrationIndex",
1498
- "type": "uint64"
1499
- },
1500
- {
1501
- "internalType": "bool",
1502
- "name": "isDeployed",
1503
- "type": "bool"
1504
- },
1505
- {
1506
- "internalType": "uint256",
1507
- "name": "calculatedTransactionsBlockNumber",
1508
- "type": "uint256"
1509
- },
1510
- {
1511
- "internalType": "uint16",
1512
- "name": "statusChecks",
1513
- "type": "uint16"
1514
- }
1515
- ],
1516
- "name": "updateMigrationStatusByApp",
1517
- "outputs": [],
1518
- "stateMutability": "nonpayable",
1519
- "type": "function"
1520
- },
1521
- {
1522
- "inputs": [],
1523
- "name": "usdt",
1524
- "outputs": [
1525
- {
1526
- "internalType": "address",
1527
- "name": "",
1528
- "type": "address"
1529
- }
1530
- ],
1531
- "stateMutability": "view",
1532
- "type": "function"
1533
- },
1534
- {
1535
- "inputs": [
1536
- {
1537
- "internalType": "address",
1538
- "name": "token",
1539
- "type": "address"
1540
- },
1541
- {
1542
- "internalType": "uint256",
1543
- "name": "amount",
1544
- "type": "uint256"
1545
- }
1546
- ],
1547
- "name": "withdrawByAdmin",
1548
- "outputs": [],
1549
- "stateMutability": "nonpayable",
1550
- "type": "function"
1551
- }
1552
- ];
1553
- exports.default = exports.abi;
1554
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsa0JBQWtCLEdBQUcsb0JBQTZCLENBQUM7QUFBYSxRQUFBLGtCQUFrQixHQUFHLG9CQUE2QixDQUFDO0FBQWEsUUFBQSxzQkFBc0IsR0FBRyx3QkFBaUMsQ0FBQztBQUFhLFFBQUEsa0JBQWtCLEdBQUcsb0JBQTZCLENBQUM7QUFBYSxRQUFBLDRCQUE0QixHQUFHLDhCQUF1QyxDQUFDO0FBQWEsUUFBQSxZQUFZLEdBQUcsY0FBdUIsQ0FBQztBQUFhLFFBQUEsV0FBVyxHQUFHLGFBQXNCLENBQUM7QUFBYSxRQUFBLFdBQVcsR0FBRyxhQUFzQixDQUFDO0FBQWEsUUFBQSxhQUFhLEdBQUcsZUFBd0IsQ0FBQztBQUFhLFFBQUEsZ0JBQWdCLEdBQUcsa0JBQTJCLENBQUM7QUFBYSxRQUFBLFdBQVcsR0FBRyxhQUFzQixDQUFDO0FBQWEsUUFBQSxXQUFXLEdBQUcsYUFBc0IsQ0FBQztBQUFhLFFBQUEsWUFBWSxHQUFHLGNBQXVCLENBQUM7QUFFanZCLFFBQUEsR0FBRyxHQUFHO0lBQ2Y7UUFDSSxRQUFRLEVBQUU7WUFDTjtnQkFDSSxjQUFjLEVBQUUsUUFBUTtnQkFDeEIsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsTUFBTSxFQUFFLFFBQVE7YUFDbkI7WUFDRDtnQkFDSSxjQUFjLEVBQUUsUUFBUTtnQkFDeEIsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsTUFBTSxFQUFFLFFBQVE7YUFDbkI7WUFDRDtnQkFDSSxjQUFjLEVBQUUsU0FBUztnQkFDekIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLFNBQVM7YUFDcEI7U0FDSjtRQUNELGlCQUFpQixFQUFFLFlBQVk7UUFDL0IsTUFBTSxFQUFFLGFBQWE7S0FDeEI7SUFDRDtRQUNJLFFBQVEsRUFBRSxFQUFFO1FB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