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