@etherisc/gif-next 0.0.2-c7609c4-545 → 0.0.2-c7ade86-552

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/README.md +81 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +114 -291
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -164
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +388 -194
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +133 -67
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +121 -198
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +185 -252
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +300 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +531 -81
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1067 -479
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -80
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +676 -570
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +66 -167
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +36 -71
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +145 -333
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +73 -99
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -369
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +181 -57
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +76 -38
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -178
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +233 -194
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +103 -73
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +120 -100
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -58
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +176 -209
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +60 -12
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +98 -50
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +726 -465
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +56 -34
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +239 -520
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +36 -57
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +139 -347
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  255. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +125 -99
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +225 -209
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  271. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +83 -59
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +40 -67
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -56
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +32 -16
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  337. package/contracts/accounting/AccountingService.sol +261 -0
  338. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  339. package/contracts/accounting/IAccountingService.sol +45 -0
  340. package/contracts/authorization/AccessAdmin.sol +426 -242
  341. package/contracts/authorization/AccessAdminLib.sol +396 -0
  342. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  343. package/contracts/authorization/Authorization.sol +142 -257
  344. package/contracts/authorization/IAccess.sol +25 -7
  345. package/contracts/authorization/IAccessAdmin.sol +87 -80
  346. package/contracts/authorization/IAuthorization.sol +9 -42
  347. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  348. package/contracts/authorization/ServiceAuthorization.sol +247 -33
  349. package/contracts/distribution/BasicDistribution.sol +18 -16
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  351. package/contracts/distribution/Distribution.sol +38 -78
  352. package/contracts/distribution/DistributionService.sol +183 -96
  353. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  354. package/contracts/distribution/IDistributionComponent.sol +3 -10
  355. package/contracts/distribution/IDistributionService.sol +32 -24
  356. package/contracts/examples/fire/FirePool.sol +21 -8
  357. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  358. package/contracts/examples/fire/FireProduct.sol +32 -14
  359. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  360. package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
  361. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  362. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  363. package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
  364. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
  366. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  367. package/contracts/instance/BundleSet.sol +42 -38
  368. package/contracts/instance/IInstance.sol +97 -18
  369. package/contracts/instance/IInstanceService.sol +50 -8
  370. package/contracts/instance/Instance.sol +170 -57
  371. package/contracts/instance/InstanceAdmin.sol +271 -165
  372. package/contracts/instance/InstanceAuthorizationV3.sol +114 -43
  373. package/contracts/instance/InstanceReader.sol +449 -312
  374. package/contracts/instance/InstanceService.sol +260 -163
  375. package/contracts/instance/InstanceServiceManager.sol +1 -1
  376. package/contracts/instance/InstanceStore.sol +13 -2
  377. package/contracts/instance/RiskSet.sol +118 -0
  378. package/contracts/instance/base/BalanceStore.sol +3 -5
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  381. package/contracts/instance/base/ObjectSet.sol +31 -33
  382. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  383. package/contracts/instance/module/IBundle.sol +6 -5
  384. package/contracts/instance/module/IComponents.sol +20 -9
  385. package/contracts/instance/module/IDistribution.sol +21 -8
  386. package/contracts/instance/module/IPolicy.sol +28 -7
  387. package/contracts/instance/module/IRisk.sol +5 -0
  388. package/contracts/oracle/BasicOracle.sol +1 -3
  389. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  390. package/contracts/oracle/IOracle.sol +9 -4
  391. package/contracts/oracle/Oracle.sol +1 -3
  392. package/contracts/oracle/OracleService.sol +96 -77
  393. package/contracts/oracle/OracleServiceManager.sol +1 -1
  394. package/contracts/pool/BasicPool.sol +23 -4
  395. package/contracts/pool/BasicPoolAuthorization.sol +33 -8
  396. package/contracts/pool/BundleService.sol +47 -145
  397. package/contracts/pool/BundleServiceManager.sol +1 -1
  398. package/contracts/pool/IBundleService.sol +15 -43
  399. package/contracts/pool/IPoolComponent.sol +1 -7
  400. package/contracts/pool/IPoolService.sol +58 -60
  401. package/contracts/pool/Pool.sol +106 -98
  402. package/contracts/pool/PoolLib.sol +353 -0
  403. package/contracts/pool/PoolService.sol +271 -228
  404. package/contracts/pool/PoolServiceManager.sol +1 -1
  405. package/contracts/product/ApplicationService.sol +34 -15
  406. package/contracts/product/ApplicationServiceManager.sol +1 -1
  407. package/contracts/product/BasicProduct.sol +8 -12
  408. package/contracts/product/BasicProductAuthorization.sol +30 -11
  409. package/contracts/product/ClaimService.sol +167 -148
  410. package/contracts/product/ClaimServiceManager.sol +1 -1
  411. package/contracts/product/IApplicationService.sol +8 -2
  412. package/contracts/product/IClaimService.sol +14 -2
  413. package/contracts/product/IPolicyService.sol +26 -11
  414. package/contracts/product/IPricingService.sol +1 -0
  415. package/contracts/product/IProductComponent.sol +4 -1
  416. package/contracts/product/IRiskService.sol +7 -7
  417. package/contracts/product/PolicyService.sol +243 -294
  418. package/contracts/product/PolicyServiceLib.sol +139 -0
  419. package/contracts/product/PolicyServiceManager.sol +1 -1
  420. package/contracts/product/PricingService.sol +30 -21
  421. package/contracts/product/PricingServiceManager.sol +3 -3
  422. package/contracts/product/Product.sol +65 -53
  423. package/contracts/product/RiskService.sol +89 -31
  424. package/contracts/product/RiskServiceManager.sol +1 -1
  425. package/contracts/registry/ChainNft.sol +4 -2
  426. package/contracts/registry/IRegistry.sol +14 -15
  427. package/contracts/registry/IRelease.sol +29 -0
  428. package/contracts/registry/Registry.sol +16 -3
  429. package/contracts/registry/RegistryAdmin.sol +101 -361
  430. package/contracts/registry/RegistryAuthorization.sol +277 -0
  431. package/contracts/registry/RegistryService.sol +3 -3
  432. package/contracts/registry/RegistryServiceManager.sol +1 -1
  433. package/contracts/registry/ReleaseAdmin.sol +195 -0
  434. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  435. package/contracts/registry/ReleaseRegistry.sol +154 -135
  436. package/contracts/registry/ServiceAuthorizationV3.sol +196 -46
  437. package/contracts/registry/TokenRegistry.sol +12 -13
  438. package/contracts/shared/Component.sol +52 -107
  439. package/contracts/shared/ComponentService.sol +353 -420
  440. package/contracts/shared/ComponentServiceManager.sol +1 -1
  441. package/contracts/shared/ComponentVerifyingService.sol +16 -14
  442. package/contracts/shared/ContractLib.sol +276 -3
  443. package/contracts/shared/IComponent.sol +1 -17
  444. package/contracts/shared/IComponentService.sol +27 -37
  445. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  446. package/contracts/shared/IRegisterable.sol +15 -5
  447. package/contracts/shared/IService.sol +3 -5
  448. package/contracts/shared/InitializableERC165.sol +9 -1
  449. package/contracts/shared/InstanceLinkedComponent.sol +4 -23
  450. package/contracts/shared/NftOwnable.sol +6 -6
  451. package/contracts/shared/PolicyHolder.sol +1 -1
  452. package/contracts/shared/Registerable.sol +41 -20
  453. package/contracts/shared/RegistryLinked.sol +7 -13
  454. package/contracts/shared/Service.sol +13 -30
  455. package/contracts/shared/TokenHandler.sol +275 -72
  456. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  457. package/contracts/staking/IStaking.sol +23 -12
  458. package/contracts/staking/IStakingService.sol +19 -1
  459. package/contracts/staking/Staking.sol +99 -51
  460. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  461. package/contracts/staking/StakingReader.sol +6 -16
  462. package/contracts/staking/StakingService.sol +74 -14
  463. package/contracts/staking/StakingServiceManager.sol +5 -4
  464. package/contracts/staking/StakingStore.sol +2 -1
  465. package/contracts/staking/TargetManagerLib.sol +1 -1
  466. package/contracts/type/Fee.sol +8 -8
  467. package/contracts/type/Key32.sol +2 -2
  468. package/contracts/type/Key32Set.sol +62 -0
  469. package/contracts/type/NftId.sol +6 -0
  470. package/contracts/type/ObjectType.sol +69 -38
  471. package/contracts/type/RiskId.sol +26 -8
  472. package/contracts/type/RoleId.sol +63 -45
  473. package/contracts/type/Selector.sol +5 -0
  474. package/contracts/type/String.sol +12 -0
  475. package/contracts/type/Timestamp.sol +0 -5
  476. package/contracts/type/UFixed.sol +34 -127
  477. package/contracts/type/Version.sol +54 -5
  478. package/contracts/upgradeability/ProxyManager.sol +14 -12
  479. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  480. package/contracts/upgradeability/Versionable.sol +4 -1
  481. package/package.json +4 -4
  482. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  483. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  484. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  486. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  487. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  488. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  489. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  490. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  491. package/contracts/instance/module/IAccess.sol +0 -46
