@gooddollar/goodcollective-contracts 1.0.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 (122) hide show
  1. package/README.md +1 -0
  2. package/contracts/DirectPayments/DirectPaymentsFactory.sol +108 -0
  3. package/contracts/DirectPayments/DirectPaymentsPool.sol +333 -0
  4. package/contracts/DirectPayments/ProvableNFT.sol +178 -0
  5. package/package.json +59 -0
  6. package/releases/deployment.json +7118 -0
  7. package/typechain-types/@openzeppelin/contracts/index.ts +7 -0
  8. package/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts +115 -0
  9. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts +87 -0
  10. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
  11. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +6 -0
  12. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +115 -0
  13. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.ts +115 -0
  14. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  15. package/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts +55 -0
  16. package/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +87 -0
  17. package/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
  18. package/typechain-types/@openzeppelin/contracts/proxy/index.ts +8 -0
  19. package/typechain-types/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.ts +410 -0
  20. package/typechain-types/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.ts +341 -0
  21. package/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
  22. package/typechain-types/@openzeppelin/contracts-upgradeable/index.ts +13 -0
  23. package/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts +115 -0
  24. package/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts +87 -0
  25. package/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts +4 -0
  26. package/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/index.ts +6 -0
  27. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts +127 -0
  28. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts +4 -0
  29. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts +87 -0
  30. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts +4 -0
  31. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts +9 -0
  32. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +69 -0
  33. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +238 -0
  34. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
  35. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.ts +342 -0
  36. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.ts +193 -0
  37. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.ts +193 -0
  38. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/index.ts +4 -0
  39. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.ts +5 -0
  40. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/index.ts +6 -0
  41. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.ts +631 -0
  42. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.ts +126 -0
  43. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.ts +559 -0
  44. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.ts +619 -0
  45. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/index.ts +4 -0
  46. package/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC721/index.ts +8 -0
  47. package/typechain-types/@openzeppelin/contracts-upgradeable/token/index.ts +7 -0
  48. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +69 -0
  49. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts +6 -0
  50. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.ts +121 -0
  51. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.ts +103 -0
  52. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +5 -0
  53. package/typechain-types/@openzeppelin/index.ts +7 -0
  54. package/typechain-types/common.ts +46 -0
  55. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +1034 -0
  56. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +1381 -0
  57. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.ts +105 -0
  58. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.ts +125 -0
  59. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/index.ts +6 -0
  60. package/typechain-types/contracts/DirectPayments/ProvableNFT.ts +1489 -0
  61. package/typechain-types/contracts/DirectPayments/index.ts +7 -0
  62. package/typechain-types/contracts/Lock.ts +148 -0
  63. package/typechain-types/contracts/index.ts +6 -0
  64. package/typechain-types/factories/@openzeppelin/contracts/index.ts +5 -0
  65. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +71 -0
  66. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +39 -0
  67. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
  68. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +5 -0
  69. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +147 -0
  70. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade__factory.ts +71 -0
  71. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  72. package/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts +31 -0
  73. package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +39 -0
  74. package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
  75. package/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +6 -0
  76. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable__factory.ts +247 -0
  77. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable__factory.ts +202 -0
  78. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
  79. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts +8 -0
  80. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts +71 -0
  81. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  82. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts +4 -0
  83. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts +5 -0
  84. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts +88 -0
  85. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts +4 -0
  86. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts +39 -0
  87. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts +4 -0
  88. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +6 -0
  89. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +39 -0
  90. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +128 -0
  91. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
  92. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable__factory.ts +209 -0
  93. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable__factory.ts +105 -0
  94. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable__factory.ts +105 -0
  95. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/index.ts +4 -0
  96. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/index.ts +4 -0
  97. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.ts +5 -0
  98. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable__factory.ts +406 -0
  99. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable__factory.ts +64 -0
  100. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable__factory.ts +311 -0
  101. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable__factory.ts +360 -0
  102. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/index.ts +4 -0
  103. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC721/index.ts +7 -0
  104. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/index.ts +5 -0
  105. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +39 -0
  106. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +5 -0
  107. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable__factory.ts +58 -0
  108. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable__factory.ts +45 -0
  109. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/introspection/index.ts +5 -0
  110. package/typechain-types/factories/@openzeppelin/index.ts +5 -0
  111. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +707 -0
  112. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +1094 -0
  113. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2__factory.ts +45 -0
  114. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory.ts +60 -0
  115. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/index.ts +6 -0
  116. package/typechain-types/factories/contracts/DirectPayments/ProvableNFT__factory.ts +1184 -0
  117. package/typechain-types/factories/contracts/DirectPayments/index.ts +6 -0
  118. package/typechain-types/factories/contracts/Lock__factory.ts +129 -0
  119. package/typechain-types/factories/contracts/index.ts +5 -0
  120. package/typechain-types/factories/index.ts +5 -0
  121. package/typechain-types/hardhat.d.ts +294 -0
  122. package/typechain-types/index.ts +66 -0
