@etherisc/gif-next 0.0.2-ed4dd55 → 0.0.2-f619be3-760

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. package/README.md +49 -0
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +35 -9
  4. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +1 -1
  5. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +2 -2
  6. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +84 -8
  8. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +34 -152
  10. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  11. package/artifacts/contracts/components/Pool.sol/Pool.json +146 -13
  12. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  13. package/artifacts/contracts/components/Product.sol/Product.json +148 -15
  14. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +4 -0
  15. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +105 -0
  16. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +4 -0
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +105 -0
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  20. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
  29. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
  33. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
  34. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
  35. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
  36. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
  37. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
  38. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  40. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  42. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +714 -127
  44. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  45. package/artifacts/contracts/instance/Instance.sol/Instance.json +845 -129
  46. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +1 -1
  47. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +1 -1
  48. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +1 -1
  49. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +1 -1
  50. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  51. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  52. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +31 -59
  53. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +103 -6
  55. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +1 -1
  56. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +1 -1
  57. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +34 -8
  58. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  59. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +31 -59
  60. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +50 -3
  62. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +1 -1
  63. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  64. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +134 -0
  65. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +4 -0
  66. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.json +182 -0
  67. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +4 -0
  68. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +221 -0
  69. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  71. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +44 -21
  72. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  73. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +44 -21
  74. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  75. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  76. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +23 -43
  77. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  78. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +28 -35
  79. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +1 -1
  80. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +21 -8
  82. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +1 -1
  83. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +85 -14
  85. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
  86. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.json +10 -0
  87. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
  88. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +490 -0
  89. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  90. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +45 -0
  91. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
  92. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +490 -0
  93. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +4 -0
  94. package/artifacts/contracts/mock/Dip.sol/DIP.json +338 -0
  95. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +4 -0
  96. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +294 -0
  97. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +4 -0
  98. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +384 -0
  99. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +4 -0
  100. package/artifacts/contracts/mock/Usdc.sol/USDC.json +338 -0
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  103. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  104. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +1 -1
  106. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +8 -8
  107. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +20 -111
  109. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +1 -1
  110. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registerable.json +9 -9
  112. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/Registry.sol/Registry.json +66 -115
  114. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +1 -1
  115. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +2 -2
  116. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  117. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  118. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  119. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  120. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  121. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +85 -3
  122. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  123. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  124. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  125. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  126. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  127. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +174 -0
  128. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +4 -0
  129. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +479 -0
  130. package/contracts/components/Component.sol +39 -24
  131. package/contracts/components/IPool.sol +9 -3
  132. package/contracts/components/IProduct.sol +11 -6
  133. package/contracts/components/Pool.sol +37 -14
  134. package/contracts/components/Product.sol +48 -24
  135. package/contracts/experiment/errors/Require.sol +38 -0
  136. package/contracts/experiment/errors/Revert.sol +44 -0
  137. package/contracts/experiment/inheritance/A.sol +8 -11
  138. package/contracts/experiment/inheritance/B.sol +10 -5
  139. package/contracts/experiment/inheritance/C.sol +11 -5
  140. package/contracts/experiment/inheritance/IA.sol +2 -7
  141. package/contracts/experiment/inheritance/IB.sol +3 -2
  142. package/contracts/experiment/inheritance/IC.sol +4 -3
  143. package/contracts/experiment/statemachine/Dummy.sol +27 -0
  144. package/contracts/experiment/statemachine/ISM.sol +25 -0
  145. package/contracts/experiment/statemachine/README.md +112 -0
  146. package/contracts/experiment/statemachine/SM.sol +57 -0
  147. package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
  148. package/contracts/experiment/types/TypeA.sol +14 -9
  149. package/contracts/experiment/types/TypeB.sol +14 -9
  150. package/contracts/instance/IInstance.sol +8 -3
  151. package/contracts/instance/Instance.sol +24 -15
  152. package/contracts/instance/access/Access.sol +63 -116
  153. package/contracts/instance/access/IAccess.sol +28 -48
  154. package/contracts/instance/component/ComponentModule.sol +162 -147
  155. package/contracts/instance/component/IComponent.sol +41 -61
  156. package/contracts/instance/lifecycle/ILifecycle.sol +47 -0
  157. package/contracts/instance/lifecycle/LifecycleModule.sol +88 -0
  158. package/contracts/instance/policy/IPolicy.sol +19 -35
  159. package/contracts/instance/policy/PolicyModule.sol +52 -44
  160. package/contracts/instance/pool/IPoolModule.sol +9 -26
  161. package/contracts/instance/pool/PoolModule.sol +43 -45
  162. package/contracts/instance/product/IProductService.sol +10 -19
  163. package/contracts/instance/product/ProductService.sol +86 -55
  164. package/contracts/instance/treasury/ITreasury.sol +91 -0
  165. package/contracts/instance/treasury/TokenHandler.sol +24 -0
  166. package/contracts/instance/treasury/TreasuryModule.sol +168 -0
  167. package/contracts/mock/Dip.sol +26 -0
  168. package/contracts/mock/TestPool.sol +16 -0
  169. package/contracts/mock/TestProduct.sol +39 -0
  170. package/contracts/mock/Usdc.sol +26 -0
  171. package/contracts/registry/ChainNft.sol +23 -61
  172. package/contracts/registry/IChainNft.sol +10 -7
  173. package/contracts/registry/IRegistry.sol +40 -41
  174. package/contracts/registry/Registry.sol +73 -67
  175. package/contracts/types/Blocknumber.sol +118 -0
  176. package/contracts/types/ChainId.sol +24 -10
  177. package/contracts/types/Fee.sol +32 -0
  178. package/contracts/types/NftId.sol +36 -10
  179. package/contracts/types/ObjectType.sol +107 -0
  180. package/contracts/types/StateId.sol +91 -0
  181. package/contracts/types/Timestamp.sol +102 -0
  182. package/contracts/types/UFixed.sol +210 -0
  183. package/package.json +14 -5