@@ -20,7 +20,7 @@ import {NftId} from "../type/NftId.sol";
20
20
  import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
21
21
  import {VersionPart} from "../type/Version.sol";
22
22
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
23
- import {IAccess} from "../instance/module/IAccess.sol";
23
+ import {IAccess} from "../authorization/IAccess.sol";
24
24
  import {TokenHandler} from "../shared/TokenHandler.sol";
25
25
  import {VersionPart} from "../type/Version.sol";
26
26
 
@@ -40,20 +40,12 @@ abstract contract InstanceLinkedComponent is
40
40
  IComponentService _componentService;
41
41
  }
42
42
 
43
- function lock() external onlyOwner {
44
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
45
- }
46
-
47
- function unlock() external onlyOwner {
48
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
49
- }
50
-
51
43
  /// @inheritdoc IInstanceLinkedComponent
52
44
  function withdrawFees(Amount amount)
53
45
  external
54
46
  virtual
55
- onlyOwner()
56
47
  restricted()
48
+ onlyOwner()
57
49
  returns (Amount withdrawnAmount)
58
50
  {
59
51
  return _withdrawFees(amount);
@@ -79,7 +71,6 @@ abstract contract InstanceLinkedComponent is
79
71
  address registry,
80
72
  NftId parentNftId,
81
73
  string memory name,
82
- address token,
83
74
  ObjectType componentType,
84
75
  IAuthorization authorization,
85
76
  bool isInterceptor,
@@ -107,7 +98,6 @@ abstract contract InstanceLinkedComponent is
107
98
  registry,
108
99
  parentNftId,
109
100
  name,
110
- token,
111
101
  componentType,
112
102
  isInterceptor,
113
103
  initialOwner,
@@ -120,7 +110,6 @@ abstract contract InstanceLinkedComponent is
120
110
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
121
111
 
122
112
  // register interfaces
123
- _registerInterface(type(IAccessManaged).interfaceId);
124
113
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);
125
114
  }