@@ -0,0 +1,1184 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
+ import type { PromiseOrValue } from "../../../common";
7
+ import type {
8
+ ProvableNFT,
9
+ ProvableNFTInterface,
10
+ } from "../../../contracts/DirectPayments/ProvableNFT";
11
+
12
+ const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ internalType: "bytes32",
17
+ name: "dataHash",
18
+ type: "bytes32",
19
+ },
20
+ {
21
+ internalType: "bytes32",
22
+ name: "tokenId",
23
+ type: "bytes32",
24
+ },
25
+ ],
26
+ name: "BAD_DATAHASH",
27
+ type: "error",
28
+ },
29
+ {
30
+ inputs: [],
31
+ name: "BAD_NFTTYPE",
32
+ type: "error",
33
+ },
34
+ {
35
+ inputs: [
36
+ {
37
+ internalType: "uint32",
38
+ name: "",
39
+ type: "uint32",
40
+ },
41
+ ],
42
+ name: "NOT_MANAGER",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [],
47
+ name: "NOT_MINTER",
48
+ type: "error",
49
+ },
50
+ {
51
+ anonymous: false,
52
+ inputs: [
53
+ {
54
+ indexed: false,
55
+ internalType: "address",
56
+ name: "previousAdmin",
57
+ type: "address",
58
+ },
59
+ {
60
+ indexed: false,
61
+ internalType: "address",
62
+ name: "newAdmin",
63
+ type: "address",
64
+ },
65
+ ],
66
+ name: "AdminChanged",
67
+ type: "event",
68
+ },
69
+ {
70
+ anonymous: false,
71
+ inputs: [
72
+ {
73
+ indexed: true,
74
+ internalType: "address",
75
+ name: "owner",
76
+ type: "address",
77
+ },
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "approved",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: true,
86
+ internalType: "uint256",
87
+ name: "tokenId",
88
+ type: "uint256",
89
+ },
90
+ ],
91
+ name: "Approval",
92
+ type: "event",
93
+ },
94
+ {
95
+ anonymous: false,
96
+ inputs: [
97
+ {
98
+ indexed: true,
99
+ internalType: "address",
100
+ name: "owner",
101
+ type: "address",
102
+ },
103
+ {
104
+ indexed: true,
105
+ internalType: "address",
106
+ name: "operator",
107
+ type: "address",
108
+ },
109
+ {
110
+ indexed: false,
111
+ internalType: "bool",
112
+ name: "approved",
113
+ type: "bool",
114
+ },
115
+ ],
116
+ name: "ApprovalForAll",
117
+ type: "event",
118
+ },
119
+ {
120
+ anonymous: false,
121
+ inputs: [
122
+ {
123
+ indexed: true,
124
+ internalType: "address",
125
+ name: "beacon",
126
+ type: "address",
127
+ },
128
+ ],
129
+ name: "BeaconUpgraded",
130
+ type: "event",
131
+ },
132
+ {
133
+ anonymous: false,
134
+ inputs: [
135
+ {
136
+ indexed: false,
137
+ internalType: "uint8",
138
+ name: "version",
139
+ type: "uint8",
140
+ },
141
+ ],
142
+ name: "Initialized",
143
+ type: "event",
144
+ },
145
+ {
146
+ anonymous: false,
147
+ inputs: [
148
+ {
149
+ indexed: true,
150
+ internalType: "bytes32",
151
+ name: "role",
152
+ type: "bytes32",
153
+ },
154
+ {
155
+ indexed: true,
156
+ internalType: "bytes32",
157
+ name: "previousAdminRole",
158
+ type: "bytes32",
159
+ },
160
+ {
161
+ indexed: true,
162
+ internalType: "bytes32",
163
+ name: "newAdminRole",
164
+ type: "bytes32",
165
+ },
166
+ ],
167
+ name: "RoleAdminChanged",
168
+ type: "event",
169
+ },
170
+ {
171
+ anonymous: false,
172
+ inputs: [
173
+ {
174
+ indexed: true,
175
+ internalType: "bytes32",
176
+ name: "role",
177
+ type: "bytes32",
178
+ },
179
+ {
180
+ indexed: true,
181
+ internalType: "address",
182
+ name: "account",
183
+ type: "address",
184
+ },
185
+ {
186
+ indexed: true,
187
+ internalType: "address",
188
+ name: "sender",
189
+ type: "address",
190
+ },
191
+ ],
192
+ name: "RoleGranted",
193
+ type: "event",
194
+ },
195
+ {
196
+ anonymous: false,
197
+ inputs: [
198
+ {
199
+ indexed: true,
200
+ internalType: "bytes32",
201
+ name: "role",
202
+ type: "bytes32",
203
+ },
204
+ {
205
+ indexed: true,
206
+ internalType: "address",
207
+ name: "account",
208
+ type: "address",
209
+ },
210
+ {
211
+ indexed: true,
212
+ internalType: "address",
213
+ name: "sender",
214
+ type: "address",
215
+ },
216
+ ],
217
+ name: "RoleRevoked",
218
+ type: "event",
219
+ },
220
+ {
221
+ anonymous: false,
222
+ inputs: [
223
+ {
224
+ indexed: true,
225
+ internalType: "address",
226
+ name: "from",
227
+ type: "address",
228
+ },
229
+ {
230
+ indexed: true,
231
+ internalType: "address",
232
+ name: "to",
233
+ type: "address",
234
+ },
235
+ {
236
+ indexed: true,
237
+ internalType: "uint256",
238
+ name: "tokenId",
239
+ type: "uint256",
240
+ },
241
+ ],
242
+ name: "Transfer",
243
+ type: "event",
244
+ },
245
+ {
246
+ anonymous: false,
247
+ inputs: [
248
+ {
249
+ indexed: true,
250
+ internalType: "address",
251
+ name: "implementation",
252
+ type: "address",
253
+ },
254
+ ],
255
+ name: "Upgraded",
256
+ type: "event",
257
+ },
258
+ {
259
+ inputs: [],
260
+ name: "DEFAULT_ADMIN_ROLE",
261
+ outputs: [
262
+ {
263
+ internalType: "bytes32",
264
+ name: "",
265
+ type: "bytes32",
266
+ },
267
+ ],
268
+ stateMutability: "view",
269
+ type: "function",
270
+ },
271
+ {
272
+ inputs: [],
273
+ name: "MINTER_ROLE",
274
+ outputs: [
275
+ {
276
+ internalType: "bytes32",
277
+ name: "",
278
+ type: "bytes32",
279
+ },
280
+ ],
281
+ stateMutability: "view",
282
+ type: "function",
283
+ },
284
+ {
285
+ inputs: [
286
+ {
287
+ internalType: "address",
288
+ name: "_manager",
289
+ type: "address",
290
+ },
291
+ {
292
+ internalType: "uint32",
293
+ name: "_nftType",
294
+ type: "uint32",
295
+ },
296
+ ],
297
+ name: "addManager",
298
+ outputs: [],
299
+ stateMutability: "nonpayable",
300
+ type: "function",
301
+ },
302
+ {
303
+ inputs: [
304
+ {
305
+ internalType: "address",
306
+ name: "to",
307
+ type: "address",
308
+ },
309
+ {
310
+ internalType: "uint256",
311
+ name: "tokenId",
312
+ type: "uint256",
313
+ },
314
+ ],
315
+ name: "approve",
316
+ outputs: [],
317
+ stateMutability: "nonpayable",
318
+ type: "function",
319
+ },
320
+ {
321
+ inputs: [
322
+ {
323
+ internalType: "address",
324
+ name: "owner",
325
+ type: "address",
326
+ },
327
+ ],
328
+ name: "balanceOf",
329
+ outputs: [
330
+ {
331
+ internalType: "uint256",
332
+ name: "",
333
+ type: "uint256",
334
+ },
335
+ ],
336
+ stateMutability: "view",
337
+ type: "function",
338
+ },
339
+ {
340
+ inputs: [
341
+ {
342
+ internalType: "uint256",
343
+ name: "tokenId",
344
+ type: "uint256",
345
+ },
346
+ ],
347
+ name: "getApproved",
348
+ outputs: [
349
+ {
350
+ internalType: "address",
351
+ name: "",
352
+ type: "address",
353
+ },
354
+ ],
355
+ stateMutability: "view",
356
+ type: "function",
357
+ },
358
+ {
359
+ inputs: [
360
+ {
361
+ internalType: "uint32",
362
+ name: "_nftType",
363
+ type: "uint32",
364
+ },
365
+ ],
366
+ name: "getManagerRole",
367
+ outputs: [
368
+ {
369
+ internalType: "bytes32",
370
+ name: "roleHash",
371
+ type: "bytes32",
372
+ },
373
+ ],
374
+ stateMutability: "pure",
375
+ type: "function",
376
+ },
377
+ {
378
+ inputs: [
379
+ {
380
+ internalType: "uint256",
381
+ name: "_tokenId",
382
+ type: "uint256",
383
+ },
384
+ ],
385
+ name: "getNFTData",
386
+ outputs: [
387
+ {
388
+ components: [
389
+ {
390
+ internalType: "uint32",
391
+ name: "nftType",
392
+ type: "uint32",
393
+ },
394
+ {
395
+ internalType: "uint16",
396
+ name: "version",
397
+ type: "uint16",
398
+ },
399
+ {
400
+ internalType: "string",
401
+ name: "nftUri",
402
+ type: "string",
403
+ },
404
+ {
405
+ components: [
406
+ {
407
+ internalType: "uint16",
408
+ name: "subtype",
409
+ type: "uint16",
410
+ },
411
+ {
412
+ internalType: "uint32",
413
+ name: "timestamp",
414
+ type: "uint32",
415
+ },
416
+ {
417
+ internalType: "uint256",
418
+ name: "quantity",
419
+ type: "uint256",
420
+ },
421
+ {
422
+ internalType: "string",
423
+ name: "eventUri",
424
+ type: "string",
425
+ },
426
+ {
427
+ internalType: "address[]",
428
+ name: "contributers",
429
+ type: "address[]",
430
+ },
431
+ ],
432
+ internalType: "struct ProvableNFT.EventData[]",
433
+ name: "events",
434
+ type: "tuple[]",
435
+ },
436
+ ],
437
+ internalType: "struct ProvableNFT.NFTData",
438
+ name: "",
439
+ type: "tuple",
440
+ },
441
+ ],
442
+ stateMutability: "view",
443
+ type: "function",
444
+ },
445
+ {
446
+ inputs: [
447
+ {
448
+ internalType: "uint256",
449
+ name: "_tokenId",
450
+ type: "uint256",
451
+ },
452
+ {
453
+ internalType: "uint256",
454
+ name: "_index",
455
+ type: "uint256",
456
+ },
457
+ ],
458
+ name: "getNFTEvent",
459
+ outputs: [
460
+ {
461
+ components: [
462
+ {
463
+ internalType: "uint16",
464
+ name: "subtype",
465
+ type: "uint16",
466
+ },
467
+ {
468
+ internalType: "uint32",
469
+ name: "timestamp",
470
+ type: "uint32",
471
+ },
472
+ {
473
+ internalType: "uint256",
474
+ name: "quantity",
475
+ type: "uint256",
476
+ },
477
+ {
478
+ internalType: "string",
479
+ name: "eventUri",
480
+ type: "string",
481
+ },
482
+ {
483
+ internalType: "address[]",
484
+ name: "contributers",
485
+ type: "address[]",
486
+ },
487
+ ],
488
+ internalType: "struct ProvableNFT.EventData",
489
+ name: "",
490
+ type: "tuple",
491
+ },
492
+ ],
493
+ stateMutability: "view",
494
+ type: "function",
495
+ },
496
+ {
497
+ inputs: [
498
+ {
499
+ internalType: "uint256",
500
+ name: "_tokenId",
501
+ type: "uint256",
502
+ },
503
+ ],
504
+ name: "getNFTEvents",
505
+ outputs: [
506
+ {
507
+ components: [
508
+ {
509
+ internalType: "uint16",
510
+ name: "subtype",
511
+ type: "uint16",
512
+ },
513
+ {
514
+ internalType: "uint32",
515
+ name: "timestamp",
516
+ type: "uint32",
517
+ },
518
+ {
519
+ internalType: "uint256",
520
+ name: "quantity",
521
+ type: "uint256",
522
+ },
523
+ {
524
+ internalType: "string",
525
+ name: "eventUri",
526
+ type: "string",
527
+ },
528
+ {
529
+ internalType: "address[]",
530
+ name: "contributers",
531
+ type: "address[]",
532
+ },
533
+ ],
534
+ internalType: "struct ProvableNFT.EventData[]",
535
+ name: "",
536
+ type: "tuple[]",
537
+ },
538
+ ],
539
+ stateMutability: "view",
540
+ type: "function",
541
+ },
542
+ {
543
+ inputs: [
544
+ {
545
+ internalType: "bytes32",
546
+ name: "role",
547
+ type: "bytes32",
548
+ },
549
+ ],
550
+ name: "getRoleAdmin",
551
+ outputs: [
552
+ {
553
+ internalType: "bytes32",
554
+ name: "",
555
+ type: "bytes32",
556
+ },
557
+ ],
558
+ stateMutability: "view",
559
+ type: "function",
560
+ },
561
+ {
562
+ inputs: [
563
+ {
564
+ internalType: "bytes32",
565
+ name: "role",
566
+ type: "bytes32",
567
+ },
568
+ {
569
+ internalType: "address",
570
+ name: "account",
571
+ type: "address",
572
+ },
573
+ ],
574
+ name: "grantRole",
575
+ outputs: [],
576
+ stateMutability: "nonpayable",
577
+ type: "function",
578
+ },
579
+ {
580
+ inputs: [
581
+ {
582
+ internalType: "bytes32",
583
+ name: "role",
584
+ type: "bytes32",
585
+ },
586
+ {
587
+ internalType: "address",
588
+ name: "account",
589
+ type: "address",
590
+ },
591
+ ],
592
+ name: "hasRole",
593
+ outputs: [
594
+ {
595
+ internalType: "bool",
596
+ name: "",
597
+ type: "bool",
598
+ },
599
+ ],
600
+ stateMutability: "view",
601
+ type: "function",
602
+ },
603
+ {
604
+ inputs: [
605
+ {
606
+ internalType: "string",
607
+ name: "_name",
608
+ type: "string",
609
+ },
610
+ {
611
+ internalType: "string",
612
+ name: "_symbol",
613
+ type: "string",
614
+ },
615
+ ],
616
+ name: "initialize",
617
+ outputs: [],
618
+ stateMutability: "nonpayable",
619
+ type: "function",
620
+ },
621
+ {
622
+ inputs: [
623
+ {
624
+ internalType: "address",
625
+ name: "owner",
626
+ type: "address",
627
+ },
628
+ {
629
+ internalType: "address",
630
+ name: "operator",
631
+ type: "address",
632
+ },
633
+ ],
634
+ name: "isApprovedForAll",
635
+ outputs: [
636
+ {
637
+ internalType: "bool",
638
+ name: "",
639
+ type: "bool",
640
+ },
641
+ ],
642
+ stateMutability: "view",
643
+ type: "function",
644
+ },
645
+ {
646
+ inputs: [
647
+ {
648
+ internalType: "address",
649
+ name: "_to",
650
+ type: "address",
651
+ },
652
+ {
653
+ internalType: "string",
654
+ name: "_uri",
655
+ type: "string",
656
+ },
657
+ {
658
+ internalType: "bytes32",
659
+ name: "_nftDataHash",
660
+ type: "bytes32",
661
+ },
662
+ ],
663
+ name: "mint",
664
+ outputs: [
665
+ {
666
+ internalType: "uint256",
667
+ name: "tokenId",
668
+ type: "uint256",
669
+ },
670
+ ],
671
+ stateMutability: "nonpayable",
672
+ type: "function",
673
+ },
674
+ {
675
+ inputs: [
676
+ {
677
+ internalType: "address",
678
+ name: "_to",
679
+ type: "address",
680
+ },
681
+ {
682
+ components: [
683
+ {
684
+ internalType: "uint32",
685
+ name: "nftType",
686
+ type: "uint32",
687
+ },
688
+ {
689
+ internalType: "uint16",
690
+ name: "version",
691
+ type: "uint16",
692
+ },
693
+ {
694
+ internalType: "string",
695
+ name: "nftUri",
696
+ type: "string",
697
+ },
698
+ {
699
+ components: [
700
+ {
701
+ internalType: "uint16",
702
+ name: "subtype",
703
+ type: "uint16",
704
+ },
705
+ {
706
+ internalType: "uint32",
707
+ name: "timestamp",
708
+ type: "uint32",
709
+ },
710
+ {
711
+ internalType: "uint256",
712
+ name: "quantity",
713
+ type: "uint256",
714
+ },
715
+ {
716
+ internalType: "string",
717
+ name: "eventUri",
718
+ type: "string",
719
+ },
720
+ {
721
+ internalType: "address[]",
722
+ name: "contributers",
723
+ type: "address[]",
724
+ },
725
+ ],
726
+ internalType: "struct ProvableNFT.EventData[]",
727
+ name: "events",
728
+ type: "tuple[]",
729
+ },
730
+ ],
731
+ internalType: "struct ProvableNFT.NFTData",
732
+ name: "_nftData",
733
+ type: "tuple",
734
+ },
735
+ {
736
+ internalType: "bool",
737
+ name: "_withStore",
738
+ type: "bool",
739
+ },
740
+ {
741
+ internalType: "bytes",
742
+ name: "_callData",
743
+ type: "bytes",
744
+ },
745
+ ],
746
+ name: "mintPermissioned",
747
+ outputs: [
748
+ {
749
+ internalType: "uint256",
750
+ name: "tokenId",
751
+ type: "uint256",
752
+ },
753
+ ],
754
+ stateMutability: "nonpayable",
755
+ type: "function",
756
+ },
757
+ {
758
+ inputs: [],
759
+ name: "name",
760
+ outputs: [
761
+ {
762
+ internalType: "string",
763
+ name: "",
764
+ type: "string",
765
+ },
766
+ ],
767
+ stateMutability: "view",
768
+ type: "function",
769
+ },
770
+ {
771
+ inputs: [
772
+ {
773
+ internalType: "uint256",
774
+ name: "tokenId",
775
+ type: "uint256",
776
+ },
777
+ ],
778
+ name: "ownerOf",
779
+ outputs: [
780
+ {
781
+ internalType: "address",
782
+ name: "",
783
+ type: "address",
784
+ },
785
+ ],
786
+ stateMutability: "view",
787
+ type: "function",
788
+ },
789
+ {
790
+ inputs: [
791
+ {
792
+ internalType: "uint256",
793
+ name: "_tokenId",
794
+ type: "uint256",
795
+ },
796
+ {
797
+ components: [
798
+ {
799
+ internalType: "uint32",
800
+ name: "nftType",
801
+ type: "uint32",
802
+ },
803
+ {
804
+ internalType: "uint16",
805
+ name: "version",
806
+ type: "uint16",
807
+ },
808
+ {
809
+ internalType: "string",
810
+ name: "nftUri",
811
+ type: "string",
812
+ },
813
+ {
814
+ components: [
815
+ {
816
+ internalType: "uint16",
817
+ name: "subtype",
818
+ type: "uint16",
819
+ },
820
+ {
821
+ internalType: "uint32",
822
+ name: "timestamp",
823
+ type: "uint32",
824
+ },
825
+ {
826
+ internalType: "uint256",
827
+ name: "quantity",
828
+ type: "uint256",
829
+ },
830
+ {
831
+ internalType: "string",
832
+ name: "eventUri",
833
+ type: "string",
834
+ },
835
+ {
836
+ internalType: "address[]",
837
+ name: "contributers",
838
+ type: "address[]",
839
+ },
840
+ ],
841
+ internalType: "struct ProvableNFT.EventData[]",
842
+ name: "events",
843
+ type: "tuple[]",
844
+ },
845
+ ],
846
+ internalType: "struct ProvableNFT.NFTData",
847
+ name: "_nftData",
848
+ type: "tuple",
849
+ },
850
+ ],
851
+ name: "proveNFTData",
852
+ outputs: [
853
+ {
854
+ components: [
855
+ {
856
+ internalType: "uint32",
857
+ name: "nftType",
858
+ type: "uint32",
859
+ },
860
+ {
861
+ internalType: "uint16",
862
+ name: "version",
863
+ type: "uint16",
864
+ },
865
+ {
866
+ internalType: "string",
867
+ name: "nftUri",
868
+ type: "string",
869
+ },
870
+ {
871
+ components: [
872
+ {
873
+ internalType: "uint16",
874
+ name: "subtype",
875
+ type: "uint16",
876
+ },
877
+ {
878
+ internalType: "uint32",
879
+ name: "timestamp",
880
+ type: "uint32",
881
+ },
882
+ {
883
+ internalType: "uint256",
884
+ name: "quantity",
885
+ type: "uint256",
886
+ },
887
+ {
888
+ internalType: "string",
889
+ name: "eventUri",
890
+ type: "string",
891
+ },
892
+ {
893
+ internalType: "address[]",
894
+ name: "contributers",
895
+ type: "address[]",
896
+ },
897
+ ],
898
+ internalType: "struct ProvableNFT.EventData[]",
899
+ name: "events",
900
+ type: "tuple[]",
901
+ },
902
+ ],
903
+ internalType: "struct ProvableNFT.NFTData",
904
+ name: "data",
905
+ type: "tuple",
906
+ },
907
+ ],
908
+ stateMutability: "view",
909
+ type: "function",
910
+ },
911
+ {
912
+ inputs: [],
913
+ name: "proxiableUUID",
914
+ outputs: [
915
+ {
916
+ internalType: "bytes32",
917
+ name: "",
918
+ type: "bytes32",
919
+ },
920
+ ],
921
+ stateMutability: "view",
922
+ type: "function",
923
+ },
924
+ {
925
+ inputs: [
926
+ {
927
+ internalType: "bytes32",
928
+ name: "role",
929
+ type: "bytes32",
930
+ },
931
+ {
932
+ internalType: "address",
933
+ name: "account",
934
+ type: "address",
935
+ },
936
+ ],
937
+ name: "renounceRole",
938
+ outputs: [],
939
+ stateMutability: "nonpayable",
940
+ type: "function",
941
+ },
942
+ {
943
+ inputs: [
944
+ {
945
+ internalType: "bytes32",
946
+ name: "role",
947
+ type: "bytes32",
948
+ },
949
+ {
950
+ internalType: "address",
951
+ name: "account",
952
+ type: "address",
953
+ },
954
+ ],
955
+ name: "revokeRole",
956
+ outputs: [],
957
+ stateMutability: "nonpayable",
958
+ type: "function",
959
+ },
960
+ {
961
+ inputs: [
962
+ {
963
+ internalType: "address",
964
+ name: "from",
965
+ type: "address",
966
+ },
967
+ {
968
+ internalType: "address",
969
+ name: "to",
970
+ type: "address",
971
+ },
972
+ {
973
+ internalType: "uint256",
974
+ name: "tokenId",
975
+ type: "uint256",
976
+ },
977
+ ],
978
+ name: "safeTransferFrom",
979
+ outputs: [],
980
+ stateMutability: "nonpayable",
981
+ type: "function",
982
+ },
983
+ {
984
+ inputs: [
985
+ {
986
+ internalType: "address",
987
+ name: "from",
988
+ type: "address",
989
+ },
990
+ {
991
+ internalType: "address",
992
+ name: "to",
993
+ type: "address",
994
+ },
995
+ {
996
+ internalType: "uint256",
997
+ name: "tokenId",
998
+ type: "uint256",
999
+ },
1000
+ {
1001
+ internalType: "bytes",
1002
+ name: "data",
1003
+ type: "bytes",
1004
+ },
1005
+ ],
1006
+ name: "safeTransferFrom",
1007
+ outputs: [],
1008
+ stateMutability: "nonpayable",
1009
+ type: "function",
1010
+ },
1011
+ {
1012
+ inputs: [
1013
+ {
1014
+ internalType: "address",
1015
+ name: "operator",
1016
+ type: "address",
1017
+ },
1018
+ {
1019
+ internalType: "bool",
1020
+ name: "approved",
1021
+ type: "bool",
1022
+ },
1023
+ ],
1024
+ name: "setApprovalForAll",
1025
+ outputs: [],
1026
+ stateMutability: "nonpayable",
1027
+ type: "function",
1028
+ },
1029
+ {
1030
+ inputs: [
1031
+ {
1032
+ internalType: "bytes4",
1033
+ name: "interfaceId",
1034
+ type: "bytes4",
1035
+ },
1036
+ ],
1037
+ name: "supportsInterface",
1038
+ outputs: [
1039
+ {
1040
+ internalType: "bool",
1041
+ name: "",
1042
+ type: "bool",
1043
+ },
1044
+ ],
1045
+ stateMutability: "view",
1046
+ type: "function",
1047
+ },
1048
+ {
1049
+ inputs: [],
1050
+ name: "symbol",
1051
+ outputs: [
1052
+ {
1053
+ internalType: "string",
1054
+ name: "",
1055
+ type: "string",
1056
+ },
1057
+ ],
1058
+ stateMutability: "view",
1059
+ type: "function",
1060
+ },
1061
+ {
1062
+ inputs: [
1063
+ {
1064
+ internalType: "uint256",
1065
+ name: "tokenId",
1066
+ type: "uint256",
1067
+ },
1068
+ ],
1069
+ name: "tokenURI",
1070
+ outputs: [
1071
+ {
1072
+ internalType: "string",
1073
+ name: "",
1074
+ type: "string",
1075
+ },
1076
+ ],
1077
+ stateMutability: "view",
1078
+ type: "function",
1079
+ },
1080
+ {
1081
+ inputs: [
1082
+ {
1083
+ internalType: "address",
1084
+ name: "from",
1085
+ type: "address",
1086
+ },
1087
+ {
1088
+ internalType: "address",
1089
+ name: "to",
1090
+ type: "address",
1091
+ },
1092
+ {
1093
+ internalType: "uint256",
1094
+ name: "tokenId",
1095
+ type: "uint256",
1096
+ },
1097
+ ],
1098
+ name: "transferFrom",
1099
+ outputs: [],
1100
+ stateMutability: "nonpayable",
1101
+ type: "function",
1102
+ },
1103
+ {
1104
+ inputs: [
1105
+ {
1106
+ internalType: "address",
1107
+ name: "newImplementation",
1108
+ type: "address",
1109
+ },
1110
+ ],
1111
+ name: "upgradeTo",
1112
+ outputs: [],
1113
+ stateMutability: "nonpayable",
1114
+ type: "function",
1115
+ },
1116
+ {
1117
+ inputs: [
1118
+ {
1119
+ internalType: "address",
1120
+ name: "newImplementation",
1121
+ type: "address",
1122
+ },
1123
+ {
1124
+ internalType: "bytes",
1125
+ name: "data",
1126
+ type: "bytes",
1127
+ },
1128
+ ],
1129
+ name: "upgradeToAndCall",
1130
+ outputs: [],
1131
+ stateMutability: "payable",
1132
+ type: "function",
1133
+ },
1134
+ ] as const;
1135
+
1136
+ const _bytecode =
1137
+ "0x60a06040523060805234801561001457600080fd5b506080516134c161004c60003960008181610afc01528181610b3c01528181610d5001528181610d900152610e0801526134c16000f3fe6080604052600436106101735760003560e01c806301ffc9a71461017857806306fdde03146101ad578063081812fc146101cf578063095ea7b3146102075780630ad4c4f41461022957806323b872dd14610256578063248a9ca3146102765780632f2ff15d146102a457806336568abe146102c45780633659cfe6146102e457806342842e0e146103045780634cd88b76146103245780634e93f47b146103445780634f1ef2861461036457806352d1902d146103775780636352211e1461038c5780636cae28c5146103ac57806370a08231146103d95780638055b10f146103f957806391d148541461041957806395d89b411461043957806396635c921461044e578063a217fddf1461047b578063a22cb46514610490578063a4f19fc8146104b0578063b88d4fde146104d0578063c87b56dd146104f0578063d0856c6d14610510578063d34047b614610530578063d539139314610550578063d547741f1461058e578063e985e9c5146105ae575b600080fd5b34801561018457600080fd5b506101986101933660046125b8565b6105ce565b60405190151581526020015b60405180910390f35b3480156101b957600080fd5b506101c26105df565b6040516101a49190612625565b3480156101db57600080fd5b506101ef6101ea366004612638565b610671565b6040516001600160a01b0390911681526020016101a4565b34801561021357600080fd5b5061022761022236600461266d565b610698565b005b34801561023557600080fd5b50610249610244366004612638565b6107b2565b6040516101a4919061277e565b34801561026257600080fd5b506102276102713660046127d5565b610a12565b34801561028257600080fd5b50610296610291366004612638565b610a43565b6040519081526020016101a4565b3480156102b057600080fd5b506102276102bf366004612811565b610a58565b3480156102d057600080fd5b506102276102df366004612811565b610a74565b3480156102f057600080fd5b506102276102ff36600461283d565b610af2565b34801561031057600080fd5b5061022761031f3660046127d5565b610bba565b34801561033057600080fd5b5061022761033f366004612957565b610bd5565b34801561035057600080fd5b5061029661035f3660046129ce565b610cfb565b6102276103723660046129e9565b610d46565b34801561038357600080fd5b50610296610dfb565b34801561039857600080fd5b506101ef6103a7366004612638565b610ea9565b3480156103b857600080fd5b506103cc6103c7366004612a2c565b610edd565b6040516101a49190612a4e565b3480156103e557600080fd5b506102966103f436600461283d565b611072565b34801561040557600080fd5b50610249610414366004612c84565b6110f8565b34801561042557600080fd5b50610198610434366004612811565b611185565b34801561044557600080fd5b506101c26111b0565b34801561045a57600080fd5b5061046e610469366004612638565b6111bf565b6040516101a49190612cc0565b34801561048757600080fd5b50610296600081565b34801561049c57600080fd5b506102276104ab366004612ce3565b611357565b3480156104bc57600080fd5b506102966104cb366004612d0d565b611362565b3480156104dc57600080fd5b506102276104eb366004612d91565b61155b565b3480156104fc57600080fd5b506101c261050b366004612638565b611593565b34801561051c57600080fd5b5061022761052b366004612dec565b6116a0565b34801561053c57600080fd5b5061029661054b366004612e16565b6116b2565b34801561055c57600080fd5b506102966040516526a4a72a22a960d11b60208201526026016040516020818303038152906040528051906020012081565b34801561059a57600080fd5b506102276105a9366004612811565b611708565b3480156105ba57600080fd5b506101986105c9366004612e6c565b611724565b60006105d982611752565b92915050565b6060606580546105ee90612e96565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90612e96565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c82611777565b506000908152606960205260409020546001600160a01b031690565b60006106a382610ea9565b9050806001600160a01b0316836001600160a01b0316036107155760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061073157506107318133611724565b6107a35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161070c565b6107ad838361179c565b505050565b6107ba612502565b600082815261012d60209081526040918290208251608081018452815463ffffffff81168252600160201b900461ffff1692810192909252600181018054929391929184019161080990612e96565b80601f016020809104026020016040519081016040528092919081815260200182805461083590612e96565b80156108825780601f1061085757610100808354040283529160200191610882565b820191906000526020600020905b81548152906001019060200180831161086557829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610a045760008481526020908190206040805160a08101825260048602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061091190612e96565b80601f016020809104026020016040519081016040528092919081815260200182805461093d90612e96565b801561098a5780601f1061095f5761010080835404028352916020019161098a565b820191906000526020600020905b81548152906001019060200180831161096d57829003601f168201915b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156109ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109ce575b505050505081525050815260200190600101906108b0565b505050915250909392505050565b610a1c338261180a565b610a385760405162461bcd60e51b815260040161070c90612eca565b6107ad838383611869565b60009081526097602052604090206001015490565b610a6182610a43565b610a6a816119bb565b6107ad83836119c5565b6001600160a01b0381163314610ae45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161070c565b610aee8282611a4b565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3a5760405162461bcd60e51b815260040161070c90612f17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6c611ab2565b6001600160a01b031614610b925760405162461bcd60e51b815260040161070c90612f51565b610b9b81611ace565b60408051600080825260208201909252610bb791839190611aff565b50565b6107ad8383836040518060200160405280600081525061155b565b600054610100900460ff1615808015610bf55750600054600160ff909116105b80610c165750610c0430611c6a565b158015610c16575060005460ff166001145b610c795760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161070c565b6000805460ff191660011790558015610c9c576000805461ff0019166101001790555b610ca68383611c79565b610cb1600033611caa565b80156107ad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b604051674d414e414745525f60c01b60208201526001600160e01b031960e083901b166028820152600090602c01604051602081830303815290604052805190602001209050919050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d8e5760405162461bcd60e51b815260040161070c90612f17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dc0611ab2565b6001600160a01b031614610de65760405162461bcd60e51b815260040161070c90612f51565b610def82611ace565b610aee82826001611aff565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e965760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161070c565b5060008051602061342583398151915290565b600080610eb583611cb4565b90506001600160a01b0381166105d95760405162461bcd60e51b815260040161070c90612f8b565b6040805160a0810182526000808252602082018190529181019190915260608082018190526080820152600083815261012d60205260409020600201805483908110610f2b57610f2b612fbd565b60009182526020918290206040805160a0810182526004909302909101805461ffff8116845263ffffffff620100009091041693830193909352600183015490820152600282018054919291606084019190610f8690612e96565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb290612e96565b8015610fff5780601f10610fd457610100808354040283529160200191610fff565b820191906000526020600020905b815481529060010190602001808311610fe257829003601f168201915b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561106157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611043575b505050505081525050905092915050565b60006001600160a01b0382166110dc5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161070c565b506001600160a01b031660009081526068602052604090205490565b611100612502565b61110983611777565b604051839061111c90849060200161277e565b604051602081830303815290604052805190602001201461117f5781604051602001611148919061277e565b60408051808303601f1901815290829052805160209091012063b2c999af60e01b825260048201526024810184905260440161070c565b50919050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060606680546105ee90612e96565b606061012d6000838152602001908152602001600020600201805480602002602001604051908101604052809291908181526020016000905b8282101561134c5760008481526020908190206040805160a08101825260048602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061125990612e96565b80601f016020809104026020016040519081016040528092919081815260200182805461128590612e96565b80156112d25780601f106112a7576101008083540402835291602001916112d2565b820191906000526020600020905b8154815290600101906020018083116112b557829003601f168201915b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561133457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611316575b505050505081525050815260200190600101906111f8565b505050509050919050565b610aee338383611ccf565b825160009063ffffffff811615801590611389575061138961138382610cfb565b33611185565b8061139a575061139a600033611185565b15156000036113be5780604051632aefbcbd60e21b815260040161070c9190612fd3565b845163ffffffff166000036113e657604051630649917760e11b815260040160405180910390fd5b6000856040516020016113f9919061277e565b6040516020818303038152906040528051906020012090508060001c9250841561154057600083815261012d6020526040908190209087015160018201906114419082613032565b5086518154602089015161ffff16600160201b0265ffffffffffff1990911663ffffffff9092169190911717815560005b87606001515181101561153d57816002018860600151828151811061149957611499612fbd565b602090810291909101810151825460018181018555600094855293839020825160049092020180549383015163ffffffff16620100000265ffffffffffff1990941661ffff909216919091179290921782556040810151928201929092556060820151600282019061150b9082613032565b5060808201518051611527916003840191602090910190612528565b505050808061153590613107565b915050611472565b50505b6115508787604001518387611d99565b505050949350505050565b611565338361180a565b6115815760405162461bcd60e51b815260040161070c90612eca565b61158d84848484611dc3565b50505050565b606061159e82611777565b60006115b560408051602081019091526000815290565b9050600081511161166057600083815261012d6020526040902060010180546115dd90612e96565b80601f016020809104026020016040519081016040528092919081815260200182805461160990612e96565b80156116565780601f1061162b57610100808354040283529160200191611656565b820191906000526020600020905b81548152906001019060200180831161163957829003601f168201915b5050505050611699565b8061012d6000858152602001908152602001600020600101604051602001611689929190613120565b6040516020818303038152906040525b9392505050565b610aee6116ac82610cfb565b83610a58565b6000806116c0600033611185565b15156000036116e45780604051632aefbcbd60e21b815260040161070c9190612fd3565b6116ff85858560405180602001604052806000815250611d99565b95945050505050565b61171182610a43565b61171a816119bb565b6107ad8383611a4b565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216637965db0b60e01b14806105d957506105d982611df6565b61178081611e46565b610bb75760405162461bcd60e51b815260040161070c90612f8b565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117d182610ea9565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061181683610ea9565b9050806001600160a01b0316846001600160a01b0316148061183d575061183d8185611724565b806118615750836001600160a01b031661185684610671565b6001600160a01b0316145b949350505050565b826001600160a01b031661187c82610ea9565b6001600160a01b0316146118a25760405162461bcd60e51b815260040161070c906131ad565b6001600160a01b0382166119045760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070c565b826001600160a01b031661191782610ea9565b6001600160a01b03161461193d5760405162461bcd60e51b815260040161070c906131ad565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652606885528386208054600019019055908716808652838620805460010190558686526067909452828520805490921684179091559051849360008051602061346c83398151915291a4505050565b610bb78133611e63565b6119cf8282611185565b610aee5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a073390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611a558282611185565b15610aee5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020613425833981519152546001600160a01b031690565b6000611adb600033611185565b1515600003610aee5780604051632aefbcbd60e21b815260040161070c9190612fd3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b32576107ad83611ebc565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b8c575060408051601f3d908101601f19168201909252611b89918101906131f2565b60015b611bef5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161070c565b6000805160206134258339815191528114611c5e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161070c565b506107ad838383611f56565b6001600160a01b03163b151590565b600054610100900460ff16611ca05760405162461bcd60e51b815260040161070c9061320b565b610aee8282611f7b565b610aee82826119c5565b6000908152606760205260409020546001600160a01b031690565b816001600160a01b0316836001600160a01b031603611d2c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604482015260640161070c565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600082815261012d602052604090208290600101611db78582613032565b50611861858284611fbb565b611dce848484611869565b611dda84848484611fee565b61158d5760405162461bcd60e51b815260040161070c90613256565b60006001600160e01b031982166380ac58cd60e01b1480611e2757506001600160e01b03198216635b5e139f60e01b145b806105d957506301ffc9a760e01b6001600160e01b03198316146105d9565b600080611e5283611cb4565b6001600160a01b0316141592915050565b611e6d8282611185565b610aee57611e7a816120f3565b611e85836020612105565b604051602001611e969291906132a8565b60408051601f198184030181529082905262461bcd60e51b825261070c91600401612625565b611ec581611c6a565b611f275760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161070c565b60008051602061342583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f5f836122a0565b600082511180611f6c5750805b156107ad5761158d83836122e0565b600054610100900460ff16611fa25760405162461bcd60e51b815260040161070c9061320b565b6065611fae8382613032565b5060666107ad8282613032565b611fc583836123c9565b611fd26000848484611fee565b6107ad5760405162461bcd60e51b815260040161070c90613256565b6000612002846001600160a01b0316611c6a565b156120eb57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612039903390899088908890600401613317565b6020604051808303816000875af1925050508015612074575060408051601f3d908101601f1916820190925261207191810190613354565b60015b6120d1573d8080156120a2576040519150601f19603f3d011682016040523d82523d6000602084013e6120a7565b606091505b5080516000036120c95760405162461bcd60e51b815260040161070c90613256565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611861565b506001611861565b60606105d96001600160a01b03831660145b60606000612114836002613371565b61211f906002613388565b6001600160401b0381111561213657612136612858565b6040519080825280601f01601f191660200182016040528015612160576020820181803683370190505b509050600360fc1b8160008151811061217b5761217b612fbd565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121aa576121aa612fbd565b60200101906001600160f81b031916908160001a90535060006121ce846002613371565b6121d9906001613388565b90505b6001811115612251576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061220d5761220d612fbd565b1a60f81b82828151811061222357612223612fbd565b60200101906001600160f81b031916908160001a90535060049490941c9361224a8161339b565b90506121dc565b5083156116995760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161070c565b6122a981611ebc565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606122eb83611c6a565b6123465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161070c565b600080846001600160a01b03168460405161236191906133b2565b600060405180830381855af49150503d806000811461239c576040519150601f19603f3d011682016040523d82523d6000602084013e6123a1565b606091505b50915091506116ff8282604051806060016040528060278152602001613445602791396124c4565b6001600160a01b03821661241f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161070c565b61242881611e46565b156124455760405162461bcd60e51b815260040161070c906133ce565b61244e81611e46565b1561246b5760405162461bcd60e51b815260040161070c906133ce565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b03191684179055518392919060008051602061346c833981519152908290a45050565b606083156124d3575081611699565b61169983838151156124e85781518083602001fd5b8060405162461bcd60e51b815260040161070c9190612625565b604080516080810182526000808252602082015260609181018290528181019190915290565b82805482825590600052602060002090810192821561257d579160200282015b8281111561257d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612548565b5061258992915061258d565b5090565b5b80821115612589576000815560010161258e565b6001600160e01b031981168114610bb757600080fd5b6000602082840312156125ca57600080fd5b8135611699816125a2565b60005b838110156125f05781810151838201526020016125d8565b50506000910152565b600081518084526126118160208601602086016125d5565b601f01601f19169290920160200192915050565b60208152600061169960208301846125f9565b60006020828403121561264a57600080fd5b5035919050565b80356001600160a01b038116811461266857600080fd5b919050565b6000806040838503121561268057600080fd5b61268983612651565b946020939093013593505050565b61ffff81511682526000602063ffffffff81840151168185015260408301516040850152606083015160a060608601526126d460a08601826125f9565b60808581015187830391880191909152805180835290840192506000918401905b8083101561271e5783516001600160a01b031682529284019260019290920191908401906126f5565b509695505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561277157828403895261275f848351612697565b98850198935090840190600101612747565b5091979650505050505050565b6020815263ffffffff825116602082015261ffff602083015116604082015260006040830151608060608401526127b860a08401826125f9565b90506060840151601f198483030160808501526116ff8282612729565b6000806000606084860312156127ea57600080fd5b6127f384612651565b925061280160208501612651565b9150604084013590509250925092565b6000806040838503121561282457600080fd5b8235915061283460208401612651565b90509250929050565b60006020828403121561284f57600080fd5b61169982612651565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171561289057612890612858565b60405290565b60405160a081016001600160401b038111828210171561289057612890612858565b604051601f8201601f191681016001600160401b03811182821017156128e0576128e0612858565b604052919050565b600082601f8301126128f957600080fd5b81356001600160401b0381111561291257612912612858565b612925601f8201601f19166020016128b8565b81815284602083860101111561293a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561296a57600080fd5b82356001600160401b038082111561298157600080fd5b61298d868387016128e8565b935060208501359150808211156129a357600080fd5b506129b0858286016128e8565b9150509250929050565b803563ffffffff8116811461266857600080fd5b6000602082840312156129e057600080fd5b611699826129ba565b600080604083850312156129fc57600080fd5b612a0583612651565b915060208301356001600160401b03811115612a2057600080fd5b6129b0858286016128e8565b60008060408385031215612a3f57600080fd5b50508035926020909101359150565b6020815260006116996020830184612697565b803561ffff8116811461266857600080fd5b60006001600160401b03821115612a8c57612a8c612858565b5060051b60200190565b600060808284031215612aa857600080fd5b612ab061286e565b9050612abb826129ba565b81526020612aca818401612a61565b828201526040838101356001600160401b0380821115612ae957600080fd5b612af5878388016128e8565b838601526060860135915080821115612b0d57600080fd5b818601915086601f830112612b2157600080fd5b8135612b34612b2f82612a73565b6128b8565b81815260059190911b83018501908581019089831115612b5357600080fd5b8685015b83811015612c7157803585811115612b6f5760008081fd5b860160a0818d03601f1901811315612b875760008081fd5b612b8f612896565b612b9a8b8401612a61565b8152612ba78a84016129ba565b8b82015260608301358a820152608083013588811115612bc75760008081fd5b612bd58f8d838701016128e8565b606083015250908201359087821115612bee5760008081fd5b81830192508d603f840112612c0557600091508182fd5b8a8301359150612c17612b2f83612a73565b82815260059290921b83018a01918b8101908f841115612c375760008081fd5b938b01935b83851015612c5c57612c4d85612651565b8252938c0193908c0190612c3c565b60808301525085525050918701918701612b57565b5060608801525094979650505050505050565b60008060408385031215612c9757600080fd5b8235915060208301356001600160401b03811115612cb457600080fd5b6129b085828601612a96565b6020815260006116996020830184612729565b8035801515811461266857600080fd5b60008060408385031215612cf657600080fd5b612cff83612651565b915061283460208401612cd3565b60008060008060808587031215612d2357600080fd5b612d2c85612651565b935060208501356001600160401b0380821115612d4857600080fd5b612d5488838901612a96565b9450612d6260408801612cd3565b93506060870135915080821115612d7857600080fd5b50612d85878288016128e8565b91505092959194509250565b60008060008060808587031215612da757600080fd5b612db085612651565b9350612dbe60208601612651565b92506040850135915060608501356001600160401b03811115612de057600080fd5b612d85878288016128e8565b60008060408385031215612dff57600080fd5b612e0883612651565b9150612834602084016129ba565b600080600060608486031215612e2b57600080fd5b612e3484612651565b925060208401356001600160401b03811115612e4f57600080fd5b612e5b868287016128e8565b925050604084013590509250925092565b60008060408385031215612e7f57600080fd5b612e8883612651565b915061283460208401612651565b600181811c90821680612eaa57607f821691505b60208210810361117f57634e487b7160e01b600052602260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c9082015260008051602061340583398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061340583398151915260408201526b6163746976652070726f787960a01b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b63ffffffff91909116815260200190565b601f8211156107ad57600081815260208120601f850160051c8101602086101561300b5750805b601f850160051c820191505b8181101561302a57828155600101613017565b505050505050565b81516001600160401b0381111561304b5761304b612858565b61305f816130598454612e96565b84612fe4565b602080601f831160018114613094576000841561307c5750858301515b600019600386901b1c1916600185901b17855561302a565b600085815260208120601f198616915b828110156130c3578886015182559484019460019091019084016130a4565b50858210156130e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613119576131196130f1565b5060010190565b60008351602061313382858389016125d5565b81840191506000855461314581612e96565b6001828116801561315d57600181146131725761319e565b60ff198416875282151583028701945061319e565b896000528560002060005b848110156131965781548982015290830190870161317d565b505082870194505b50929998505050505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60006020828403121561320457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516132da8160178501602088016125d5565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161330b8160288401602088016125d5565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061334a908301846125f9565b9695505050505050565b60006020828403121561336657600080fd5b8151611699816125a2565b80820281158282048414176105d9576105d96130f1565b808201808211156105d9576105d96130f1565b6000816133aa576133aa6130f1565b506000190190565b600082516133c48184602087016125d5565b9190910192915050565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b60408201526060019056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220657803c3b3c709d1c560980d0e21b4f6a7befee5ff0583d873a9fc690d235e3264736f6c63430008130033";
1138
+
1139
+ type ProvableNFTConstructorParams =
1140
+ | [signer?: Signer]
1141
+ | ConstructorParameters<typeof ContractFactory>;
1142
+
1143
+ const isSuperArgs = (
1144
+ xs: ProvableNFTConstructorParams
1145
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1146
+
1147
+ export class ProvableNFT__factory extends ContractFactory {
1148
+ constructor(...args: ProvableNFTConstructorParams) {
1149
+ if (isSuperArgs(args)) {
1150
+ super(...args);
1151
+ } else {
1152
+ super(_abi, _bytecode, args[0]);
1153
+ }
1154
+ }
1155
+
1156
+ override deploy(
1157
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1158
+ ): Promise<ProvableNFT> {
1159
+ return super.deploy(overrides || {}) as Promise<ProvableNFT>;
1160
+ }
1161
+ override getDeployTransaction(
1162
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1163
+ ): TransactionRequest {
1164
+ return super.getDeployTransaction(overrides || {});
1165
+ }
1166
+ override attach(address: string): ProvableNFT {
1167
+ return super.attach(address) as ProvableNFT;
1168
+ }
1169
+ override connect(signer: Signer): ProvableNFT__factory {
1170
+ return super.connect(signer) as ProvableNFT__factory;
1171
+ }
1172
+
1173
+ static readonly bytecode = _bytecode;
1174
+ static readonly abi = _abi;
1175
+ static createInterface(): ProvableNFTInterface {
1176
+ return new utils.Interface(_abi) as ProvableNFTInterface;
1177
+ }
1178
+ static connect(
1179
+ address: string,
1180
+ signerOrProvider: Signer | Provider
1181
+ ): ProvableNFT {
1182
+ return new Contract(address, _abi, signerOrProvider) as ProvableNFT;
1183
+ }
1184
+ }