@etherisc/gif-next 0.0.2-93de5de-423 → 0.0.2-93ee1cf-782

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 (684) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +324 -350
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +338 -2102
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +301 -77
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +404 -2888
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1382 -482
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +366 -370
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -106
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  93. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  96. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  97. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  107. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +370 -283
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  109. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +327 -303
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  115. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +473 -541
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  125. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +414 -392
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  139. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +422 -520
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1484 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +862 -0
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +203 -202
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +979 -0
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +253 -137
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  155. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +464 -265
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +120 -64
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  167. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +473 -24
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -123
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -118
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -253
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1835 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +846 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +118 -185
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  209. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  211. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +245 -138
  212. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  214. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  216. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  222. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  224. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  226. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  228. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.json +135 -18
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  231. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  233. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  235. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  236. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  248. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Service.sol/Service.json +136 -108
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  256. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  257. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +723 -677
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  262. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  263. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  279. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  293. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  310. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  318. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  322. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  324. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  326. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  328. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  330. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  331. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  337. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  338. package/contracts/authorization/AccessAdmin.sol +616 -0
  339. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  340. package/contracts/authorization/Authorization.sol +289 -0
  341. package/contracts/authorization/IAccess.sol +49 -0
  342. package/contracts/authorization/IAccessAdmin.sol +137 -0
  343. package/contracts/authorization/IAuthorization.sol +60 -0
  344. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  345. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  346. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  347. package/contracts/distribution/BasicDistribution.sol +139 -0
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  349. package/contracts/distribution/Distribution.sol +284 -0
  350. package/contracts/distribution/DistributionService.sol +354 -0
  351. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  352. package/contracts/distribution/IDistributionComponent.sol +52 -0
  353. package/contracts/distribution/IDistributionService.sol +100 -0
  354. package/contracts/examples/fire/DamageLevel.sol +59 -0
  355. package/contracts/examples/fire/FirePool.sol +86 -0
  356. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  357. package/contracts/examples/fire/FireProduct.sol +431 -0
  358. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  359. package/contracts/examples/fire/FireUSD.sol +26 -0
  360. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  361. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  362. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  363. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  364. package/contracts/instance/BundleSet.sol +130 -0
  365. package/contracts/instance/IInstance.sol +51 -71
  366. package/contracts/instance/IInstanceService.sol +41 -26
  367. package/contracts/instance/Instance.sol +173 -223
  368. package/contracts/instance/InstanceAdmin.sol +278 -0
  369. package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
  370. package/contracts/instance/InstanceReader.sol +349 -63
  371. package/contracts/instance/InstanceService.sol +295 -347
  372. package/contracts/instance/InstanceServiceManager.sol +14 -29
  373. package/contracts/instance/InstanceStore.sol +287 -0
  374. package/contracts/instance/RiskSet.sol +119 -0
  375. package/contracts/instance/base/BalanceStore.sol +123 -0
  376. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  377. package/contracts/instance/base/ObjectCounter.sol +21 -0
  378. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  379. package/contracts/instance/base/ObjectSet.sol +78 -0
  380. package/contracts/instance/module/IAccess.sol +19 -20
  381. package/contracts/instance/module/IBundle.sol +8 -8
  382. package/contracts/instance/module/IComponents.sol +50 -0
  383. package/contracts/instance/module/IDistribution.sol +6 -4
  384. package/contracts/instance/module/IPolicy.sol +56 -18
  385. package/contracts/instance/module/IRisk.sol +2 -1
  386. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  387. package/contracts/oracle/BasicOracle.sol +47 -0
  388. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  389. package/contracts/oracle/IOracle.sol +36 -0
  390. package/contracts/oracle/IOracleComponent.sol +33 -0
  391. package/contracts/oracle/IOracleService.sol +66 -0
  392. package/contracts/oracle/Oracle.sol +156 -0
  393. package/contracts/oracle/OracleService.sol +309 -0
  394. package/contracts/oracle/OracleServiceManager.sol +39 -0
  395. package/contracts/pool/BasicPool.sol +175 -0
  396. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  397. package/contracts/pool/BundleService.sol +423 -0
  398. package/contracts/pool/BundleServiceManager.sol +39 -0
  399. package/contracts/pool/IBundleService.sol +122 -0
  400. package/contracts/pool/IPoolComponent.sol +62 -0
  401. package/contracts/pool/IPoolService.sol +153 -0
  402. package/contracts/pool/Pool.sol +345 -0
  403. package/contracts/pool/PoolService.sol +612 -0
  404. package/contracts/pool/PoolServiceManager.sol +39 -0
  405. package/contracts/product/ApplicationService.sol +259 -0
  406. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  407. package/contracts/product/BasicProduct.sol +49 -0
  408. package/contracts/product/BasicProductAuthorization.sol +42 -0
  409. package/contracts/product/ClaimService.sol +643 -0
  410. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  411. package/contracts/{instance/service → product}/IApplicationService.sol +20 -36
  412. package/contracts/product/IClaimService.sol +130 -0
  413. package/contracts/product/IPolicyService.sol +90 -0
  414. package/contracts/product/IPricingService.sol +39 -0
  415. package/contracts/product/IProductComponent.sol +59 -0
  416. package/contracts/product/IRiskService.sol +33 -0
  417. package/contracts/product/PolicyService.sol +733 -0
  418. package/contracts/product/PolicyServiceManager.sol +39 -0
  419. package/contracts/product/PricingService.sol +300 -0
  420. package/contracts/product/PricingServiceManager.sol +39 -0
  421. package/contracts/product/Product.sol +427 -0
  422. package/contracts/product/RiskService.sol +107 -0
  423. package/contracts/product/RiskServiceManager.sol +39 -0
  424. package/contracts/registry/ChainNft.sol +79 -34
  425. package/contracts/registry/IRegistry.sol +100 -26
  426. package/contracts/registry/IRegistryService.sol +36 -41
  427. package/contracts/registry/ITransferInterceptor.sol +1 -1
  428. package/contracts/registry/Registry.sol +465 -204
  429. package/contracts/registry/RegistryAdmin.sol +451 -0
  430. package/contracts/registry/RegistryService.sol +87 -129
  431. package/contracts/registry/RegistryServiceManager.sol +23 -32
  432. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  433. package/contracts/registry/ReleaseRegistry.sol +485 -0
  434. package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
  435. package/contracts/registry/TokenRegistry.sol +261 -62
  436. package/contracts/shared/Component.sol +217 -0
  437. package/contracts/shared/ComponentService.sol +806 -0
  438. package/contracts/shared/ComponentServiceManager.sol +38 -0
  439. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  440. package/contracts/shared/ContractLib.sol +224 -0
  441. package/contracts/shared/IComponent.sol +67 -0
  442. package/contracts/shared/IComponentService.sol +130 -0
  443. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  444. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  445. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  446. package/contracts/shared/INftOwnable.sol +4 -2
  447. package/contracts/shared/IPolicyHolder.sol +23 -14
  448. package/contracts/shared/IRegisterable.sol +11 -0
  449. package/contracts/shared/IRegistryLinked.sol +0 -1
  450. package/contracts/shared/IService.sol +15 -6
  451. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  452. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  453. package/contracts/shared/KeyValueStore.sol +131 -0
  454. package/contracts/shared/Lifecycle.sol +88 -0
  455. package/contracts/shared/NftIdSet.sol +65 -0
  456. package/contracts/shared/NftOwnable.sol +32 -25
  457. package/contracts/shared/PolicyHolder.sol +22 -41
  458. package/contracts/shared/Registerable.sol +31 -22
  459. package/contracts/shared/RegistryLinked.sol +9 -19
  460. package/contracts/shared/Service.sol +55 -29
  461. package/contracts/shared/TokenHandler.sol +374 -12
  462. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  463. package/contracts/staking/IStaking.sol +173 -0
  464. package/contracts/staking/IStakingService.sol +157 -0
  465. package/contracts/staking/StakeManagerLib.sol +224 -0
  466. package/contracts/staking/Staking.sol +505 -0
  467. package/contracts/staking/StakingLifecycle.sol +23 -0
  468. package/contracts/staking/StakingManager.sol +52 -0
  469. package/contracts/staking/StakingReader.sol +190 -0
  470. package/contracts/staking/StakingService.sol +440 -0
  471. package/contracts/staking/StakingServiceManager.sol +44 -0
  472. package/contracts/staking/StakingStore.sol +605 -0
  473. package/contracts/staking/TargetManagerLib.sol +211 -0
  474. package/contracts/{types → type}/AddressSet.sol +1 -1
  475. package/contracts/type/Amount.sol +150 -0
  476. package/contracts/{types → type}/Blocknumber.sol +27 -3
  477. package/contracts/{types → type}/ClaimId.sol +31 -3
  478. package/contracts/{types → type}/Fee.sol +33 -23
  479. package/contracts/{types → type}/Key32.sol +2 -2
  480. package/contracts/type/Key32Set.sol +62 -0
  481. package/contracts/{types → type}/NftId.sol +28 -15
  482. package/contracts/{types → type}/NftIdSet.sol +2 -2
  483. package/contracts/type/ObjectType.sol +278 -0
  484. package/contracts/type/PayoutId.sol +82 -0
  485. package/contracts/{types → type}/Referral.sol +6 -1
  486. package/contracts/type/RequestId.sol +75 -0
  487. package/contracts/{types → type}/RiskId.sol +31 -5
  488. package/contracts/type/RoleId.sol +162 -0
  489. package/contracts/type/Seconds.sol +101 -0
  490. package/contracts/type/Selector.sol +102 -0
  491. package/contracts/{types → type}/StateId.sol +48 -4
  492. package/contracts/type/String.sol +53 -0
  493. package/contracts/{types → type}/Timestamp.sol +34 -15
  494. package/contracts/{types → type}/UFixed.sol +39 -9
  495. package/contracts/{types → type}/Version.sol +5 -2
  496. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  497. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  498. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  499. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  500. package/package.json +11 -7
  501. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  502. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  503. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  504. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  505. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  506. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  507. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  508. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  509. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  511. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  512. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  513. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  514. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  516. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  521. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  522. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  523. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  527. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  529. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  531. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  533. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  535. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  537. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  539. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  541. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  545. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  547. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  550. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  553. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  555. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  557. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  559. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  561. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  563. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  564. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  565. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  566. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  567. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  568. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  569. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  570. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  571. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  572. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  573. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  574. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  575. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  576. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  578. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  579. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  580. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  581. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  582. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  583. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  584. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  585. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  587. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  589. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  591. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  592. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  593. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  594. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  595. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  597. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  599. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  601. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  603. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  605. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  607. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  609. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  610. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  611. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  613. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  615. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  617. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  619. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  621. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  623. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  625. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  627. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  629. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  631. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  633. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  635. package/contracts/components/Component.sol +0 -241
  636. package/contracts/components/Distribution.sol +0 -308
  637. package/contracts/components/IComponent.sol +0 -54
  638. package/contracts/components/IDistributionComponent.sol +0 -100
  639. package/contracts/components/IPoolComponent.sol +0 -87
  640. package/contracts/components/IProductComponent.sol +0 -39
  641. package/contracts/components/Pool.sol +0 -254
  642. package/contracts/components/Product.sol +0 -285
  643. package/contracts/instance/BundleManager.sol +0 -125
  644. package/contracts/instance/InstanceAccessManager.sol +0 -297
  645. package/contracts/instance/ObjectManager.sol +0 -84
  646. package/contracts/instance/base/ComponentService.sol +0 -134
  647. package/contracts/instance/base/KeyValueStore.sol +0 -172
  648. package/contracts/instance/base/Lifecycle.sol +0 -100
  649. package/contracts/instance/module/ISetup.sol +0 -47
  650. package/contracts/instance/module/ITreasury.sol +0 -23
  651. package/contracts/instance/service/ApplicationService.sol +0 -268
  652. package/contracts/instance/service/BundleService.sol +0 -298
  653. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  654. package/contracts/instance/service/ClaimService.sol +0 -151
  655. package/contracts/instance/service/DistributionService.sol +0 -277
  656. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  657. package/contracts/instance/service/IBundleService.sol +0 -54
  658. package/contracts/instance/service/IClaimService.sol +0 -61
  659. package/contracts/instance/service/IDistributionService.sol +0 -65
  660. package/contracts/instance/service/IPolicyService.sol +0 -89
  661. package/contracts/instance/service/IPoolService.sol +0 -20
  662. package/contracts/instance/service/IProductService.sol +0 -40
  663. package/contracts/instance/service/PolicyService.sol +0 -474
  664. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  665. package/contracts/instance/service/PoolService.sol +0 -109
  666. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  667. package/contracts/instance/service/ProductService.sol +0 -233
  668. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  669. package/contracts/registry/RegistryAccessManager.sol +0 -216
  670. package/contracts/registry/ReleaseManager.sol +0 -322
  671. package/contracts/shared/ContractDeployerLib.sol +0 -72
  672. package/contracts/test/TestFee.sol +0 -25
  673. package/contracts/test/TestRegisterable.sol +0 -18
  674. package/contracts/test/TestRoleId.sol +0 -14
  675. package/contracts/test/TestService.sol +0 -25
  676. package/contracts/test/TestToken.sol +0 -26
  677. package/contracts/test/TestVersion.sol +0 -44
  678. package/contracts/test/TestVersionable.sol +0 -17
  679. package/contracts/types/ChainId.sol +0 -38
  680. package/contracts/types/NumberId.sol +0 -52
  681. package/contracts/types/ObjectType.sol +0 -156
  682. package/contracts/types/PayoutId.sol +0 -54
  683. package/contracts/types/RoleId.sol +0 -90
  684. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,15 +1,14 @@
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";
5
-
6
- import {ERC165} from "./ERC165.sol";
4
+ import {InitializableERC165} from "./InitializableERC165.sol";
7
5
  import {INftOwnable} from "./INftOwnable.sol";