126
115
 
@@ -142,7 +131,7 @@ abstract contract InstanceLinkedComponent is
142
131
 
143
132
  // if not product parent is product, and parent of product is instance
144
133
  IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
145
- return registry.getObjectInfo(parentNftId).parentNftId;
134
+ return registry.getParentNftId(parentNftId);
146
135
  }
147
136
 
148
137
  /// @dev checks the and gets registry.
@@ -181,7 +170,7 @@ abstract contract InstanceLinkedComponent is
181
170
  info = _getInstanceReader().getComponentInfo(getNftId());
182
171
 
183
172
  // check if also registered with instance
184
- if (info.wallet != address(0)) {
173
+ if (address(info.tokenHandler) != address(0)) {
185
174
  return info;
186
175
  }
187
176
  }
@@ -202,12 +191,4 @@ abstract contract InstanceLinkedComponent is
202
191
  {
203
192
  return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
204
193
  }
205
-
206
-
207
- /// @dev returns the service address for the specified domain
208
- /// gets address via lookup from registry using the major version form the linked instance
209
- function _getServiceAddress(ObjectType domain) internal view returns (address service) {
210
- VersionPart release = _getInstanceLinkedComponentStorage()._instance.getRelease();
211
- return getRegistry().getServiceAddress(domain, release);
212
- }
213
194
  }
@@ -41,15 +41,15 @@ contract NftOwnable is
41
41
  }
42
42
 
43
43
  function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
44
- if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
44
+ if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
45
45
  revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
46
46
  }
47
47
  }
48
48
 
49
49
 
