@etherisc/gif-next 0.0.2-ac5f18b → 0.0.2-b9b3e89

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. package/README.md +70 -0
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +179 -0
  4. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +4 -0
  5. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +35 -0
  6. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +179 -0
  8. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +192 -0
  10. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +4 -0
  11. package/artifacts/contracts/components/Pool.sol/Pool.json +195 -0
  12. package/artifacts/contracts/components/Product.sol/Product.dbg.json +4 -0
  13. package/artifacts/contracts/components/Product.sol/Product.json +213 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +892 -0
  16. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +4 -0
  17. package/artifacts/contracts/instance/Instance.sol/Instance.json +1009 -0
  18. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +4 -0
  19. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +400 -0
  20. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +4 -0
  21. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.json +10 -0
  22. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +4 -0
  23. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +35 -0
  24. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +4 -0
  25. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +50 -0
  26. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +4 -0
  27. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +336 -0
  28. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
  29. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +327 -0
  30. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +4 -0
  31. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +105 -0
  32. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +4 -0
  33. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.json +10 -0
  34. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +4 -0
  35. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +179 -0
  36. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +4 -0
  37. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +245 -0
  38. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +4 -0
  39. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +94 -0
  40. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +4 -0
  41. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +24 -0
  42. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
  43. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.json +10 -0
  44. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
  45. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +231 -0
  46. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
  47. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +231 -0
  48. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +4 -0
  49. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.json +10 -0
  50. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
  51. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +149 -0
  52. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
  53. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +162 -0
  54. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +4 -0
  55. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +75 -0
  56. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +114 -0
  58. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +4 -0
  59. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +75 -0
  60. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +125 -0
  62. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +4 -0
  63. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +24 -0
  64. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +4 -0
  65. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +166 -0
  66. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +4 -0
  67. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +271 -0
  68. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +4 -0
  69. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +49 -0
  70. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +4 -0
  71. package/artifacts/contracts/registry/Registry.sol/Registerable.json +166 -0
  72. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +4 -0
  73. package/artifacts/contracts/registry/Registry.sol/Registry.json +289 -0
  74. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +4 -0
  75. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +60 -0
  76. package/contracts/components/Component.sol +62 -0
  77. package/contracts/components/IPool.sol +9 -0
  78. package/contracts/components/IProduct.sol +11 -0
  79. package/contracts/components/Pool.sol +29 -0
  80. package/contracts/components/Product.sol +65 -0
  81. package/contracts/instance/IInstance.sol +20 -0
  82. package/contracts/instance/Instance.sol +63 -0
  83. package/contracts/instance/access/Access.sol +218 -0
  84. package/contracts/instance/access/IAccess.sol +83 -0
  85. package/contracts/instance/component/ComponentModule.sol +259 -0
  86. package/contracts/instance/component/IComponent.sol +94 -0
  87. package/contracts/instance/policy/IPolicy.sol +66 -0
  88. package/contracts/instance/policy/PolicyModule.sol +106 -0
  89. package/contracts/instance/pool/IPoolModule.sol +40 -0
  90. package/contracts/instance/pool/PoolModule.sol +83 -0
  91. package/contracts/instance/product/IProductService.sol +45 -0
  92. package/contracts/instance/product/ProductService.sol +105 -0
  93. package/contracts/registry/IRegistry.sol +66 -0
  94. package/contracts/registry/Registry.sol +197 -0
  95. package/package.json +6 -6
  96. package/artifacts/contracts/Dip.sol/DIP.dbg.json +0 -4
  97. package/artifacts/contracts/Dip.sol/DIP.json +0 -338
  98. package/artifacts/contracts/Lock.sol/Lock.dbg.json +0 -4
  99. package/artifacts/contracts/Lock.sol/Lock.json +0 -74
  100. package/contracts/Dip.sol +0 -26
  101. package/contracts/Lock.sol +0 -34