8
- import {NftId} from "../types/NftId.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
9
8
  import {RegistryLinked} from "./RegistryLinked.sol";
10
9
 
11
10
  contract NftOwnable is
12
- ERC165,
11
+ InitializableERC165,
13
12
  RegistryLinked,
14
13
  INftOwnable
15
14
  {
@@ -29,19 +28,37 @@ contract NftOwnable is
29
28
  _;
30
29
  }
31
30
 
31
+ modifier onlyNftOwner(NftId nftId) {
32
+ if(!getRegistry().isOwnerOf(nftId, msg.sender)) {
33
+ revert ErrorNftOwnableNotOwner(msg.sender);
34
+ }
35
+ _;
36
+ }
37
+
38
+ modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
39
+ _checkNftType(nftId, expectedObjectType);
40
+ _;
41
+ }
42
+
43
+ function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
44
+ if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
45
+ revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
46
+ }
47
+ }
48
+
32
49
 
33
50
  /// @dev initialization for upgradable contracts
34
51
  // used in _initializeRegisterable
35
- function initializeNftOwnable(
36
- address initialOwner,
37
- address registryAddress
52
+ function _initializeNftOwnable(
53
+ address registry,
54
+ address initialOwner
38
55
  )
39
- public
56
+ internal
40
57
  virtual
41
58
  onlyInitializing()
42
59
  {
43
- initializeRegistryLinked(registryAddress);
44
- initializeERC165();
60
+ _initializeRegistryLinked(registry);
61
+ _initializeERC165();
45
62
 
46
63
  if(initialOwner == address(0)) {
47
64
  revert ErrorNftOwnableInitialOwnerZero();
@@ -58,20 +75,9 @@ contract NftOwnable is
58
75
  function linkToRegisteredNftId()
59
76
  public
60
77
  virtual
78
+ returns (NftId nftId)
61
79
  {
62
- NftOwnableStorage storage $ = _getNftOwnableStorage();
63
-
64
- if ($._nftId.gtz()) {
65
- revert ErrorNftOwnableAlreadyLinked($._nftId);
66
- }
67
-
68
- address contractAddress = address(this);
69
-
70
- if (!getRegistry().isRegistered(contractAddress)) {
71
- revert ErrorNftOwnableContractNotRegistered(contractAddress);
72
- }
73
-
74
- $._nftId = getRegistry().getNftId(contractAddress);
80
+ return _linkToNftOwnable(address(this));
75
81
  }
76
82
 
77
83
  function getNftId() public view virtual override returns (NftId) {
@@ -106,13 +112,14 @@ contract NftOwnable is
106
112
  revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
107
113
  }
108
114
 
109
- $._nftId = getRegistry().getNftId(nftOwnableAddress);
115
+ $._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
110
116
 
111
117
  return $._nftId;
112
118
  }
113
119
 
114
120
 
115
121
  function _getNftOwnableStorage() private pure returns (NftOwnableStorage storage $) {
122
+ // solhint-disable-next-line no-inline-assembly
116
123
  assembly {
117
124
  $.slot := NFT_OWNABLE_STORAGE_LOCATION_V1
118
125
  }
@@ -1,55 +1,50 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
4
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
7
5
 
8
- import {ERC165} from "./ERC165.sol";
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {InitializableERC165} from "./InitializableERC165.sol";
9
9
  import {IPolicyHolder} from "./IPolicyHolder.sol";
10
- import {IRegistry} from "../registry/IRegistry.sol";
11
- import {NftId} from "../types/NftId.sol";
12
- import {NumberId} from "../types/NumberId.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
13
12
  import {RegistryLinked} from "./RegistryLinked.sol";
13
+ import {Timestamp} from "../type/Timestamp.sol";
14
14
 
15
15
  /// @dev template implementation for IPolicyHolder
16
16
  contract PolicyHolder is
17
- ERC165,
17
+ InitializableERC165,
18
18
  RegistryLinked,
19
19
  IPolicyHolder
20
20
  {
21
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
22
- // TODO fix address
23
- bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
21
+ // TODO add modifier to protect callback functions from unauthorized access
22
+ // callbacks must only be allowed from the policy and claim services
23
+ // will need a release parameter to fetch the right service addresses for the modifiers
24
24
 
25
- // TODO uncomment/fix/refactor
26
- struct PolicyHolderStorage {
27
- // mapping(NftId policyId => mapping(NumberId claimId => address beneficiary)) private _claimBeneficiary;
28
- // mapping(NftId policyId => address beneficiary) private _beneficiary;
29
- bool dummy;
30
- }
31
-
32
- function initializePolicyHolder(
25
+ function _initializePolicyHolder(
33
26
  address registryAddress
34
27
  )
35
- public
28
+ internal
36
29
  virtual
37
30
  onlyInitializing()
38
31
  {
39
- initializeRegistryLinked(registryAddress);
32
+ _initializeRegistryLinked(registryAddress);
33
+ _initializeERC165();
34
+ _registerInterface(type(IPolicyHolder).interfaceId);
40
35
  }
41
36
 
42
37
  /// @dev empty default implementation
43
- function policyCreatedCallback(NftId policyNftId) external virtual { }
38
+ function policyActivated(NftId policyNftId, Timestamp activatedAt) external virtual {}
44
39
 
45
40
  /// @dev empty default implementation
46
- function payoutExecutedCallback(NftId policyNftId, NumberId payoutId, address beneficiary, uint256 amount) external virtual { }
41
+ function policyExpired(NftId policyNftId, Timestamp expiredAt) external virtual {}
47
42
 
48
- /// @dev determines beneficiary address that will be used in payouts targeting this contract
49
- /// returned address will override GIF default where the policy nft holder is treated as beneficiary
50
- function getBeneficiary(NftId policyId, NumberId claimId) external virtual view returns (address beneficiary) {
51
- // TODO add implementation
52
- }
43
+ /// @dev empty default implementation
44
+ function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external virtual {}
45
+
46
+ /// @dev empty default implementation
47
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
53
48
 
54
49
  //--- IERC165 functions ---------------//
55
50
  function onERC721Received(
@@ -64,18 +59,4 @@ contract PolicyHolder is
64
59
  {
65
60
  return IERC721Receiver.onERC721Received.selector;
66
61
  }
67
-
68
- function _setBeneficiary(address beneficiary) internal {
69
-
70
- }
71
-
72
- function _setBeneficiary(NftId policyId, address beneficiary) internal {
73
-
74
- }
75
-
76
- function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
77
- assembly {
78
- $.slot := POLICY_HOLDER_STORAGE_LOCATION_V1
79
- }
80
- }
81
62
  }
@@ -1,20 +1,20 @@
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";
5
-
6
- import {NftId, zeroNftId} from "../types/NftId.sol";
4
+ import {NftId, NftIdLib} from "../type/NftId.sol";
7
5
  import {NftOwnable} from "../shared/NftOwnable.sol";
8
- import {ObjectType} from "../types/ObjectType.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
9
8
 
10
9
  import {IRegistry} from "../registry/IRegistry.sol";
11
10
  import {IRegisterable} from "./IRegisterable.sol";
12
- import {Versionable} from "./Versionable.sol";
13
11
 
14
12
  contract Registerable is
15
13
  NftOwnable,
16
14
  IRegisterable
17
15
  {
16
+ uint256 public constant GIF_RELEASE = 3;
17
+
18
18
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
19
19
  bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
20
20
 
@@ -25,29 +25,27 @@ contract Registerable is
25
25
  bytes _data;
26
26
  }
27
27
 
28
- function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
29
- assembly {
30
- $.slot := REGISTERABLE_LOCATION_V1
31
- }
32
- }
33
-
34
- function initializeRegisterable(
35
- address registryAddress,
28
+ function _initializeRegisterable(
29
+ address registry,
36
30
  NftId parentNftId,
37
31
  ObjectType objectType,
38
32
  bool isInterceptor,
39
33
  address initialOwner,
40
- bytes memory data
34
+ bytes memory data // writeonly data that will saved in the object info record of the registry
41
35
  )
42
- public
36
+ internal
43
37
  virtual
44
- onlyInitializing
38
+ onlyInitializing()
45
39
  {
46
- initializeNftOwnable(
47
- initialOwner,
48
- registryAddress);
40
+ _initializeNftOwnable(
41
+ registry,
42
+ initialOwner);
43
+
44
+ RegisterableStorage storage $;
45
+ assembly {
46
+ $.slot := REGISTERABLE_LOCATION_V1
47
+ }
49
48
 
50
- RegisterableStorage storage $ = _getRegisterableStorage();
51
49
  $._parentNftId = parentNftId;
52
50
  $._objectType = objectType;
53
51
  $._isInterceptor = isInterceptor;
@@ -55,15 +53,26 @@ contract Registerable is
55
53
  }
56
54
 
57
55
 
56
+ /// @inheritdoc IRegisterable
57
+ function getRelease() public virtual pure returns (VersionPart release) {
58
+ return VersionPartLib.toVersionPart(GIF_RELEASE);
59
+ }
60
+
61
+
62
+ /// @inheritdoc IRegisterable
58
63
  function getInitialInfo()
59
64
  public
60
65
  view
61
66
  virtual
62
67
  returns (IRegistry.ObjectInfo memory info)
63
68
  {
64
- RegisterableStorage memory $ = _getRegisterableStorage();
69
+ RegisterableStorage storage $;
70
+ assembly {
71
+ $.slot := REGISTERABLE_LOCATION_V1
72
+ }
73
+
65
74
  info = IRegistry.ObjectInfo(
66
- zeroNftId(),
75
+ NftIdLib.zero(),
67
76
  $._parentNftId,
68
77
  $._objectType,
69
78
  $._isInterceptor,
@@ -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
 
@@ -10,39 +12,27 @@ contract RegistryLinked is
10
12
  IRegistryLinked
11
13
  {
12
14
 
15
+ // priorize simplicity and size over using standard upgradeability structs
13
16
  IRegistry private _registry;
14
17
 
15
18
  /// @dev initialization for upgradable contracts
16
19
  // used in _initializeRegisterable
17
- function initializeRegistryLinked(
18
- address registryAddress
20
+ function _initializeRegistryLinked(
21
+ address registry
19
22
  )
20
- public
23
+ internal
21
24
  virtual
22
25
  onlyInitializing()
23
26
  {
24
- if (registryAddress.code.length == 0) {
25
- revert ErrorNotRegistry(registryAddress);
27
+ if (!ContractLib.isRegistry(registry)) {
28
+ revert ErrorNotRegistry(registry);
26
29
  }
27
30
 
28
- _registry = IRegistry(registryAddress);
29
-
30
- try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
31
- if (!isRegistry) {
32
- revert ErrorNotRegistry(registryAddress);
33
- }
34
- } catch {
35
- revert ErrorNotRegistry(registryAddress);
36
- }
31
+ _registry = IRegistry(registry);
37
32
  }
38
33
 
39
34
 
40
35
  function getRegistry() public view returns (IRegistry) {
41
36
  return _registry;
42
37
  }
43
-
44
-
45
- function getRegistryAddress() public view returns (address) {
46
- return address(_registry);
47
- }
48
38
  }
@@ -1,51 +1,51 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {ObjectType, SERVICE} from "../types/ObjectType.sol";
5
- import {NftId, zeroNftId} from "../types/NftId.sol";
6
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
7
7
 
8
- import {Versionable} from "./Versionable.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
9
  import {IService} from "./IService.sol";
10
- import {IVersionable} from "./IVersionable.sol";
11
- import {Versionable} from "./Versionable.sol";
10
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
12
12
  import {Registerable} from "./Registerable.sol";
13
-
14
- import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
+ import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
15
+ import {Versionable} from "../upgradeability/Versionable.sol";
15
16
 
16
17
 
17
18
  /// @dev service base contract
18
19
  abstract contract Service is
19
20
  Registerable,
20
21
  Versionable,
22
+ AccessManagedUpgradeable,
23
+ ReentrancyGuardUpgradeable,
21
24
  IService
22
25
  {
23
- function getDomain() public pure virtual override returns(ObjectType);
24
-
25
- // version major version MUST be consistent with major version of getVersion()
26
- function getMajorVersion() public view virtual override returns(VersionPart majorVersion) {
27
- return VersionPartLib.toVersionPart(3);
28
- }
29
-
30
- // from Versionable
31
- function getVersion()
32
- public
33
- pure
34
- virtual override (IVersionable, Versionable)
35
- returns(Version)
36
- {
37
- return VersionLib.toVersion(3,0,0);
38
- }
39
26
 
40
- function initializeService(
27
+ function _initializeService(
41
28
  address registry,
29
+ address authority, // real authority for registry service adress(0) for other services
42
30
  address initialOwner
43
31
  )
44
- public
32
+ internal
45
33
  virtual
46
34
  onlyInitializing()
47
35
  {
48
- initializeRegisterable(
36
+ __ReentrancyGuard_init();
37
+
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(
49
49
  registry,
50
50
  IRegistry(registry).getNftId(),
51
51
  SERVICE(),
@@ -53,6 +53,32 @@ abstract contract Service is
53
53
  initialOwner,
54
54
  ""); // data
55
55
 
56
- registerInterface(type(IService).interfaceId);
56
+
57
+ _registerInterface(type(IAccessManaged).interfaceId);
58
+ _registerInterface(type(IService).interfaceId);
59
+ }
60
+
61
+ function getDomain() external virtual pure returns(ObjectType serviceDomain) {
62
+ return _getDomain();
63
+ }
64
+
65
+ function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
66
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
67
+ }
68
+
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);
77
+ }
78
+
79
+ function _getDomain() internal virtual pure returns (ObjectType);
80
+
81
+ function _getServiceAddress(ObjectType domain) internal view returns (address) {
82
+ return getRegistry().getServiceAddress(domain, getRelease());
57
83
  }
58
84
  }