@lukso/lsp23-contracts 0.15.0-rc.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.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # LSP23 Linked Contracts Factory · [![npm version](https://img.shields.io/npm/v/@lukso/lsp23-contracts.svg?style=flat)](https://www.npmjs.com/package/@lukso/lsp23-contracts)
2
+
3
+ Package for the LSP23 Linked Contracts Factory.
@@ -0,0 +1,34 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IPostDeploymentModule",
4
+ "sourceName": "contracts/IPostDeploymentModule.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "primaryContract",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "secondaryContract",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "bytes",
20
+ "name": "calldataToPostDeploymentModule",
21
+ "type": "bytes"
22
+ }
23
+ ],
24
+ "name": "executePostDeployment",
25
+ "outputs": [],
26
+ "stateMutability": "nonpayable",
27
+ "type": "function"
28
+ }
29
+ ],
30
+ "bytecode": "0x",
31
+ "deployedBytecode": "0x",
32
+ "linkReferences": {},
33
+ "deployedLinkReferences": {}
34
+ }
@@ -0,0 +1,544 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LSP23LinkedContractsFactory",
4
+ "sourceName": "contracts/LSP23LinkedContractsFactory.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "InvalidValueSum",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "bytes",
15
+ "name": "errorData",
16
+ "type": "bytes"
17
+ }
18
+ ],
19
+ "name": "PrimaryContractProxyInitFailureError",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "bytes",
26
+ "name": "errorData",
27
+ "type": "bytes"
28
+ }
29
+ ],
30
+ "name": "SecondaryContractProxyInitFailureError",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "anonymous": false,
35
+ "inputs": [
36
+ {
37
+ "indexed": true,
38
+ "internalType": "address",
39
+ "name": "primaryContract",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "indexed": true,
44
+ "internalType": "address",
45
+ "name": "secondaryContract",
46
+ "type": "address"
47
+ },
48
+ {
49
+ "components": [
50
+ {
51
+ "internalType": "bytes32",
52
+ "name": "salt",
53
+ "type": "bytes32"
54
+ },
55
+ {
56
+ "internalType": "uint256",
57
+ "name": "fundingAmount",
58
+ "type": "uint256"
59
+ },
60
+ {
61
+ "internalType": "bytes",
62
+ "name": "creationBytecode",
63
+ "type": "bytes"
64
+ }
65
+ ],
66
+ "indexed": false,
67
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeployment",
68
+ "name": "primaryContractDeployment",
69
+ "type": "tuple"
70
+ },
71
+ {
72
+ "components": [
73
+ {
74
+ "internalType": "uint256",
75
+ "name": "fundingAmount",
76
+ "type": "uint256"
77
+ },
78
+ {
79
+ "internalType": "bytes",
80
+ "name": "creationBytecode",
81
+ "type": "bytes"
82
+ },
83
+ {
84
+ "internalType": "bool",
85
+ "name": "addPrimaryContractAddress",
86
+ "type": "bool"
87
+ },
88
+ {
89
+ "internalType": "bytes",
90
+ "name": "extraConstructorParams",
91
+ "type": "bytes"
92
+ }
93
+ ],
94
+ "indexed": false,
95
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeployment",
96
+ "name": "secondaryContractDeployment",
97
+ "type": "tuple"
98
+ },
99
+ {
100
+ "indexed": false,
101
+ "internalType": "address",
102
+ "name": "postDeploymentModule",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "indexed": false,
107
+ "internalType": "bytes",
108
+ "name": "postDeploymentModuleCalldata",
109
+ "type": "bytes"
110
+ }
111
+ ],
112
+ "name": "DeployedContracts",
113
+ "type": "event"
114
+ },
115
+ {
116
+ "anonymous": false,
117
+ "inputs": [
118
+ {
119
+ "indexed": true,
120
+ "internalType": "address",
121
+ "name": "primaryContract",
122
+ "type": "address"
123
+ },
124
+ {
125
+ "indexed": true,
126
+ "internalType": "address",
127
+ "name": "secondaryContract",
128
+ "type": "address"
129
+ },
130
+ {
131
+ "components": [
132
+ {
133
+ "internalType": "bytes32",
134
+ "name": "salt",
135
+ "type": "bytes32"
136
+ },
137
+ {
138
+ "internalType": "uint256",
139
+ "name": "fundingAmount",
140
+ "type": "uint256"
141
+ },
142
+ {
143
+ "internalType": "address",
144
+ "name": "implementationContract",
145
+ "type": "address"
146
+ },
147
+ {
148
+ "internalType": "bytes",
149
+ "name": "initializationCalldata",
150
+ "type": "bytes"
151
+ }
152
+ ],
153
+ "indexed": false,
154
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeploymentInit",
155
+ "name": "primaryContractDeploymentInit",
156
+ "type": "tuple"
157
+ },
158
+ {
159
+ "components": [
160
+ {
161
+ "internalType": "uint256",
162
+ "name": "fundingAmount",
163
+ "type": "uint256"
164
+ },
165
+ {
166
+ "internalType": "address",
167
+ "name": "implementationContract",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "internalType": "bytes",
172
+ "name": "initializationCalldata",
173
+ "type": "bytes"
174
+ },
175
+ {
176
+ "internalType": "bool",
177
+ "name": "addPrimaryContractAddress",
178
+ "type": "bool"
179
+ },
180
+ {
181
+ "internalType": "bytes",
182
+ "name": "extraInitializationParams",
183
+ "type": "bytes"
184
+ }
185
+ ],
186
+ "indexed": false,
187
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeploymentInit",
188
+ "name": "secondaryContractDeploymentInit",
189
+ "type": "tuple"
190
+ },
191
+ {
192
+ "indexed": false,
193
+ "internalType": "address",
194
+ "name": "postDeploymentModule",
195
+ "type": "address"
196
+ },
197
+ {
198
+ "indexed": false,
199
+ "internalType": "bytes",
200
+ "name": "postDeploymentModuleCalldata",
201
+ "type": "bytes"
202
+ }
203
+ ],
204
+ "name": "DeployedERC1167Proxies",
205
+ "type": "event"
206
+ },
207
+ {
208
+ "inputs": [
209
+ {
210
+ "components": [
211
+ {
212
+ "internalType": "bytes32",
213
+ "name": "salt",
214
+ "type": "bytes32"
215
+ },
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "fundingAmount",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "internalType": "bytes",
223
+ "name": "creationBytecode",
224
+ "type": "bytes"
225
+ }
226
+ ],
227
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeployment",
228
+ "name": "primaryContractDeployment",
229
+ "type": "tuple"
230
+ },
231
+ {
232
+ "components": [
233
+ {
234
+ "internalType": "uint256",
235
+ "name": "fundingAmount",
236
+ "type": "uint256"
237
+ },
238
+ {
239
+ "internalType": "bytes",
240
+ "name": "creationBytecode",
241
+ "type": "bytes"
242
+ },
243
+ {
244
+ "internalType": "bool",
245
+ "name": "addPrimaryContractAddress",
246
+ "type": "bool"
247
+ },
248
+ {
249
+ "internalType": "bytes",
250
+ "name": "extraConstructorParams",
251
+ "type": "bytes"
252
+ }
253
+ ],
254
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeployment",
255
+ "name": "secondaryContractDeployment",
256
+ "type": "tuple"
257
+ },
258
+ {
259
+ "internalType": "address",
260
+ "name": "postDeploymentModule",
261
+ "type": "address"
262
+ },
263
+ {
264
+ "internalType": "bytes",
265
+ "name": "postDeploymentModuleCalldata",
266
+ "type": "bytes"
267
+ }
268
+ ],
269
+ "name": "computeAddresses",
270
+ "outputs": [
271
+ {
272
+ "internalType": "address",
273
+ "name": "primaryContractAddress",
274
+ "type": "address"
275
+ },
276
+ {
277
+ "internalType": "address",
278
+ "name": "secondaryContractAddress",
279
+ "type": "address"
280
+ }
281
+ ],
282
+ "stateMutability": "view",
283
+ "type": "function"
284
+ },
285
+ {
286
+ "inputs": [
287
+ {
288
+ "components": [
289
+ {
290
+ "internalType": "bytes32",
291
+ "name": "salt",
292
+ "type": "bytes32"
293
+ },
294
+ {
295
+ "internalType": "uint256",
296
+ "name": "fundingAmount",
297
+ "type": "uint256"
298
+ },
299
+ {
300
+ "internalType": "address",
301
+ "name": "implementationContract",
302
+ "type": "address"
303
+ },
304
+ {
305
+ "internalType": "bytes",
306
+ "name": "initializationCalldata",
307
+ "type": "bytes"
308
+ }
309
+ ],
310
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeploymentInit",
311
+ "name": "primaryContractDeploymentInit",
312
+ "type": "tuple"
313
+ },
314
+ {
315
+ "components": [
316
+ {
317
+ "internalType": "uint256",
318
+ "name": "fundingAmount",
319
+ "type": "uint256"
320
+ },
321
+ {
322
+ "internalType": "address",
323
+ "name": "implementationContract",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "internalType": "bytes",
328
+ "name": "initializationCalldata",
329
+ "type": "bytes"
330
+ },
331
+ {
332
+ "internalType": "bool",
333
+ "name": "addPrimaryContractAddress",
334
+ "type": "bool"
335
+ },
336
+ {
337
+ "internalType": "bytes",
338
+ "name": "extraInitializationParams",
339
+ "type": "bytes"
340
+ }
341
+ ],
342
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeploymentInit",
343
+ "name": "secondaryContractDeploymentInit",
344
+ "type": "tuple"
345
+ },
346
+ {
347
+ "internalType": "address",
348
+ "name": "postDeploymentModule",
349
+ "type": "address"
350
+ },
351
+ {
352
+ "internalType": "bytes",
353
+ "name": "postDeploymentModuleCalldata",
354
+ "type": "bytes"
355
+ }
356
+ ],
357
+ "name": "computeERC1167Addresses",
358
+ "outputs": [
359
+ {
360
+ "internalType": "address",
361
+ "name": "primaryContractAddress",
362
+ "type": "address"
363
+ },
364
+ {
365
+ "internalType": "address",
366
+ "name": "secondaryContractAddress",
367
+ "type": "address"
368
+ }
369
+ ],
370
+ "stateMutability": "view",
371
+ "type": "function"
372
+ },
373
+ {
374
+ "inputs": [
375
+ {
376
+ "components": [
377
+ {
378
+ "internalType": "bytes32",
379
+ "name": "salt",
380
+ "type": "bytes32"
381
+ },
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "fundingAmount",
385
+ "type": "uint256"
386
+ },
387
+ {
388
+ "internalType": "bytes",
389
+ "name": "creationBytecode",
390
+ "type": "bytes"
391
+ }
392
+ ],
393
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeployment",
394
+ "name": "primaryContractDeployment",
395
+ "type": "tuple"
396
+ },
397
+ {
398
+ "components": [
399
+ {
400
+ "internalType": "uint256",
401
+ "name": "fundingAmount",
402
+ "type": "uint256"
403
+ },
404
+ {
405
+ "internalType": "bytes",
406
+ "name": "creationBytecode",
407
+ "type": "bytes"
408
+ },
409
+ {
410
+ "internalType": "bool",
411
+ "name": "addPrimaryContractAddress",
412
+ "type": "bool"
413
+ },
414
+ {
415
+ "internalType": "bytes",
416
+ "name": "extraConstructorParams",
417
+ "type": "bytes"
418
+ }
419
+ ],
420
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeployment",
421
+ "name": "secondaryContractDeployment",
422
+ "type": "tuple"
423
+ },
424
+ {
425
+ "internalType": "address",
426
+ "name": "postDeploymentModule",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "internalType": "bytes",
431
+ "name": "postDeploymentModuleCalldata",
432
+ "type": "bytes"
433
+ }
434
+ ],
435
+ "name": "deployContracts",
436
+ "outputs": [
437
+ {
438
+ "internalType": "address",
439
+ "name": "primaryContractAddress",
440
+ "type": "address"
441
+ },
442
+ {
443
+ "internalType": "address",
444
+ "name": "secondaryContractAddress",
445
+ "type": "address"
446
+ }
447
+ ],
448
+ "stateMutability": "payable",
449
+ "type": "function"
450
+ },
451
+ {
452
+ "inputs": [
453
+ {
454
+ "components": [
455
+ {
456
+ "internalType": "bytes32",
457
+ "name": "salt",
458
+ "type": "bytes32"
459
+ },
460
+ {
461
+ "internalType": "uint256",
462
+ "name": "fundingAmount",
463
+ "type": "uint256"
464
+ },
465
+ {
466
+ "internalType": "address",
467
+ "name": "implementationContract",
468
+ "type": "address"
469
+ },
470
+ {
471
+ "internalType": "bytes",
472
+ "name": "initializationCalldata",
473
+ "type": "bytes"
474
+ }
475
+ ],
476
+ "internalType": "struct ILSP23LinkedContractsFactory.PrimaryContractDeploymentInit",
477
+ "name": "primaryContractDeploymentInit",
478
+ "type": "tuple"
479
+ },
480
+ {
481
+ "components": [
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "fundingAmount",
485
+ "type": "uint256"
486
+ },
487
+ {
488
+ "internalType": "address",
489
+ "name": "implementationContract",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "internalType": "bytes",
494
+ "name": "initializationCalldata",
495
+ "type": "bytes"
496
+ },
497
+ {
498
+ "internalType": "bool",
499
+ "name": "addPrimaryContractAddress",
500
+ "type": "bool"
501
+ },
502
+ {
503
+ "internalType": "bytes",
504
+ "name": "extraInitializationParams",
505
+ "type": "bytes"
506
+ }
507
+ ],
508
+ "internalType": "struct ILSP23LinkedContractsFactory.SecondaryContractDeploymentInit",
509
+ "name": "secondaryContractDeploymentInit",
510
+ "type": "tuple"
511
+ },
512
+ {
513
+ "internalType": "address",
514
+ "name": "postDeploymentModule",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "internalType": "bytes",
519
+ "name": "postDeploymentModuleCalldata",
520
+ "type": "bytes"
521
+ }
522
+ ],
523
+ "name": "deployERC1167Proxies",
524
+ "outputs": [
525
+ {
526
+ "internalType": "address",
527
+ "name": "primaryContractAddress",
528
+ "type": "address"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "secondaryContractAddress",
533
+ "type": "address"
534
+ }
535
+ ],
536
+ "stateMutability": "payable",
537
+ "type": "function"
538
+ }
539
+ ],
540
+ "bytecode": "0x608060405234801561001057600080fd5b50611247806100206000396000f3fe60806040526004361061003f5760003560e01c80636a66a7531461004457806372b19d361461007b578063754b86b51461009b578063dd5940f3146100ae575b600080fd5b610057610052366004610c0b565b6100ce565b604080516001600160a01b0393841681529290911660208301520160405180910390f35b34801561008757600080fd5b50610057610096366004610c0b565b610204565b6100576100a9366004610cb4565b61028d565b3480156100ba57600080fd5b506100576100c9366004610cb4565b610324565b6000806100e086356020890135610d28565b34146100ff57604051632fd9ca9160e01b815260040160405180910390fd5b61010c878787878761047d565b9150610118868361056c565b9050806001600160a01b0316826001600160a01b03167fe20570ed9bda3b93eea277b4e5d975c8933fd5f85f2c824d0845ae96c55a54fe8989898989604051610165959493929190610de1565b60405180910390a36001600160a01b038516156101fa576040517f28c4d14e0000000000000000000000000000000000000000000000000000000081526001600160a01b038616906328c4d14e906101c7908590859089908990600401610eed565b600060405180830381600087803b1580156101e157600080fd5b505af11580156101f5573d6000803e3d6000fd5b505050505b9550959350505050565b6000806000610216888888888861071a565b905061023161022b60608a0160408b01610f24565b82610795565b92506102806102466040890160208a01610f24565b6040516bffffffffffffffffffffffff19606087901b16602082015260340160405160208183030381529060405280519060200120610795565b9150509550959350505050565b60008061029f86356020890135610d28565b34146102be57604051632fd9ca9160e01b815260040160405180910390fd5b6102cb87878787876107fa565b91506102d78683610867565b9050806001600160a01b0316826001600160a01b03167f0e20ea3d6273aab49a7dabafc15cc94971c12dd63a07185ca810e497e4e87aa68989898989604051610165959493929190610f3f565b60008060006103368888888888610966565b90506103648161034960408b018b610fdf565b604051610357929190611026565b60405180910390206109af565b9250606061037788820160408a01611036565b156103e4576103896020890189610fdf565b604080516001600160a01b03881660208201520160408051601f198184030181529190526103ba60608c018c610fdf565b6040516020016103ce959493929190611075565b6040516020818303038152906040529050610429565b6103f16020890189610fdf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b6040516bffffffffffffffffffffffff19606086901b16602082015261046f906034016040516020818303038152906040528051906020012082805190602001206109af565b925050509550959350505050565b60008061048d878787878761071a565b90506104a86104a26060890160408a01610f24565b826109bc565b91506000806001600160a01b03841660208a01356104c960608c018c610fdf565b6040516104d7929190611026565b60006040518083038185875af1925050503d8060008114610514576040519150601f19603f3d011682016040523d82523d6000602084013e610519565b606091505b50915091508161056057806040517f4364b6ee00000000000000000000000000000000000000000000000000000000815260040161055791906110a9565b60405180910390fd5b50505095945050505050565b60006105bb6105816040850160208601610f24565b6040516bffffffffffffffffffffffff19606086901b166020820152603401604051602081830303815290604052805190602001206109bc565b905060006105cc6040850185610fdf565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610614925050506080850160608601611036565b1561067157604080516001600160a01b038516602082015282910160408051601f1981840301815291905261064c6080870187610fdf565b60405160200161065f94939291906110dc565b60405160208183030381529060405290505b600080836001600160a01b03168660000135846040516106919190611118565b60006040518083038185875af1925050503d80600081146106ce576040519150601f19603f3d011682016040523d82523d6000602084013e6106d3565b606091505b50915091508161071157806040517f9654a85400000000000000000000000000000000000000000000000000000000815260040161055791906110a9565b50505092915050565b6000853561072e6040870160208801610f24565b61073b6040880188610fdf565b61074b60808a0160608b01611036565b61075860808b018b610fdf565b8a8a8a6040516020016107749a99989796959493929190611134565b60405160208183030381529060405280519060200120905095945050505050565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c820120607882015260556043909101206000905b90505b92915050565b60008061080a8787878787610966565b905061085c60208801358261082260408b018b610fdf565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a5992505050565b979650505050505050565b6000806108776020850185610fdf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506108bf925050506060850160408601611036565b1561091c57604080516001600160a01b038516602082015282910160408051601f198184030181529190526108f76060870187610fdf565b60405160200161090a94939291906110dc565b60405160208183030381529060405290505b6040516bffffffffffffffffffffffff19606085901b16602082015261095e908535906034016040516020818303038152906040528051906020012083610a59565b949350505050565b600085356109776020870187610fdf565b6109876060890160408a01611036565b61099460608a018a610fdf565b898989604051602001610774999897969594939291906111a8565b60006107f1838330610b64565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166107f45760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610557565b600083471015610aab5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610557565b8151600003610afc5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610557565b8282516020840186f590506001600160a01b038116610b5d5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610557565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600060808284031215610ba057600080fd5b50919050565b80356001600160a01b0381168114610bbd57600080fd5b919050565b60008083601f840112610bd457600080fd5b50813567ffffffffffffffff811115610bec57600080fd5b602083019150836020828501011115610c0457600080fd5b9250929050565b600080600080600060808688031215610c2357600080fd5b853567ffffffffffffffff80821115610c3b57600080fd5b610c4789838a01610b8e565b96506020880135915080821115610c5d57600080fd5b9087019060a0828a031215610c7157600080fd5b819550610c8060408901610ba6565b94506060880135915080821115610c9657600080fd5b50610ca388828901610bc2565b969995985093965092949392505050565b600080600080600060808688031215610ccc57600080fd5b853567ffffffffffffffff80821115610ce457600080fd5b908701906060828a031215610cf857600080fd5b90955060208701359080821115610d0e57600080fd5b610d1a89838a01610b8e565b9550610c8060408901610ba6565b808201808211156107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000808335601e19843603018112610d7957600080fd5b830160208101925035905067ffffffffffffffff811115610d9957600080fd5b803603821315610c0457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80358015158114610bbd57600080fd5b6080815285356080820152602086013560a08201526000610e0460408801610ba6565b6001600160a01b0380821660c0850152610e2160608a018a610d62565b9250608060e0860152610e3961010086018483610da8565b92505083820360208501528735825280610e5560208a01610ba6565b16602083015250610e696040880188610d62565b60a06040840152610e7e60a084018284610da8565b915050610e8d60608901610dd1565b15156060830152610ea16080890189610d62565b8383036080850152610eb4838284610da8565b9350505050610ece60408401876001600160a01b03169052565b8281036060840152610ee1818587610da8565b98975050505050505050565b60006001600160a01b03808716835280861660208401525060606040830152610f1a606083018486610da8565b9695505050505050565b600060208284031215610f3657600080fd5b6107f182610ba6565b6080815285356080820152602086013560a08201526000610f636040880188610d62565b606060c0850152610f7860e085018284610da8565b915050828103602084015286358152610f946020880188610d62565b60806020840152610fa9608084018284610da8565b915050610fb860408901610dd1565b15156040830152610fcc6060890189610d62565b8383036060850152610eb4838284610da8565b6000808335601e19843603018112610ff657600080fd5b83018035915067ffffffffffffffff82111561101157600080fd5b602001915036819003821315610c0457600080fd5b8183823760009101908152919050565b60006020828403121561104857600080fd5b6107f182610dd1565b60005b8381101561106c578181015183820152602001611054565b50506000910152565b848682376000858201600081528551611092818360208a01611051565b018385823760009301928352509095945050505050565b60208152600082518060208401526110c8816040850160208701611051565b601f01601f19169190910160400192915050565b600085516110ee818460208a01611051565b855190830190611102818360208a01611051565b0183858237600093019283525090949350505050565b6000825161112a818460208701611051565b9190910192915050565b8a815260006001600160a01b03808c16602084015260e0604084015261115e60e084018b8d610da8565b8915156060850152838103608085015261117981898b610da8565b905081871660a085015283810360c0850152611196818688610da8565b9e9d5050505050505050505050505050565b89815260c0602082015260006111c260c083018a8c610da8565b881515604084015282810360608401526111dd81888a610da8565b90506001600160a01b038616608084015282810360a0840152611201818587610da8565b9c9b50505050505050505050505056fea264697066735822122076c67375c86f0b3c97d18b47a3233000537414e8e5ca756699f0df7fc8a5bbc564736f6c63430008110033",
541
+ "deployedBytecode": "0x60806040526004361061003f5760003560e01c80636a66a7531461004457806372b19d361461007b578063754b86b51461009b578063dd5940f3146100ae575b600080fd5b610057610052366004610c0b565b6100ce565b604080516001600160a01b0393841681529290911660208301520160405180910390f35b34801561008757600080fd5b50610057610096366004610c0b565b610204565b6100576100a9366004610cb4565b61028d565b3480156100ba57600080fd5b506100576100c9366004610cb4565b610324565b6000806100e086356020890135610d28565b34146100ff57604051632fd9ca9160e01b815260040160405180910390fd5b61010c878787878761047d565b9150610118868361056c565b9050806001600160a01b0316826001600160a01b03167fe20570ed9bda3b93eea277b4e5d975c8933fd5f85f2c824d0845ae96c55a54fe8989898989604051610165959493929190610de1565b60405180910390a36001600160a01b038516156101fa576040517f28c4d14e0000000000000000000000000000000000000000000000000000000081526001600160a01b038616906328c4d14e906101c7908590859089908990600401610eed565b600060405180830381600087803b1580156101e157600080fd5b505af11580156101f5573d6000803e3d6000fd5b505050505b9550959350505050565b6000806000610216888888888861071a565b905061023161022b60608a0160408b01610f24565b82610795565b92506102806102466040890160208a01610f24565b6040516bffffffffffffffffffffffff19606087901b16602082015260340160405160208183030381529060405280519060200120610795565b9150509550959350505050565b60008061029f86356020890135610d28565b34146102be57604051632fd9ca9160e01b815260040160405180910390fd5b6102cb87878787876107fa565b91506102d78683610867565b9050806001600160a01b0316826001600160a01b03167f0e20ea3d6273aab49a7dabafc15cc94971c12dd63a07185ca810e497e4e87aa68989898989604051610165959493929190610f3f565b60008060006103368888888888610966565b90506103648161034960408b018b610fdf565b604051610357929190611026565b60405180910390206109af565b9250606061037788820160408a01611036565b156103e4576103896020890189610fdf565b604080516001600160a01b03881660208201520160408051601f198184030181529190526103ba60608c018c610fdf565b6040516020016103ce959493929190611075565b6040516020818303038152906040529050610429565b6103f16020890189610fdf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b6040516bffffffffffffffffffffffff19606086901b16602082015261046f906034016040516020818303038152906040528051906020012082805190602001206109af565b925050509550959350505050565b60008061048d878787878761071a565b90506104a86104a26060890160408a01610f24565b826109bc565b91506000806001600160a01b03841660208a01356104c960608c018c610fdf565b6040516104d7929190611026565b60006040518083038185875af1925050503d8060008114610514576040519150601f19603f3d011682016040523d82523d6000602084013e610519565b606091505b50915091508161056057806040517f4364b6ee00000000000000000000000000000000000000000000000000000000815260040161055791906110a9565b60405180910390fd5b50505095945050505050565b60006105bb6105816040850160208601610f24565b6040516bffffffffffffffffffffffff19606086901b166020820152603401604051602081830303815290604052805190602001206109bc565b905060006105cc6040850185610fdf565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610614925050506080850160608601611036565b1561067157604080516001600160a01b038516602082015282910160408051601f1981840301815291905261064c6080870187610fdf565b60405160200161065f94939291906110dc565b60405160208183030381529060405290505b600080836001600160a01b03168660000135846040516106919190611118565b60006040518083038185875af1925050503d80600081146106ce576040519150601f19603f3d011682016040523d82523d6000602084013e6106d3565b606091505b50915091508161071157806040517f9654a85400000000000000000000000000000000000000000000000000000000815260040161055791906110a9565b50505092915050565b6000853561072e6040870160208801610f24565b61073b6040880188610fdf565b61074b60808a0160608b01611036565b61075860808b018b610fdf565b8a8a8a6040516020016107749a99989796959493929190611134565b60405160208183030381529060405280519060200120905095945050505050565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c820120607882015260556043909101206000905b90505b92915050565b60008061080a8787878787610966565b905061085c60208801358261082260408b018b610fdf565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a5992505050565b979650505050505050565b6000806108776020850185610fdf565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293506108bf925050506060850160408601611036565b1561091c57604080516001600160a01b038516602082015282910160408051601f198184030181529190526108f76060870187610fdf565b60405160200161090a94939291906110dc565b60405160208183030381529060405290505b6040516bffffffffffffffffffffffff19606085901b16602082015261095e908535906034016040516020818303038152906040528051906020012083610a59565b949350505050565b600085356109776020870187610fdf565b6109876060890160408a01611036565b61099460608a018a610fdf565b898989604051602001610774999897969594939291906111a8565b60006107f1838330610b64565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166107f45760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610557565b600083471015610aab5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610557565b8151600003610afc5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610557565b8282516020840186f590506001600160a01b038116610b5d5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610557565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600060808284031215610ba057600080fd5b50919050565b80356001600160a01b0381168114610bbd57600080fd5b919050565b60008083601f840112610bd457600080fd5b50813567ffffffffffffffff811115610bec57600080fd5b602083019150836020828501011115610c0457600080fd5b9250929050565b600080600080600060808688031215610c2357600080fd5b853567ffffffffffffffff80821115610c3b57600080fd5b610c4789838a01610b8e565b96506020880135915080821115610c5d57600080fd5b9087019060a0828a031215610c7157600080fd5b819550610c8060408901610ba6565b94506060880135915080821115610c9657600080fd5b50610ca388828901610bc2565b969995985093965092949392505050565b600080600080600060808688031215610ccc57600080fd5b853567ffffffffffffffff80821115610ce457600080fd5b908701906060828a031215610cf857600080fd5b90955060208701359080821115610d0e57600080fd5b610d1a89838a01610b8e565b9550610c8060408901610ba6565b808201808211156107f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000808335601e19843603018112610d7957600080fd5b830160208101925035905067ffffffffffffffff811115610d9957600080fd5b803603821315610c0457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80358015158114610bbd57600080fd5b6080815285356080820152602086013560a08201526000610e0460408801610ba6565b6001600160a01b0380821660c0850152610e2160608a018a610d62565b9250608060e0860152610e3961010086018483610da8565b92505083820360208501528735825280610e5560208a01610ba6565b16602083015250610e696040880188610d62565b60a06040840152610e7e60a084018284610da8565b915050610e8d60608901610dd1565b15156060830152610ea16080890189610d62565b8383036080850152610eb4838284610da8565b9350505050610ece60408401876001600160a01b03169052565b8281036060840152610ee1818587610da8565b98975050505050505050565b60006001600160a01b03808716835280861660208401525060606040830152610f1a606083018486610da8565b9695505050505050565b600060208284031215610f3657600080fd5b6107f182610ba6565b6080815285356080820152602086013560a08201526000610f636040880188610d62565b606060c0850152610f7860e085018284610da8565b915050828103602084015286358152610f946020880188610d62565b60806020840152610fa9608084018284610da8565b915050610fb860408901610dd1565b15156040830152610fcc6060890189610d62565b8383036060850152610eb4838284610da8565b6000808335601e19843603018112610ff657600080fd5b83018035915067ffffffffffffffff82111561101157600080fd5b602001915036819003821315610c0457600080fd5b8183823760009101908152919050565b60006020828403121561104857600080fd5b6107f182610dd1565b60005b8381101561106c578181015183820152602001611054565b50506000910152565b848682376000858201600081528551611092818360208a01611051565b018385823760009301928352509095945050505050565b60208152600082518060208401526110c8816040850160208701611051565b601f01601f19169190910160400192915050565b600085516110ee818460208a01611051565b855190830190611102818360208a01611051565b0183858237600093019283525090949350505050565b6000825161112a818460208701611051565b9190910192915050565b8a815260006001600160a01b03808c16602084015260e0604084015261115e60e084018b8d610da8565b8915156060850152838103608085015261117981898b610da8565b905081871660a085015283810360c0850152611196818688610da8565b9e9d5050505050505050505050505050565b89815260c0602082015260006111c260c083018a8c610da8565b881515604084015282810360608401526111dd81888a610da8565b90506001600160a01b038616608084015282810360a0840152611201818587610da8565b9c9b50505050505050505050505056fea264697066735822122076c67375c86f0b3c97d18b47a3233000537414e8e5ca756699f0df7fc8a5bbc564736f6c63430008110033",
542
+ "linkReferences": {},
543
+ "deployedLinkReferences": {}
544
+ }