@@ -0,0 +1,49 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IRegistryLinked",
4
+ "sourceName": "contracts/registry/IRegistry.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint256",
12
+ "name": "idx",
13
+ "type": "uint256"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "address",
18
+ "name": "module",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "string",
24
+ "name": "comment",
25
+ "type": "string"
26
+ }
27
+ ],
28
+ "name": "LogDebug",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "inputs": [],
33
+ "name": "getRegistry",
34
+ "outputs": [
35
+ {
36
+ "internalType": "contract IRegistry",
37
+ "name": "registry",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "stateMutability": "view",
42
+ "type": "function"
43
+ }
44
+ ],
45
+ "bytecode": "0x",
46
+ "deployedBytecode": "0x",
47
+ "linkReferences": {},
48
+ "deployedLinkReferences": {}
49
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c2b99ddc284901467151c1af2e33d9be.json"
4
+ }
@@ -0,0 +1,166 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Registerable",
4
+ "sourceName": "contracts/registry/Registry.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint256",
12
+ "name": "idx",
13
+ "type": "uint256"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "address",
18
+ "name": "module",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "string",
24
+ "name": "comment",
25
+ "type": "string"
26
+ }
27
+ ],
28
+ "name": "LogDebug",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "inputs": [],
33
+ "name": "getData",
34
+ "outputs": [
35
+ {
36
+ "internalType": "bytes",
37
+ "name": "data",
38
+ "type": "bytes"
39
+ }
40
+ ],
41
+ "stateMutability": "view",
42
+ "type": "function"
43
+ },
44
+ {
45
+ "inputs": [],
46
+ "name": "getInitialOwner",
47
+ "outputs": [
48
+ {
49
+ "internalType": "address",
50
+ "name": "deployer",
51
+ "type": "address"
52
+ }
53
+ ],
54
+ "stateMutability": "view",
55
+ "type": "function"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "getNftId",
60
+ "outputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "id",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "stateMutability": "view",
68
+ "type": "function"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "getOwner",
73
+ "outputs": [
74
+ {
75
+ "internalType": "address",
76
+ "name": "owner",
77
+ "type": "address"
78
+ }
79
+ ],
80
+ "stateMutability": "view",
81
+ "type": "function"
82
+ },
83
+ {
84
+ "inputs": [],
85
+ "name": "getParentNftId",
86
+ "outputs": [
87
+ {
88
+ "internalType": "uint256",
89
+ "name": "parentNftId",
90
+ "type": "uint256"
91
+ }
92
+ ],
93
+ "stateMutability": "view",
94
+ "type": "function"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "getRegistry",
99
+ "outputs": [
100
+ {
101
+ "internalType": "contract IRegistry",
102
+ "name": "registry",
103
+ "type": "address"
104
+ }
105
+ ],
106
+ "stateMutability": "view",
107
+ "type": "function"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "getType",
112
+ "outputs": [
113
+ {
114
+ "internalType": "uint256",
115
+ "name": "objectType",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "stateMutability": "view",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [],
124
+ "name": "isRegisterable",
125
+ "outputs": [
126
+ {
127
+ "internalType": "bool",
128
+ "name": "",
129
+ "type": "bool"
130
+ }
131
+ ],
132
+ "stateMutability": "pure",
133
+ "type": "function"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "isRegistered",
138
+ "outputs": [
139
+ {
140
+ "internalType": "bool",
141
+ "name": "",
142
+ "type": "bool"
143
+ }
144
+ ],
145
+ "stateMutability": "view",
146
+ "type": "function"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "register",
151
+ "outputs": [
152
+ {
153
+ "internalType": "uint256",
154
+ "name": "nftId",
155
+ "type": "uint256"
156
+ }
157
+ ],
158
+ "stateMutability": "nonpayable",
159
+ "type": "function"
160
+ }
161
+ ],
162
+ "bytecode": "0x",
163
+ "deployedBytecode": "0x",
164
+ "linkReferences": {},
165
+ "deployedLinkReferences": {}
166
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c2b99ddc284901467151c1af2e33d9be.json"
4
+ }
@@ -0,0 +1,289 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Registry",
4
+ "sourceName": "contracts/registry/Registry.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "BUNDLE",
14
+ "outputs": [
15
+ {
16
+ "internalType": "uint256",
17
+ "name": "",
18
+ "type": "uint256"
19
+ }
20
+ ],
21
+ "stateMutability": "pure",
22
+ "type": "function"
23
+ },
24
+ {
25
+ "inputs": [],
26
+ "name": "INSTANCE",
27
+ "outputs": [
28
+ {
29
+ "internalType": "uint256",
30
+ "name": "",
31
+ "type": "uint256"
32
+ }
33
+ ],
34
+ "stateMutability": "pure",
35
+ "type": "function"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "ORACLE",
40
+ "outputs": [
41
+ {
42
+ "internalType": "uint256",
43
+ "name": "",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "stateMutability": "pure",
48
+ "type": "function"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "POLICY",
53
+ "outputs": [
54
+ {
55
+ "internalType": "uint256",
56
+ "name": "",
57
+ "type": "uint256"
58
+ }
59
+ ],
60
+ "stateMutability": "pure",
61
+ "type": "function"
62
+ },
63
+ {
64
+ "inputs": [],
65
+ "name": "POOL",
66
+ "outputs": [
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "",
70
+ "type": "uint256"
71
+ }
72
+ ],
73
+ "stateMutability": "pure",
74
+ "type": "function"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "PRODUCT",
79
+ "outputs": [
80
+ {
81
+ "internalType": "uint256",
82
+ "name": "",
83
+ "type": "uint256"
84
+ }
85
+ ],
86
+ "stateMutability": "pure",
87
+ "type": "function"
88
+ },
89
+ {
90
+ "inputs": [],
91
+ "name": "TOKEN",
92
+ "outputs": [
93
+ {
94
+ "internalType": "uint256",
95
+ "name": "",
96
+ "type": "uint256"
97
+ }
98
+ ],
99
+ "stateMutability": "pure",
100
+ "type": "function"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "uint256",
106
+ "name": "id",
107
+ "type": "uint256"
108
+ }
109
+ ],
110
+ "name": "getInfo",
111
+ "outputs": [
112
+ {
113
+ "components": [
114
+ {
115
+ "internalType": "uint256",
116
+ "name": "nftId",
117
+ "type": "uint256"
118
+ },
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "parentNftId",
122
+ "type": "uint256"
123
+ },
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "objectType",
127
+ "type": "uint256"
128
+ },
129
+ {
130
+ "internalType": "address",
131
+ "name": "objectAddress",
132
+ "type": "address"
133
+ },
134
+ {
135
+ "internalType": "address",
136
+ "name": "initialOwner",
137
+ "type": "address"
138
+ }
139
+ ],
140
+ "internalType": "struct IRegistry.RegistryInfo",
141
+ "name": "info",
142
+ "type": "tuple"
143
+ }
144
+ ],
145
+ "stateMutability": "view",
146
+ "type": "function"
147
+ },
148
+ {
149
+ "inputs": [
150
+ {
151
+ "internalType": "address",
152
+ "name": "object",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "getNftId",
157
+ "outputs": [
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "id",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "stateMutability": "view",
165
+ "type": "function"
166
+ },
167
+ {
168
+ "inputs": [],
169
+ "name": "getObjectCount",
170
+ "outputs": [
171
+ {
172
+ "internalType": "uint256",
173
+ "name": "",
174
+ "type": "uint256"
175
+ }
176
+ ],
177
+ "stateMutability": "view",
178
+ "type": "function"
179
+ },
180
+ {
181
+ "inputs": [
182
+ {
183
+ "internalType": "uint256",
184
+ "name": "id",
185
+ "type": "uint256"
186
+ }
187
+ ],
188
+ "name": "getOwner",
189
+ "outputs": [
190
+ {
191
+ "internalType": "address",
192
+ "name": "",
193
+ "type": "address"
194
+ }
195
+ ],
196
+ "stateMutability": "view",
197
+ "type": "function"
198
+ },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "address",
203
+ "name": "object",
204
+ "type": "address"
205
+ }
206
+ ],
207
+ "name": "isRegistered",
208
+ "outputs": [
209
+ {
210
+ "internalType": "bool",
211
+ "name": "",
212
+ "type": "bool"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "address",
222
+ "name": "objectAddress",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "register",
227
+ "outputs": [
228
+ {
229
+ "internalType": "uint256",
230
+ "name": "nftId",
231
+ "type": "uint256"
232
+ }
233
+ ],
234
+ "stateMutability": "nonpayable",
235
+ "type": "function"
236
+ },
237
+ {
238
+ "inputs": [
239
+ {
240
+ "internalType": "uint256",
241
+ "name": "parentNftId",
242
+ "type": "uint256"
243
+ },
244
+ {
245
+ "internalType": "uint256",
246
+ "name": "objectType",
247
+ "type": "uint256"
248
+ },
249
+ {
250
+ "internalType": "address",
251
+ "name": "initialOwner",
252
+ "type": "address"
253
+ }
254
+ ],
255
+ "name": "registerObjectForInstance",
256
+ "outputs": [
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "nftId",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "stateMutability": "nonpayable",
264
+ "type": "function"
265
+ },
266
+ {
267
+ "inputs": [
268
+ {
269
+ "internalType": "uint256",
270
+ "name": "id",
271
+ "type": "uint256"
272
+ },
273
+ {
274
+ "internalType": "address",
275
+ "name": "newOwner",
276
+ "type": "address"
277
+ }
278
+ ],
279
+ "name": "transfer",
280
+ "outputs": [],
281
+ "stateMutability": "nonpayable",
282
+ "type": "function"
283
+ }
284
+ ],
285
+ "bytecode": "0x608060405234801561001057600080fd5b506000600481905550611596806100286000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806382bfefc811610097578063c41a360a11610066578063c41a360a1461028a578063d15db8b4146102ba578063d272ac1e146102d8578063dadbccee14610308576100f5565b806382bfefc8146101f0578063ab10b8ec1461020e578063b7760c8f1461023e578063c3c5a5471461025a576100f5565b806338013f02116100d357806338013f02146101665780634420e4861461018457806353bed7c3146101b45780637535d246146101d2576100f5565b80631a3cd59a146100fa5780631a848cfb1461012a57806325425a9114610148575b600080fd5b610114600480360381019061010f9190610f69565b610326565b604051610121919061104e565b60405180910390f35b61013261041c565b60405161013f9190611078565b60405180910390f35b610150610429565b60405161015d9190611078565b60405180910390f35b61016e610432565b60405161017b9190611078565b60405180910390f35b61019e600480360381019061019991906110bf565b61043b565b6040516101ab9190611078565b60405180910390f35b6101bc610ab6565b6040516101c99190611078565b60405180910390f35b6101da610abf565b6040516101e79190611078565b60405180910390f35b6101f8610ac8565b6040516102059190611078565b60405180910390f35b610228600480360381019061022391906110ec565b610ad1565b6040516102359190611078565b60405180910390f35b6102586004803603810190610253919061113f565b610c5a565b005b610274600480360381019061026f91906110bf565b610d51565b604051610281919061119a565b60405180910390f35b6102a4600480360381019061029f9190610f69565b610d9c565b6040516102b191906111c4565b60405180910390f35b6102c2610dd9565b6040516102cf9190611078565b60405180910390f35b6102f260048036038101906102ed91906110bf565b610de2565b6040516102ff9190611078565b60405180910390f35b610310610e2b565b60405161031d9190611078565b60405180910390f35b61032e610ed3565b6000808381526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6000600380549050905090565b60006032905090565b6000603c905090565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b59061123c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff166379e829d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611288565b610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890611301565b60405180910390fd5b610579610dd9565b8173ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e89190611336565b1461078f5760008060008373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611336565b81526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081600001511161078d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610784906113af565b60405180910390fd5b505b6108068173ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906113e4565b610e34565b915060006040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190611336565b81526020018373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe9190611336565b81526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906113e4565b73ffffffffffffffffffffffffffffffffffffffff1681525090508060008085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000605a905090565b60006046905090565b6000601e905090565b6000610adb610e2b565b831480610aee5750610aeb610ab6565b83145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061145d565b60405180910390fd5b610b3682610e34565b905060006040518060a00160405280838152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090508060008084815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050509392505050565b6001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906114c9565b60405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006028905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006050905090565b600060046000815480929190610e4990611518565b91905055506004549050816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003819080600181540180825580915050600190039060005260206000200160009091909190915055919050565b6040518060a00160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b6000819050919050565b610f4681610f33565b8114610f5157600080fd5b50565b600081359050610f6381610f3d565b92915050565b600060208284031215610f7f57610f7e610f2e565b5b6000610f8d84828501610f54565b91505092915050565b610f9f81610f33565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fd082610fa5565b9050919050565b610fe081610fc5565b82525050565b60a082016000820151610ffc6000850182610f96565b50602082015161100f6020850182610f96565b5060408201516110226040850182610f96565b5060608201516110356060850182610fd7565b5060808201516110486080850182610fd7565b50505050565b600060a0820190506110636000830184610fe6565b92915050565b61107281610f33565b82525050565b600060208201905061108d6000830184611069565b92915050565b61109c81610fc5565b81146110a757600080fd5b50565b6000813590506110b981611093565b92915050565b6000602082840312156110d5576110d4610f2e565b5b60006110e3848285016110aa565b91505092915050565b60008060006060848603121561110557611104610f2e565b5b600061111386828701610f54565b935050602061112486828701610f54565b9250506040611135868287016110aa565b9150509250925092565b6000806040838503121561115657611155610f2e565b5b600061116485828601610f54565b9250506020611175858286016110aa565b9150509250929050565b60008115159050919050565b6111948161117f565b82525050565b60006020820190506111af600083018461118b565b92915050565b6111be81610fc5565b82525050565b60006020820190506111d960008301846111b5565b92915050565b600082825260208201905092915050565b7f4552524f523a5245472d3030313a414c52454144595f52454749535445524544600082015250565b60006112266020836111df565b9150611231826111f0565b602082019050919050565b6000602082019050818103600083015261125581611219565b9050919050565b6112658161117f565b811461127057600080fd5b50565b6000815190506112828161125c565b92915050565b60006020828403121561129e5761129d610f2e565b5b60006112ac84828501611273565b91505092915050565b7f4552524f523a5245472d3030323a4e4f545f524547495354455241424c450000600082015250565b60006112eb601e836111df565b91506112f6826112b5565b602082019050919050565b6000602082019050818103600083015261131a816112de565b9050919050565b60008151905061133081610f3d565b92915050565b60006020828403121561134c5761134b610f2e565b5b600061135a84828501611321565b91505092915050565b7f4552524f523a5245472d3030333a504152454e545f4e4f545f464f554e440000600082015250565b6000611399601e836111df565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b6000815190506113de81611093565b92915050565b6000602082840312156113fa576113f9610f2e565b5b6000611408848285016113cf565b91505092915050565b7f4552524f523a5245472d3030353a545950455f494e56414c4944000000000000600082015250565b6000611447601a836111df565b915061145282611411565b602082019050919050565b600060208201905081810360008301526114768161143a565b9050919050565b7f4552524f523a5245472d3031303a4e4f545f4f574e4552000000000000000000600082015250565b60006114b36017836111df565b91506114be8261147d565b602082019050919050565b600060208201905081810360008301526114e2816114a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061152382610f33565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611555576115546114e9565b5b60018201905091905056fea26469706673582212203fde97cde480e7aab92fcfa885a1fe75694f7308dda0d145a1b0f71b6a14c3c664736f6c63430008140033",
286
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806382bfefc811610097578063c41a360a11610066578063c41a360a1461028a578063d15db8b4146102ba578063d272ac1e146102d8578063dadbccee14610308576100f5565b806382bfefc8146101f0578063ab10b8ec1461020e578063b7760c8f1461023e578063c3c5a5471461025a576100f5565b806338013f02116100d357806338013f02146101665780634420e4861461018457806353bed7c3146101b45780637535d246146101d2576100f5565b80631a3cd59a146100fa5780631a848cfb1461012a57806325425a9114610148575b600080fd5b610114600480360381019061010f9190610f69565b610326565b604051610121919061104e565b60405180910390f35b61013261041c565b60405161013f9190611078565b60405180910390f35b610150610429565b60405161015d9190611078565b60405180910390f35b61016e610432565b60405161017b9190611078565b60405180910390f35b61019e600480360381019061019991906110bf565b61043b565b6040516101ab9190611078565b60405180910390f35b6101bc610ab6565b6040516101c99190611078565b60405180910390f35b6101da610abf565b6040516101e79190611078565b60405180910390f35b6101f8610ac8565b6040516102059190611078565b60405180910390f35b610228600480360381019061022391906110ec565b610ad1565b6040516102359190611078565b60405180910390f35b6102586004803603810190610253919061113f565b610c5a565b005b610274600480360381019061026f91906110bf565b610d51565b604051610281919061119a565b60405180910390f35b6102a4600480360381019061029f9190610f69565b610d9c565b6040516102b191906111c4565b60405180910390f35b6102c2610dd9565b6040516102cf9190611078565b60405180910390f35b6102f260048036038101906102ed91906110bf565b610de2565b6040516102ff9190611078565b60405180910390f35b610310610e2b565b60405161031d9190611078565b60405180910390f35b61032e610ed3565b6000808381526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6000600380549050905090565b60006032905090565b6000603c905090565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b59061123c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff166379e829d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611288565b610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890611301565b60405180910390fd5b610579610dd9565b8173ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e89190611336565b1461078f5760008060008373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611336565b81526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081600001511161078d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610784906113af565b60405180910390fd5b505b6108068173ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906113e4565b610e34565b915060006040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190611336565b81526020018373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe9190611336565b81526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906113e4565b73ffffffffffffffffffffffffffffffffffffffff1681525090508060008085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000605a905090565b60006046905090565b6000601e905090565b6000610adb610e2b565b831480610aee5750610aeb610ab6565b83145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061145d565b60405180910390fd5b610b3682610e34565b905060006040518060a00160405280838152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090508060008084815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050509392505050565b6001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906114c9565b60405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006028905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006050905090565b600060046000815480929190610e4990611518565b91905055506004549050816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003819080600181540180825580915050600190039060005260206000200160009091909190915055919050565b6040518060a00160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b6000819050919050565b610f4681610f33565b8114610f5157600080fd5b50565b600081359050610f6381610f3d565b92915050565b600060208284031215610f7f57610f7e610f2e565b5b6000610f8d84828501610f54565b91505092915050565b610f9f81610f33565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fd082610fa5565b9050919050565b610fe081610fc5565b82525050565b60a082016000820151610ffc6000850182610f96565b50602082015161100f6020850182610f96565b5060408201516110226040850182610f96565b5060608201516110356060850182610fd7565b5060808201516110486080850182610fd7565b50505050565b600060a0820190506110636000830184610fe6565b92915050565b61107281610f33565b82525050565b600060208201905061108d6000830184611069565b92915050565b61109c81610fc5565b81146110a757600080fd5b50565b6000813590506110b981611093565b92915050565b6000602082840312156110d5576110d4610f2e565b5b60006110e3848285016110aa565b91505092915050565b60008060006060848603121561110557611104610f2e565b5b600061111386828701610f54565b935050602061112486828701610f54565b9250506040611135868287016110aa565b9150509250925092565b6000806040838503121561115657611155610f2e565b5b600061116485828601610f54565b9250506020611175858286016110aa565b9150509250929050565b60008115159050919050565b6111948161117f565b82525050565b60006020820190506111af600083018461118b565b92915050565b6111be81610fc5565b82525050565b60006020820190506111d960008301846111b5565b92915050565b600082825260208201905092915050565b7f4552524f523a5245472d3030313a414c52454144595f52454749535445524544600082015250565b60006112266020836111df565b9150611231826111f0565b602082019050919050565b6000602082019050818103600083015261125581611219565b9050919050565b6112658161117f565b811461127057600080fd5b50565b6000815190506112828161125c565b92915050565b60006020828403121561129e5761129d610f2e565b5b60006112ac84828501611273565b91505092915050565b7f4552524f523a5245472d3030323a4e4f545f524547495354455241424c450000600082015250565b60006112eb601e836111df565b91506112f6826112b5565b602082019050919050565b6000602082019050818103600083015261131a816112de565b9050919050565b60008151905061133081610f3d565b92915050565b60006020828403121561134c5761134b610f2e565b5b600061135a84828501611321565b91505092915050565b7f4552524f523a5245472d3030333a504152454e545f4e4f545f464f554e440000600082015250565b6000611399601e836111df565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b6000815190506113de81611093565b92915050565b6000602082840312156113fa576113f9610f2e565b5b6000611408848285016113cf565b91505092915050565b7f4552524f523a5245472d3030353a545950455f494e56414c4944000000000000600082015250565b6000611447601a836111df565b915061145282611411565b602082019050919050565b600060208201905081810360008301526114768161143a565b9050919050565b7f4552524f523a5245472d3031303a4e4f545f4f574e4552000000000000000000600082015250565b60006114b36017836111df565b91506114be8261147d565b602082019050919050565b600060208201905081810360008301526114e2816114a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061152382610f33565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611555576115546114e9565b5b60018201905091905056fea26469706673582212203fde97cde480e7aab92fcfa885a1fe75694f7308dda0d145a1b0f71b6a14c3c664736f6c63430008140033",
287
+ "linkReferences": {},
288
+ "deployedLinkReferences": {}
289
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c2b99ddc284901467151c1af2e33d9be.json"
4
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RegistryLinked",
4
+ "sourceName": "contracts/registry/Registry.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": false,
22
+ "internalType": "uint256",
23
+ "name": "idx",
24
+ "type": "uint256"
25
+ },
26
+ {
27
+ "indexed": false,
28
+ "internalType": "address",
29
+ "name": "module",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "indexed": false,
34
+ "internalType": "string",
35
+ "name": "comment",
36
+ "type": "string"
37
+ }
38
+ ],
39
+ "name": "LogDebug",
40
+ "type": "event"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "getRegistry",
45
+ "outputs": [
46
+ {
47
+ "internalType": "contract IRegistry",
48
+ "name": "registry",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "stateMutability": "view",
53
+ "type": "function"
54
+ }
55
+ ],
56
+ "bytecode": "0x608060405234801561001057600080fd5b50604051610249380380610249833981810160405281019061003291906100db565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a88261007d565b9050919050565b6100b88161009d565b81146100c357600080fd5b50565b6000815190506100d5816100af565b92915050565b6000602082840312156100f1576100f0610078565b5b60006100ff848285016100c6565b91505092915050565b610132806101176000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80635ab1bd5314602d575b600080fd5b60336047565b604051603e919060e3565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060af60ab60a7846070565b6090565b6070565b9050919050565b600060bf82609a565b9050919050565b600060cf8260b6565b9050919050565b60dd8160c6565b82525050565b600060208201905060f6600083018460d6565b9291505056fea264697066735822122044fdfef7cc7f2534fb92ca6943c35e3562c1041e7665a689cecd602075a8a3cc64736f6c63430008140033",
57
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80635ab1bd5314602d575b600080fd5b60336047565b604051603e919060e3565b60405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060af60ab60a7846070565b6090565b6070565b9050919050565b600060bf82609a565b9050919050565b600060cf8260b6565b9050919050565b60dd8160c6565b82525050565b600060208201905060f6600083018460d6565b9291505056fea264697066735822122044fdfef7cc7f2534fb92ca6943c35e3562c1041e7665a689cecd602075a8a3cc64736f6c63430008140033",
58
+ "linkReferences": {},
59
+ "deployedLinkReferences": {}
60
+ }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {IRegistry, IRegisterable, IRegistryLinked} from "../registry/IRegistry.sol";
5
+ import {Registerable} from "../registry/Registry.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+
8
+ import {IInstanceLinked, IComponent, IComponentContract, IComponentModule, IComponentOwnerService} from "../instance/component/IComponent.sol";
9
+
10
+
11
+ contract InstanceLinked is
12
+ IInstanceLinked
13
+ {
14
+ IInstance internal _instance;
15
+
16
+ constructor(address instance) {
17
+ _instance = IInstance(instance);
18
+ }
19
+
20
+ // function setInstance(address instance) public override {
21
+ // require(address(_instance) == address(0), "ERROR:RGL-001:INSTANCE_ALREADY_SET");
22
+ // _instance = IInstance(instance);
23
+ // }
24
+
25
+ function getInstance() public view override returns(IInstance instance) {
26
+ return _instance;
27
+ }
28
+ }
29
+
30
+
31
+ abstract contract Component is
32
+ Registerable,
33
+ InstanceLinked,
34
+ IComponentContract
35
+ {
36
+
37
+ address private _deployer;
38
+
39
+ constructor(address registry, address instance)
40
+ Registerable(registry)
41
+ InstanceLinked(instance)
42
+ { }
43
+
44
+ // from registerable
45
+ function register()
46
+ public
47
+ override
48
+ returns(uint256 componentId)
49
+ {
50
+ require(msg.sender == getInitialOwner(), "");
51
+ require(address(_registry) != address(0), "ERROR:PRD-001:REGISTRY_ZERO");
52
+ require(_registry.isRegistered(address(_instance)), "ERROR:PRD-002:INSTANCE_NOT_REGISTERED");
53
+
54
+ IComponentOwnerService cos = _instance.getComponentOwnerService();
55
+ componentId = cos.register(this);
56
+ }
57
+
58
+ // from registerable
59
+ function getParentNftId() public view override returns(uint256) {
60
+ return getInstance().getNftId();
61
+ }
62
+ }