@@ -0,0 +1,384 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TestProduct",
4
+ "sourceName": "contracts/mock/TestProduct.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "instance",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "token",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "pool",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "components": [
30
+ {
31
+ "internalType": "UFixed",
32
+ "name": "fractionalFee",
33
+ "type": "uint256"
34
+ },
35
+ {
36
+ "internalType": "uint256",
37
+ "name": "fixedFee",
38
+ "type": "uint256"
39
+ }
40
+ ],
41
+ "internalType": "struct Fee",
42
+ "name": "policyFee",
43
+ "type": "tuple"
44
+ }
45
+ ],
46
+ "stateMutability": "nonpayable",
47
+ "type": "constructor"
48
+ },
49
+ {
50
+ "anonymous": false,
51
+ "inputs": [
52
+ {
53
+ "indexed": false,
54
+ "internalType": "uint256",
55
+ "name": "idx",
56
+ "type": "uint256"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "address",
61
+ "name": "module",
62
+ "type": "address"
63
+ },
64
+ {
65
+ "indexed": false,
66
+ "internalType": "string",
67
+ "name": "comment",
68
+ "type": "string"
69
+ }
70
+ ],
71
+ "name": "LogDebug",
72
+ "type": "event"
73
+ },
74
+ {
75
+ "inputs": [
76
+ {
77
+ "internalType": "uint256",
78
+ "name": "sumInsuredAmount",
79
+ "type": "uint256"
80
+ },
81
+ {
82
+ "internalType": "uint256",
83
+ "name": "premiumAmount",
84
+ "type": "uint256"
85
+ },
86
+ {
87
+ "internalType": "uint256",
88
+ "name": "lifetime",
89
+ "type": "uint256"
90
+ }
91
+ ],
92
+ "name": "applyForPolicy",
93
+ "outputs": [
94
+ {
95
+ "internalType": "NftId",
96
+ "name": "nftId",
97
+ "type": "uint96"
98
+ }
99
+ ],
100
+ "stateMutability": "nonpayable",
101
+ "type": "function"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "NftId",
107
+ "name": "nftId",
108
+ "type": "uint96"
109
+ }
110
+ ],
111
+ "name": "collectPremium",
112
+ "outputs": [],
113
+ "stateMutability": "nonpayable",
114
+ "type": "function"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "getData",
119
+ "outputs": [
120
+ {
121
+ "internalType": "bytes",
122
+ "name": "data",
123
+ "type": "bytes"
124
+ }
125
+ ],
126
+ "stateMutability": "view",
127
+ "type": "function"
128
+ },
129
+ {
130
+ "inputs": [],
131
+ "name": "getInitialOwner",
132
+ "outputs": [
133
+ {
134
+ "internalType": "address",
135
+ "name": "deployer",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "stateMutability": "view",
140
+ "type": "function"
141
+ },
142
+ {
143
+ "inputs": [],
144
+ "name": "getInstance",
145
+ "outputs": [
146
+ {
147
+ "internalType": "contract IInstance",
148
+ "name": "instance",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "stateMutability": "view",
153
+ "type": "function"
154
+ },
155
+ {
156
+ "inputs": [],
157
+ "name": "getNftId",
158
+ "outputs": [
159
+ {
160
+ "internalType": "NftId",
161
+ "name": "nftId",
162
+ "type": "uint96"
163
+ }
164
+ ],
165
+ "stateMutability": "view",
166
+ "type": "function"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "getOwner",
171
+ "outputs": [
172
+ {
173
+ "internalType": "address",
174
+ "name": "owner",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "stateMutability": "view",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "getParentNftId",
184
+ "outputs": [
185
+ {
186
+ "internalType": "NftId",
187
+ "name": "",
188
+ "type": "uint96"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [],
196
+ "name": "getPolicyFee",
197
+ "outputs": [
198
+ {
199
+ "components": [
200
+ {
201
+ "internalType": "UFixed",
202
+ "name": "fractionalFee",
203
+ "type": "uint256"
204
+ },
205
+ {
206
+ "internalType": "uint256",
207
+ "name": "fixedFee",
208
+ "type": "uint256"
209
+ }
210
+ ],
211
+ "internalType": "struct Fee",
212
+ "name": "policyFee",
213
+ "type": "tuple"
214
+ }
215
+ ],
216
+ "stateMutability": "view",
217
+ "type": "function"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "getPoolNftId",
222
+ "outputs": [
223
+ {
224
+ "internalType": "NftId",
225
+ "name": "poolNftId",
226
+ "type": "uint96"
227
+ }
228
+ ],
229
+ "stateMutability": "view",
230
+ "type": "function"
231
+ },
232
+ {
233
+ "inputs": [],
234
+ "name": "getProcessingFee",
235
+ "outputs": [
236
+ {
237
+ "components": [
238
+ {
239
+ "internalType": "UFixed",
240
+ "name": "fractionalFee",
241
+ "type": "uint256"
242
+ },
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "fixedFee",
246
+ "type": "uint256"
247
+ }
248
+ ],
249
+ "internalType": "struct Fee",
250
+ "name": "processingFee",
251
+ "type": "tuple"
252
+ }
253
+ ],
254
+ "stateMutability": "view",
255
+ "type": "function"
256
+ },
257
+ {
258
+ "inputs": [],
259
+ "name": "getRegistry",
260
+ "outputs": [
261
+ {
262
+ "internalType": "contract IRegistry",
263
+ "name": "registry",
264
+ "type": "address"
265
+ }
266
+ ],
267
+ "stateMutability": "view",
268
+ "type": "function"
269
+ },
270
+ {
271
+ "inputs": [],
272
+ "name": "getToken",
273
+ "outputs": [
274
+ {
275
+ "internalType": "contract IERC20Metadata",
276
+ "name": "token",
277
+ "type": "address"
278
+ }
279
+ ],
280
+ "stateMutability": "view",
281
+ "type": "function"
282
+ },
283
+ {
284
+ "inputs": [],
285
+ "name": "getType",
286
+ "outputs": [
287
+ {
288
+ "internalType": "ObjectType",
289
+ "name": "",
290
+ "type": "uint8"
291
+ }
292
+ ],
293
+ "stateMutability": "pure",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [],
298
+ "name": "getWallet",
299
+ "outputs": [
300
+ {
301
+ "internalType": "address",
302
+ "name": "walletAddress",
303
+ "type": "address"
304
+ }
305
+ ],
306
+ "stateMutability": "view",
307
+ "type": "function"
308
+ },
309
+ {
310
+ "inputs": [],
311
+ "name": "isRegisterable",
312
+ "outputs": [
313
+ {
314
+ "internalType": "bool",
315
+ "name": "",
316
+ "type": "bool"
317
+ }
318
+ ],
319
+ "stateMutability": "pure",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [],
324
+ "name": "isRegistered",
325
+ "outputs": [
326
+ {
327
+ "internalType": "bool",
328
+ "name": "",
329
+ "type": "bool"
330
+ }
331
+ ],
332
+ "stateMutability": "view",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [],
337
+ "name": "register",
338
+ "outputs": [
339
+ {
340
+ "internalType": "NftId",
341
+ "name": "componentId",
342
+ "type": "uint96"
343
+ }
344
+ ],
345
+ "stateMutability": "nonpayable",
346
+ "type": "function"
347
+ },
348
+ {
349
+ "inputs": [
350
+ {
351
+ "internalType": "NftId",
352
+ "name": "nftId",
353
+ "type": "uint96"
354
+ }
355
+ ],
356
+ "name": "underwrite",
357
+ "outputs": [],
358
+ "stateMutability": "nonpayable",
359
+ "type": "function"
360
+ }
361
+ ],
362
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162000df238038062000df2833981016040819052620000349162000189565b8484848484620000656040805180820182526000808252602091820181905282518084019093528083529082015290565b600080546001600160a01b038089166001600160a01b031992831617909255600180548216331790556002805483891690831681179091556004805483163017815560058054948916949093169390931790915560408051634288121d60e01b815290519192634288121d9282820192602092908290030181865afa158015620000f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011991906200024f565b600680546001600160a01b039283166001600160a01b031991821617909155600780549590921694169390931790925580516008556020908101516009558151600a550151600b5550620002769650505050505050565b6001600160a01b03811681146200018657600080fd5b50565b600080600080600085870360c0811215620001a357600080fd5b8651620001b08162000170565b6020880151909650620001c38162000170565b6040880151909550620001d68162000170565b6060880151909450620001e98162000170565b92506040607f1982011215620001fe57600080fd5b50604080519081016001600160401b03811182821017156200023057634e487b7160e01b600052604160045260246000fd5b6040526080870151815260a09096015160208701525092959194509290565b6000602082840312156200026257600080fd5b81516200026f8162000170565b9392505050565b610b6c80620002866000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635335c415116100ad578063972f9b0111610071578063972f9b011461021d578063bc74aab014610230578063daafed4014610274578063de7b5d14146102a1578063fb2cb101146102b257600080fd5b80635335c415146101e05780635ab1bd53146101f5578063644c45e01461020657806379e829d01461020e578063893d20e81461021557600080fd5b80631bdd6b76116100f45780631bdd6b761461019257806321df0da71461019a57806322366844146101ab57806331b62a3b146101c35780633bc5de30146101cb57600080fd5b8063082ebc1614610126578063132996041461015657806315dae03e1461017b5780631aa3a0081461018a575b600080fd5b610139610134366004610a12565b6102c3565b6040516001600160601b0390911681526020015b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b604051603c815260200161014d565b6101396102df565b610139610535565b6005546001600160a01b0316610163565b6101b36105a7565b604051901515815260200161014d565b610139610693565b6101d36106e4565b60405161014d9190610a3e565b6101f36101ee366004610aa1565b610782565b005b6000546001600160a01b0316610163565b61013961078e565b60016101b3565b6101636107bf565b6101f361022b366004610aa1565b6108c7565b604080518082018252600080825260209182015281518083019092526008548252600954908201525b6040805182518152602092830151928101929092520161014d565b60408051808201825260008082526020918201528151808301909252600a548252600b5490820152610259565b6002546001600160a01b0316610163565b6001546001600160a01b0316610163565b60006102d233858585856108d0565b949350505050565b905090565b60006102f36001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146103325760405162461bcd60e51b815260206004820152600060248201526044015b60405180910390fd5b6000546001600160a01b031661038a5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030313a52454749535452595f5a45524f00000000006044820152606401610329565b60005460025460405163c3c5a54760e01b81526001600160a01b03918216600482015291169063c3c5a54790602401602060405180830381865afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa9190610ac5565b6104545760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5052442d3030323a494e5354414e43455f4e4f545f5245474953604482015264151154915160da1b6064820152608401610329565b60025460408051636fa2985360e01b815290516000926001600160a01b031691636fa298539160048083019260209291908290030181865afa15801561049e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c29190610afc565b604051632210724360e11b81523060048201529091506001600160a01b03821690634420e486906024016020604051808303816000875af115801561050b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190610b19565b91505090565b60008054600754604051636939560f60e11b81526001600160a01b03918216600482015291169063d272ac1e906024015b602060405180830381865afa158015610583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da9190610b19565b60008054604051636939560f60e11b815230600482015282916001600160a01b03169063d272ac1e90602401602060405180830381865afa1580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190610b19565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190610ac5565b60006106a76002546001600160a01b031690565b6001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610583573d6000803e3d6000fd5b60606106f86002546001600160a01b031690565b6001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190610b19565b604080516001600160601b03909216602083015201604051602081830303815290604052905090565b61078b8161096f565b50565b60008054604051636939560f60e11b81523060048201526001600160a01b039091169063d272ac1e90602401610566565b60008054604051636939560f60e11b815230600482015282916001600160a01b03169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190610b19565b60005460405163df33330b60e01b81526001600160601b03831660048201529192506001600160a01b03169063df33330b90602401602060405180830381865afa15801561087e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a29190610afc565b91506001600160a01b0382166108c3576001546001600160a01b031661052f565b5090565b61078b816109d9565b600654604051632c63af4f60e21b81526001600160a01b0387811660048301526024820187905260448201869052606482018590526001600160601b0384166084830152600092169063b18ebd3c9060a4016020604051808303816000875af1158015610941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109659190610b19565b9695505050505050565b600654604051635335c41560e01b81526001600160601b03831660048201526001600160a01b0390911690635335c415906024015b600060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b5050505050565b60065460405163972f9b0160e01b81526001600160601b03831660048201526001600160a01b039091169063972f9b01906024016109a4565b600080600060608486031215610a2757600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015610a6b57858101830151858201604001528201610a4f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160601b038116811461078b57600080fd5b600060208284031215610ab357600080fd5b8135610abe81610a8c565b9392505050565b600060208284031215610ad757600080fd5b81518015158114610abe57600080fd5b6001600160a01b038116811461078b57600080fd5b600060208284031215610b0e57600080fd5b8151610abe81610ae7565b600060208284031215610b2b57600080fd5b8151610abe81610a8c56fea2646970667358221220274625dc4068acb8527a65b9ede0ccc124aaa6c9aba41b59acd1df9b28e3b60664736f6c63430008140033",
363
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c80635335c415116100ad578063972f9b0111610071578063972f9b011461021d578063bc74aab014610230578063daafed4014610274578063de7b5d14146102a1578063fb2cb101146102b257600080fd5b80635335c415146101e05780635ab1bd53146101f5578063644c45e01461020657806379e829d01461020e578063893d20e81461021557600080fd5b80631bdd6b76116100f45780631bdd6b761461019257806321df0da71461019a57806322366844146101ab57806331b62a3b146101c35780633bc5de30146101cb57600080fd5b8063082ebc1614610126578063132996041461015657806315dae03e1461017b5780631aa3a0081461018a575b600080fd5b610139610134366004610a12565b6102c3565b6040516001600160601b0390911681526020015b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b03909116815260200161014d565b604051603c815260200161014d565b6101396102df565b610139610535565b6005546001600160a01b0316610163565b6101b36105a7565b604051901515815260200161014d565b610139610693565b6101d36106e4565b60405161014d9190610a3e565b6101f36101ee366004610aa1565b610782565b005b6000546001600160a01b0316610163565b61013961078e565b60016101b3565b6101636107bf565b6101f361022b366004610aa1565b6108c7565b604080518082018252600080825260209182015281518083019092526008548252600954908201525b6040805182518152602092830151928101929092520161014d565b60408051808201825260008082526020918201528151808301909252600a548252600b5490820152610259565b6002546001600160a01b0316610163565b6001546001600160a01b0316610163565b60006102d233858585856108d0565b949350505050565b905090565b60006102f36001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146103325760405162461bcd60e51b815260206004820152600060248201526044015b60405180910390fd5b6000546001600160a01b031661038a5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030313a52454749535452595f5a45524f00000000006044820152606401610329565b60005460025460405163c3c5a54760e01b81526001600160a01b03918216600482015291169063c3c5a54790602401602060405180830381865afa1580156103d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fa9190610ac5565b6104545760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5052442d3030323a494e5354414e43455f4e4f545f5245474953604482015264151154915160da1b6064820152608401610329565b60025460408051636fa2985360e01b815290516000926001600160a01b031691636fa298539160048083019260209291908290030181865afa15801561049e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c29190610afc565b604051632210724360e11b81523060048201529091506001600160a01b03821690634420e486906024016020604051808303816000875af115801561050b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190610b19565b91505090565b60008054600754604051636939560f60e11b81526001600160a01b03918216600482015291169063d272ac1e906024015b602060405180830381865afa158015610583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da9190610b19565b60008054604051636939560f60e11b815230600482015282916001600160a01b03169063d272ac1e90602401602060405180830381865afa1580156105f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106149190610b19565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052f9190610ac5565b60006106a76002546001600160a01b031690565b6001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610583573d6000803e3d6000fd5b60606106f86002546001600160a01b031690565b6001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190610b19565b604080516001600160601b03909216602083015201604051602081830303815290604052905090565b61078b8161096f565b50565b60008054604051636939560f60e11b81523060048201526001600160a01b039091169063d272ac1e90602401610566565b60008054604051636939560f60e11b815230600482015282916001600160a01b03169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190610b19565b60005460405163df33330b60e01b81526001600160601b03831660048201529192506001600160a01b03169063df33330b90602401602060405180830381865afa15801561087e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a29190610afc565b91506001600160a01b0382166108c3576001546001600160a01b031661052f565b5090565b61078b816109d9565b600654604051632c63af4f60e21b81526001600160a01b0387811660048301526024820187905260448201869052606482018590526001600160601b0384166084830152600092169063b18ebd3c9060a4016020604051808303816000875af1158015610941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109659190610b19565b9695505050505050565b600654604051635335c41560e01b81526001600160601b03831660048201526001600160a01b0390911690635335c415906024015b600060405180830381600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b5050505050565b60065460405163972f9b0160e01b81526001600160601b03831660048201526001600160a01b039091169063972f9b01906024016109a4565b600080600060608486031215610a2757600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b81811015610a6b57858101830151858201604001528201610a4f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160601b038116811461078b57600080fd5b600060208284031215610ab357600080fd5b8135610abe81610a8c565b9392505050565b600060208284031215610ad757600080fd5b81518015158114610abe57600080fd5b6001600160a01b038116811461078b57600080fd5b600060208284031215610b0e57600080fd5b8151610abe81610ae7565b600060208284031215610b2b57600080fd5b8151610abe81610a8c56fea2646970667358221220274625dc4068acb8527a65b9ede0ccc124aaa6c9aba41b59acd1df9b28e3b60664736f6c63430008140033",
364
+ "linkReferences": {
365
+ "contracts/types/NftId.sol": {
366
+ "NftIdLib": [
367
+ {
368
+ "length": 20,
369
+ "start": 2235
370
+ }
371
+ ]
372
+ }
373
+ },
374
+ "deployedLinkReferences": {
375
+ "contracts/types/NftId.sol": {
376
+ "NftIdLib": [
377
+ {
378
+ "length": 20,
379
+ "start": 1589
380
+ }
381
+ ]
382
+ }
383
+ }
384
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/371956c35f778b248bb1774ada1ed516.json"
4
+ }