50
- /// @dev initialization for upgradable contracts
51
- // used in _initializeRegisterable
52
- function _initializeNftOwnable(
50
+ /// @dev Initialization for upgradable contracts.
51
+ // used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
52
+ function __NftOwnable_init(
53
53
  address registry,
54
54
  address initialOwner
55
55
  )
@@ -57,8 +57,8 @@ contract NftOwnable is
57
57
  virtual
58
58
  onlyInitializing()
59
59
  {
60
- _initializeRegistryLinked(registry);
61
- _initializeERC165();
60
+ __ERC165_init();
61
+ __RegistryLinked_init(registry);
62
62
 
63
63
  if(initialOwner == address(0)) {
64
64
  revert ErrorNftOwnableInitialOwnerZero();
@@ -29,7 +29,7 @@ contract PolicyHolder is
29
29
  virtual
30
30
  onlyInitializing()
31
31
  {
32
- _initializeRegistryLinked(registryAddress);
32
+ __RegistryLinked_init(registryAddress);
33
33
  _initializeERC165();
34
34
  _registerInterface(type(IPolicyHolder).interfaceId);
35
35
  }
@@ -1,8 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
6
 
7
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
+ import {ContractLib} from "../shared/ContractLib.sol";
6
9
  import {NftId, NftIdLib} from "../type/NftId.sol";
7
10
  import {NftOwnable} from "../shared/NftOwnable.sol";
8
11
  import {ObjectType} from "../type/ObjectType.sol";
@@ -10,13 +13,13 @@ import {VersionPart, VersionPartLib} from "../type/Version.sol";
10
13
 
11
14
  import {IRegistry} from "../registry/IRegistry.sol";
12
15
  import {IRegisterable} from "./IRegisterable.sol";
16
+ import {IRelease} from "../registry/IRelease.sol";
13
17
 
14
- contract Registerable is
18
+ abstract contract Registerable is
19
+ AccessManagedUpgradeable,
15
20
  NftOwnable,
16
21
  IRegisterable
17
22
  {
18
- uint256 public constant GIF_RELEASE = 3;
19
-
20
23
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
21
24
  bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
22
25
 
@@ -27,7 +30,15 @@ contract Registerable is
27
30
  bytes _data;
28
31
  }
29
32
 
30
- function _initializeRegisterable(
33
+ modifier onlyActive() {
34
+ if (!isActive()) {
35
+ revert ErrorRegisterableNotActive();
36
+ }
37
+ _;
38
+ }
39
+
40
+ function __Registerable_init(
41
+ address authority,
31
42
  address registry,
32
43
  NftId parentNftId,
33
44
  ObjectType objectType,
@@ -39,25 +50,32 @@ contract Registerable is
39
50
  virtual
40
51
  onlyInitializing()
41
52
  {
42
- _initializeNftOwnable(
43
- registry,
44
- initialOwner);
45
-
46
- RegisterableStorage storage $;
47
- assembly {
48
- $.slot := REGISTERABLE_LOCATION_V1
53
+ if (!ContractLib.isAuthority(authority)) {
54
+ revert ErrorAuthorityInvalid(authority);
49
55
  }
50
56
 
57
+ __AccessManaged_init(authority);
58
+ __NftOwnable_init(registry, initialOwner);
59
+
60
+ RegisterableStorage storage $ = _getRegisterableStorage();
51
61
  $._parentNftId = parentNftId;
52
62
  $._objectType = objectType;
53
63
  $._isInterceptor = isInterceptor;
54
64
  $._data = data;
65
+
66
+ _registerInterface(type(IAccessManaged).interfaceId);
55
67
  }
56
68
 
57
69
 
58
70
  /// @inheritdoc IRegisterable
59
- function getRelease() public virtual pure returns (VersionPart release) {
60
- return VersionPartLib.toVersionPart(GIF_RELEASE);
71
+ function isActive() public virtual view returns (bool active) {
72
+ return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
73
+ }
74
+
75
+
76
+ /// @inheritdoc IRelease
77
+ function getRelease() public virtual view returns (VersionPart release) {
78
+ return AccessManagerCloneable(authority()).getRelease();
61
79
  }
62
80
 
63
81
 
@@ -68,12 +86,8 @@ contract Registerable is
68
86
  virtual
69
87
  returns (IRegistry.ObjectInfo memory info)
70
88
  {
71
- RegisterableStorage storage $;
72
- assembly {
73
- $.slot := REGISTERABLE_LOCATION_V1
74
- }
75
-
76
- info = IRegistry.ObjectInfo(
89
+ RegisterableStorage storage $ = _getRegisterableStorage();
90
+ return IRegistry.ObjectInfo(
77
91
  NftIdLib.zero(),
78
92
  $._parentNftId,
79
93
  $._objectType,
@@ -82,4 +96,11 @@ contract Registerable is
82
96
  getOwner(),
83
97
  $._data);
84
98
  }
99
+
100
+
101
+ function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
102
+ assembly {
103
+ $.slot := REGISTERABLE_LOCATION_V1
104
+ }
105
+ }
85
106
  }
@@ -2,6 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {ContractLib} from "../shared/ContractLib.sol";
5
7
  import {IRegistry} from "../registry/IRegistry.sol";
6
8
  import {IRegistryLinked} from "./IRegistryLinked.sol";
7
9
 
@@ -15,26 +17,18 @@ contract RegistryLinked is
15
17
 
16
18
  /// @dev initialization for upgradable contracts
17
19
  // used in _initializeRegisterable
18
- function _initializeRegistryLinked(
19
- address registryAddress
20
+ function __RegistryLinked_init(
21
+ address registry
20
22
  )
21
23
  internal
22
24
  virtual
23
25
  onlyInitializing()
24
26
  {
25
- if (registryAddress.code.length == 0) {
26
- revert ErrorNotRegistry(registryAddress);
27
+ if (!ContractLib.isRegistry(registry)) {
28
+ revert ErrorNotRegistry(registry);
27
29
  }
28
30
 
29
- _registry = IRegistry(registryAddress);
30
-
31
- try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
32
- if (!isRegistry) {
33
- revert ErrorNotRegistry(registryAddress);
34
- }
35
- } catch {
36
- revert ErrorNotRegistry(registryAddress);
37
- }
31
+ _registry = IRegistry(registry);
38
32
  }
39
33
 
40
34
 
@@ -1,17 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
4
  import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
7
5
 
8
6
  import {IRegistry} from "../registry/IRegistry.sol";
9
7
  import {IService} from "./IService.sol";
10
8
  import {IVersionable} from "../upgradeability/IVersionable.sol";
11
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
9
+ import {ObjectType, SERVICE} from "../type/ObjectType.sol";
12
10
  import {Registerable} from "./Registerable.sol";
13
11
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
- import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
12
+ import {Version, VersionLib} from "../type/Version.sol";
15
13
  import {Versionable} from "../upgradeability/Versionable.sol";
16
14
 
17
15
 
@@ -19,14 +17,13 @@ import {Versionable} from "../upgradeability/Versionable.sol";
19
17
  abstract contract Service is
20
18
  Registerable,
21
19
  Versionable,
22
- AccessManagedUpgradeable,
23
20
  ReentrancyGuardUpgradeable,
24
21
  IService
25
22
  {
26
23
 
27
- function _initializeService(
28
- address registry,
24
+ function __Service_init(
29
25
  address authority, // real authority for registry service adress(0) for other services
26
+ address registry,
30
27
  address initialOwner
31
28
  )
32
29
  internal
@@ -35,17 +32,8 @@ abstract contract Service is
35
32
  {
36
33
  __ReentrancyGuard_init();
37
34
 
38
- // externally provided authority
39
- if(authority != address(0)) {
40
- __AccessManaged_init(authority);
41
- } else {
42
- address registryServiceAddress = _getServiceAddress(REGISTRY());
43
-
44
- // copy authority from already registered registry services
45
- __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
46
- }
47
-
48
- _initializeRegisterable(
35
+ __Registerable_init(
36
+ authority,
49
37
  registry,
50
38
  IRegistry(registry).getNftId(),
51
39
  SERVICE(),
@@ -53,8 +41,6 @@ abstract contract Service is
53
41
  initialOwner,
54
42
  ""); // data
55
43
 
56
-
57
- _registerInterface(type(IAccessManaged).interfaceId);
58
44
  _registerInterface(type(IService).interfaceId);
59
45
  }
60
46
 
@@ -62,22 +48,19 @@ abstract contract Service is
62
48
  return _getDomain();
63
49
  }
64
50
 
65
- function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
66
- return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
51
+ function getVersion() public pure virtual override (IVersionable, Versionable) returns(Version) {
52
+ return VersionLib.toVersion(3, 0, 0);
67
53
  }
68
54
 
69
- /// @inheritdoc IVersionable
70
- function getVersion()
71
- public
72
- pure
73
- virtual override (IVersionable, Versionable)
74
- returns(Version)
75
- {
76
- return VersionLib.toVersion(GIF_RELEASE,0,0);
55
+
56
+ function getRoleId() external virtual view returns(RoleId serviceRoleId) {
57
+ return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
77
58
  }
78
59
 
60
+ //--- internal functions --------------------------------------------------------//
79
61
  function _getDomain() internal virtual pure returns (ObjectType);
80
62
 
63
+
81
64
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
82
65
  return getRegistry().getServiceAddress(domain, getRelease());
83
66
  }