@etherisc/gif-next 0.0.2-d16f92c-416 → 0.0.2-d18e1c5-511

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 (642) hide show
  1. package/README.md +130 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +525 -342
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -616
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +754 -323
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +228 -124
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +145 -282
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +535 -78
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  85. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +59 -195
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +580 -80
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +398 -75
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +590 -218
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1889 -313
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1760 -840
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -274
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +141 -127
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1298 -1857
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  123. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  134. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  136. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +142 -139
  138. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  140. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +140 -423
  142. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  144. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  146. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  147. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  148. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  149. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  150. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +569 -265
  152. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +216 -104
  154. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  156. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +147 -406
  158. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  160. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  161. package/artifacts/contracts/pool/Pool.sol/Pool.json +144 -694
  162. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  163. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  164. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  166. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -106
  168. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  169. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  170. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  172. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  173. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  174. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  175. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  176. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  177. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  178. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  179. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  180. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  182. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  184. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  186. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  188. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  189. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +282 -271
  190. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  191. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  192. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  193. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  194. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  195. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  196. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -108
  198. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  199. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  200. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  202. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  203. package/artifacts/contracts/product/Product.sol/Product.json +316 -606
  204. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  205. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  206. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  208. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  210. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +384 -69
  212. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
  214. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  215. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  216. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  217. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  218. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  219. package/artifacts/contracts/registry/Registry.sol/Registry.json +617 -133
  220. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +796 -537
  222. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  224. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  226. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  228. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  230. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  232. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  234. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +523 -27
  236. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  238. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  240. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +609 -569
  242. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +197 -131
  244. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  252. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  254. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  256. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +131 -139
  258. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  266. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  270. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  272. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +125 -376
  273. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  274. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  275. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  276. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  277. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  279. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  280. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  281. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  283. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  284. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  285. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  291. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  292. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  293. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  295. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  297. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  298. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  299. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  300. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  301. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  302. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  303. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  305. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  307. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  308. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  309. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  310. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  311. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  312. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1637 -801
  313. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  314. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  315. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  316. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  317. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  318. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  319. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  321. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  323. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  325. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  327. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  329. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  331. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  333. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  334. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  335. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  337. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  338. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  339. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +61 -9
  341. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  343. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  345. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  347. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  348. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  349. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  351. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -91
  353. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +112 -2
  355. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  357. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  358. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  359. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  360. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  361. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  362. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  363. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  364. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +56 -5
  365. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  366. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  367. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  368. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  369. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  370. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  371. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  372. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  373. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  374. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  375. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  376. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  377. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  378. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  379. package/contracts/accounting/AccountingService.sol +274 -0
  380. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  381. package/contracts/accounting/IAccountingService.sol +47 -0
  382. package/contracts/authorization/AccessAdmin.sol +780 -0
  383. package/contracts/authorization/AccessAdminLib.sol +396 -0
  384. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  385. package/contracts/authorization/Authorization.sol +169 -0
  386. package/contracts/authorization/IAccess.sol +67 -0
  387. package/contracts/authorization/IAccessAdmin.sol +144 -0
  388. package/contracts/authorization/IAuthorization.sol +26 -0
  389. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  390. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  391. package/contracts/distribution/BasicDistribution.sol +140 -0
  392. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  393. package/contracts/distribution/Distribution.sol +125 -141
  394. package/contracts/distribution/DistributionService.sol +284 -133
  395. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  396. package/contracts/distribution/IDistributionComponent.sol +21 -42
  397. package/contracts/distribution/IDistributionService.sol +60 -26
  398. package/contracts/examples/fire/DamageLevel.sol +59 -0
  399. package/contracts/examples/fire/FirePool.sol +86 -0
  400. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  401. package/contracts/examples/fire/FireProduct.sol +433 -0
  402. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  403. package/contracts/examples/fire/FireUSD.sol +26 -0
  404. package/contracts/examples/flight/FlightLib.sol +279 -0
  405. package/contracts/examples/flight/FlightOracle.sol +167 -0
  406. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  407. package/contracts/examples/flight/FlightPool.sol +89 -0
  408. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  409. package/contracts/examples/flight/FlightProduct.sol +470 -0
  410. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  411. package/contracts/examples/flight/FlightUSD.sol +26 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  414. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  415. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  416. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  417. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  418. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  419. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  420. package/contracts/instance/BaseStore.sol +93 -0
  421. package/contracts/instance/BundleSet.sol +130 -0
  422. package/contracts/instance/IBaseStore.sol +37 -0
  423. package/contracts/instance/IInstance.sol +118 -49
  424. package/contracts/instance/IInstanceService.sol +68 -46
  425. package/contracts/instance/Instance.sol +221 -133
  426. package/contracts/instance/InstanceAdmin.sol +297 -249
  427. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  428. package/contracts/instance/InstanceReader.sol +498 -256
  429. package/contracts/instance/InstanceService.sol +340 -265
  430. package/contracts/instance/InstanceServiceManager.sol +8 -13
  431. package/contracts/instance/InstanceStore.sol +163 -109
  432. package/contracts/instance/ProductStore.sol +290 -0
  433. package/contracts/instance/RiskSet.sol +126 -0
  434. package/contracts/instance/TargetNames.sol +10 -0
  435. package/contracts/instance/base/BalanceStore.sol +4 -6
  436. package/contracts/instance/base/ObjectCounter.sol +1 -2
  437. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  438. package/contracts/instance/base/ObjectSet.sol +77 -0
  439. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  440. package/contracts/instance/module/IBundle.sol +6 -5
  441. package/contracts/instance/module/IComponents.sol +29 -21
  442. package/contracts/instance/module/IDistribution.sol +21 -9
  443. package/contracts/instance/module/IPolicy.sol +50 -29
  444. package/contracts/instance/module/IRisk.sol +5 -0
  445. package/contracts/mock/Dip.sol +1 -1
  446. package/contracts/oracle/BasicOracle.sol +44 -0
  447. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  448. package/contracts/oracle/IOracle.sol +25 -4
  449. package/contracts/oracle/IOracleComponent.sol +2 -1
  450. package/contracts/oracle/IOracleService.sol +14 -13
  451. package/contracts/oracle/Oracle.sol +60 -53
  452. package/contracts/oracle/OracleService.sol +119 -87
  453. package/contracts/oracle/OracleServiceManager.sol +8 -11
  454. package/contracts/pool/BasicPool.sol +161 -0
  455. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  456. package/contracts/pool/BundleService.sol +222 -132
  457. package/contracts/pool/BundleServiceManager.sol +8 -11
  458. package/contracts/pool/IBundleService.sol +43 -33
  459. package/contracts/pool/IPoolComponent.sol +20 -70
  460. package/contracts/pool/IPoolService.sol +97 -77
  461. package/contracts/pool/Pool.sol +196 -164
  462. package/contracts/pool/PoolLib.sol +341 -0
  463. package/contracts/pool/PoolService.sol +419 -257
  464. package/contracts/pool/PoolServiceManager.sol +6 -9
  465. package/contracts/product/ApplicationService.sol +154 -81
  466. package/contracts/product/ApplicationServiceManager.sol +6 -6
  467. package/contracts/product/BasicProduct.sol +48 -0
  468. package/contracts/product/BasicProductAuthorization.sol +64 -0
  469. package/contracts/product/ClaimService.sol +391 -207
  470. package/contracts/product/ClaimServiceManager.sol +6 -6
  471. package/contracts/product/IApplicationService.sol +29 -3
  472. package/contracts/product/IClaimService.sol +48 -11
  473. package/contracts/product/IPolicyService.sol +61 -37
  474. package/contracts/product/IPricingService.sol +11 -10
  475. package/contracts/product/IProductComponent.sol +29 -9
  476. package/contracts/product/IRiskService.sol +48 -0
  477. package/contracts/product/PolicyService.sol +445 -275
  478. package/contracts/product/PolicyServiceLib.sol +139 -0
  479. package/contracts/product/PolicyServiceManager.sol +6 -9
  480. package/contracts/product/PricingService.sol +90 -84
  481. package/contracts/product/PricingServiceManager.sol +6 -9
  482. package/contracts/product/Product.sol +261 -147
  483. package/contracts/product/RiskService.sol +189 -0
  484. package/contracts/product/RiskServiceManager.sol +39 -0
  485. package/contracts/registry/ChainNft.sol +72 -40
  486. package/contracts/registry/IRegistry.sol +84 -36
  487. package/contracts/registry/IRegistryService.sol +3 -10
  488. package/contracts/registry/IRelease.sol +29 -0
  489. package/contracts/registry/ITransferInterceptor.sol +1 -2
  490. package/contracts/registry/Registry.sol +378 -224
  491. package/contracts/registry/RegistryAdmin.sol +119 -261
  492. package/contracts/registry/RegistryAuthorization.sol +336 -0
  493. package/contracts/registry/RegistryService.sol +42 -67
  494. package/contracts/registry/RegistryServiceManager.sol +5 -5
  495. package/contracts/registry/ReleaseAdmin.sol +195 -0
  496. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  497. package/contracts/registry/ReleaseRegistry.sol +525 -0
  498. package/contracts/registry/ServiceAuthorizationV3.sol +213 -71
  499. package/contracts/registry/TokenRegistry.sol +61 -59
  500. package/contracts/shared/Component.sol +71 -142
  501. package/contracts/shared/ComponentService.sol +459 -385
  502. package/contracts/shared/ComponentServiceManager.sol +10 -7
  503. package/contracts/shared/ContractLib.sol +312 -0
  504. package/contracts/shared/IComponent.sol +6 -18
  505. package/contracts/shared/IComponentService.sol +50 -41
  506. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  507. package/contracts/shared/ILifecycle.sol +3 -2
  508. package/contracts/shared/INftOwnable.sol +4 -0
  509. package/contracts/shared/IPolicyHolder.sol +12 -22
  510. package/contracts/shared/IRegisterable.sol +22 -1
  511. package/contracts/shared/IService.sol +4 -6
  512. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  513. package/contracts/shared/InstanceLinkedComponent.sol +145 -57
  514. package/contracts/shared/Lifecycle.sol +30 -72
  515. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  516. package/contracts/shared/NftOwnable.sol +33 -11
  517. package/contracts/shared/PolicyHolder.sol +20 -59
  518. package/contracts/shared/Registerable.sol +52 -21
  519. package/contracts/shared/RegistryLinked.sol +9 -14
  520. package/contracts/shared/Service.sol +22 -38
  521. package/contracts/shared/TokenHandler.sol +310 -26
  522. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  523. package/contracts/staking/IStaking.sol +272 -73
  524. package/contracts/staking/IStakingService.sol +48 -74
  525. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  526. package/contracts/staking/Staking.sol +534 -250
  527. package/contracts/staking/StakingLib.sol +195 -0
  528. package/contracts/staking/StakingManager.sol +14 -15
  529. package/contracts/staking/StakingReader.sol +72 -88
  530. package/contracts/staking/StakingService.sol +62 -152
  531. package/contracts/staking/StakingServiceManager.sol +9 -7
  532. package/contracts/staking/StakingStore.sol +1096 -341
  533. package/contracts/staking/TargetHandler.sol +132 -0
  534. package/contracts/staking/TargetManagerLib.sol +73 -46
  535. package/contracts/type/Amount.sol +31 -5
  536. package/contracts/type/Blocknumber.sol +22 -16
  537. package/contracts/type/ChainId.sol +101 -0
  538. package/contracts/type/ClaimId.sol +6 -1
  539. package/contracts/type/Fee.sol +8 -8
  540. package/contracts/type/Key32.sol +2 -2
  541. package/contracts/type/Key32Set.sol +62 -0
  542. package/contracts/type/NftId.sol +7 -0
  543. package/contracts/type/ObjectType.sol +91 -54
  544. package/contracts/type/PayoutId.sol +10 -10
  545. package/contracts/type/Referral.sol +7 -0
  546. package/contracts/type/RequestIdSet.sol +62 -0
  547. package/contracts/type/RiskId.sol +38 -6
  548. package/contracts/type/RoleId.sol +93 -114
  549. package/contracts/type/Seconds.sol +44 -1
  550. package/contracts/type/Selector.sol +5 -0
  551. package/contracts/type/StateId.sol +15 -1
  552. package/contracts/type/String.sol +42 -0
  553. package/contracts/type/Timestamp.sol +24 -8
  554. package/contracts/type/UFixed.sol +62 -125
  555. package/contracts/type/Version.sol +57 -6
  556. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  557. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  558. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  559. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  560. package/package.json +9 -6
  561. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  563. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  564. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  565. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  567. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  569. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  570. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  571. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  572. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  573. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  575. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  576. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +0 -129
  577. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  578. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  579. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  580. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  581. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  582. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  583. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  584. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  585. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  586. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  587. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  588. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  589. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  590. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  591. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  592. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  593. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  596. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  597. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  598. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  599. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  600. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  601. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  602. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  604. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  605. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  606. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -571
  607. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  608. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  613. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  614. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  615. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  616. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  617. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  618. package/contracts/instance/BundleManager.sol +0 -126
  619. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  620. package/contracts/instance/base/ObjectManager.sol +0 -80
  621. package/contracts/instance/module/IAccess.sol +0 -46
  622. package/contracts/product/IProductService.sol +0 -33
  623. package/contracts/product/ProductService.sol +0 -124
  624. package/contracts/product/ProductServiceManager.sol +0 -42
  625. package/contracts/registry/IServiceAuthorization.sol +0 -35
  626. package/contracts/registry/ReleaseManager.sol +0 -527
  627. package/contracts/registry/ServiceAuthorization.sol +0 -86
  628. package/contracts/shared/AccessAdmin.sol +0 -759
  629. package/contracts/shared/AccessManagerCustom.sol +0 -741
  630. package/contracts/shared/AccessManagerExtended.sol +0 -481
  631. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  632. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  633. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  634. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  635. package/contracts/shared/IAccessAdmin.sol +0 -168
  636. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  637. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  638. package/contracts/shared/IKeyValueStore.sol +0 -53
  639. package/contracts/shared/InitializableCustom.sol +0 -177
  640. package/contracts/shared/KeyValueStore.sol +0 -127
  641. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  642. package/contracts/staking/StakeManagerLib.sol +0 -231
@@ -1,74 +1,51 @@
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";
5
+
6
+ import {IPolicyHolder} from "./IPolicyHolder.sol";
7
7
 
8
8
  import {Amount} from "../type/Amount.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ERC165} from "./ERC165.sol";
11
- import {IPolicyHolder} from "./IPolicyHolder.sol";
10
+ import {InitializableERC165} from "./InitializableERC165.sol";
12
11
  import {NftId} from "../type/NftId.sol";
13
- import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
12
+ import {PayoutId} from "../type/PayoutId.sol";
14
13
  import {RegistryLinked} from "./RegistryLinked.sol";
15
- import {IRegistry} from "../registry/IRegistry.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
16
15
 
17
16
  /// @dev template implementation for IPolicyHolder
18
17
  contract PolicyHolder is
19
- ERC165,
20
- RegistryLinked, // TODO need upgradeable version
18
+ InitializableERC165,
19
+ RegistryLinked,
21
20
  IPolicyHolder
22
21
  {
23
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
24
- // TODO fix address
25
- bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
26
-
27
- struct PolicyHolderStorage {
28
- mapping(NftId policyId => mapping(PayoutId payoutId => address beneficiary)) _beneficiary;
29
- address _beneficiaryDefault;
30
- }
22
+ // TODO add modifier to protect callback functions from unauthorized access
23
+ // callbacks must only be allowed from the policy and claim services
24
+ // will need a release parameter to fetch the right service addresses for the modifiers
31
25
 
32
- function initializePolicyHolder(
33
- address registryAddress,
34
- address beneficiaryDefault
26
+ function _initializePolicyHolder(
27
+ address registryAddress
35
28
  )
36
- public
29
+ internal
37
30
  virtual
38
31
  onlyInitializing()
39
32
  {
40
- initializeRegistryLinked(registryAddress);
41
-
42
- _getPolicyHolderStorage()._beneficiaryDefault = beneficiaryDefault;
43
-
44
- registerInterface(type(IPolicyHolder).interfaceId);
33
+ __RegistryLinked_init(registryAddress);
34
+ _initializeERC165();
35
+ _registerInterface(type(IPolicyHolder).interfaceId);
45
36
  }
46
37
 
47
38
  /// @dev empty default implementation
48
- function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external { }
49
-
50
- /// @dev empty default implementation
51
- function policyActivated(NftId policyNftId) external {}
39
+ function policyActivated(NftId policyNftId, Timestamp activatedAt) external virtual {}
52
40
 
53
41
  /// @dev empty default implementation
54
- function policyExpired(NftId policyNftId) external {}
42
+ function policyExpired(NftId policyNftId, Timestamp expiredAt) external virtual {}
55
43
 
56
44
  /// @dev empty default implementation
57
- function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
45
+ function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external virtual {}
58
46
 
59
47
  /// @dev empty default implementation
60
- function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external {}
61
-
62
- /// @dev returns payout specific beneficiary
63
- /// when no such beneficiary is defined the policy specific beneficiary is returned
64
- function getBeneficiary(NftId policyNftId, PayoutId payoutId) external virtual view returns (address beneficiary) {
65
- beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId];
66
-
67
- // fallback to claim independent beneficiary
68
- if(beneficiary == address(0) && payoutId.gtz()) {
69
- beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][PayoutIdLib.zero()];
70
- }
71
- }
48
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
72
49
 
73
50
  //--- IERC165 functions ---------------//
74
51
  function onERC721Received(
@@ -83,20 +60,4 @@ contract PolicyHolder is
83
60
  {
84
61
  return IERC721Receiver.onERC721Received.selector;
85
62
  }
86
-
87
- /// @dev sets policy specific beneficiary (used when no payout specific beneficiary is defined)
88
- function _setBeneficiary(NftId policyNftId, address beneficiary) internal {
89
- _setBeneficiary(policyNftId, PayoutIdLib.zero(), beneficiary);
90
- }
91
-
92
- /// @dev sets policy and claim specific beneficiary
93
- function _setBeneficiary(NftId policyNftId, PayoutId payoutId, address beneficiary) internal {
94
- _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId] = beneficiary;
95
- }
96
-
97
- function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
98
- assembly {
99
- $.slot := POLICY_HOLDER_STORAGE_LOCATION_V1
100
- }
101
- }
102
63
  }
@@ -1,16 +1,22 @@
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";
12
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
9
13
 
10
14
  import {IRegistry} from "../registry/IRegistry.sol";
11
15
  import {IRegisterable} from "./IRegisterable.sol";
16
+ import {IRelease} from "../registry/IRelease.sol";
12
17
 
13
- contract Registerable is
18
+ abstract contract Registerable is
19
+ AccessManagedUpgradeable,
14
20
  NftOwnable,
15
21
  IRegisterable
16
22
  {
@@ -24,46 +30,64 @@ contract Registerable is
24
30
  bytes _data;
25
31
  }
26
32
 
27
- function initializeRegisterable(
28
- address registryAddress,
33
+ modifier onlyActive() {
34
+ if (!isActive()) {
35
+ revert ErrorRegisterableNotActive();
36
+ }
37
+ _;
38
+ }
39
+
40
+ function __Registerable_init(
41
+ address authority,
42
+ address registry,
29
43
  NftId parentNftId,
30
44
  ObjectType objectType,
31
45
  bool isInterceptor,
32
46
  address initialOwner,
33
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
47
+ bytes memory data // writeonly data that will saved in the object info record of the registry
34
48
  )
35
- public
49
+ internal
36
50
  virtual
37
- onlyInitializing
51
+ onlyInitializing()
38
52
  {
39
- initializeNftOwnable(
40
- initialOwner,
41
- registryAddress);
42
-
43
- RegisterableStorage storage $;
44
- assembly {
45
- $.slot := REGISTERABLE_LOCATION_V1
53
+ if (!ContractLib.isAuthority(authority)) {
54
+ revert ErrorAuthorityInvalid(authority);
46
55
  }
47
56
 
57
+ __AccessManaged_init(authority);
58
+ __NftOwnable_init(registry, initialOwner);
59
+
60
+ RegisterableStorage storage $ = _getRegisterableStorage();
48
61
  $._parentNftId = parentNftId;
49
62
  $._objectType = objectType;
50
63
  $._isInterceptor = isInterceptor;
51
- $._data = registryData;
64
+ $._data = data;
65
+
66
+ _registerInterface(type(IAccessManaged).interfaceId);
67
+ }
68
+
69
+
70
+ /// @inheritdoc IRegisterable
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();
52
79
  }
53
80
 
54
81
 
82
+ /// @inheritdoc IRegisterable
55
83
  function getInitialInfo()
56
84
  public
57
85
  view
58
86
  virtual
59
87
  returns (IRegistry.ObjectInfo memory info)
60
88
  {
61
- RegisterableStorage storage $;
62
- assembly {
63
- $.slot := REGISTERABLE_LOCATION_V1
64
- }
65
-
66
- info = IRegistry.ObjectInfo(
89
+ RegisterableStorage storage $ = _getRegisterableStorage();
90
+ return IRegistry.ObjectInfo(
67
91
  NftIdLib.zero(),
68
92
  $._parentNftId,
69
93
  $._objectType,
@@ -72,4 +96,11 @@ contract Registerable is
72
96
  getOwner(),
73
97
  $._data);
74
98
  }
99
+
100
+
101
+ function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
102
+ assembly {
103
+ $.slot := REGISTERABLE_LOCATION_V1
104
+ }
105
+ }
75
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
 
@@ -10,30 +12,23 @@ 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 __RegistryLinked_init(
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
 
@@ -1,41 +1,39 @@
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";
4
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
6
5
 
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IService} from "./IService.sol";
9
- import {IVersionable} from "./IVersionable.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
8
+ import {IVersionable} from "../upgradeability/IVersionable.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, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
15
- import {Versionable} from "./Versionable.sol";
12
+ import {Version, VersionLib} from "../type/Version.sol";
13
+ import {Versionable} from "../upgradeability/Versionable.sol";
16
14
 
17
15
 
18
16
  /// @dev service base contract
19
17
  abstract contract Service is
20
18
  Registerable,
21
19
  Versionable,
22
- AccessManagedUpgradeable,
20
+ ReentrancyGuardUpgradeable,
23
21
  IService
24
22
  {
25
23
 
26
- uint8 private constant GIF_MAJOR_VERSION = 3;
27
-
28
-
29
- function initializeService(
30
- address registry,
24
+ function __Service_init(
31
25
  address authority, // real authority for registry service adress(0) for other services
26
+ address registry,
32
27
  address initialOwner
33
28
  )
34
- public
29
+ internal
35
30
  virtual
36
31
  onlyInitializing()
37
32
  {
38
- initializeRegisterable(
33
+ __ReentrancyGuard_init();
34
+
35
+ __Registerable_init(
36
+ authority,
39
37
  registry,
40
38
  IRegistry(registry).getNftId(),
41
39
  SERVICE(),
@@ -43,41 +41,27 @@ abstract contract Service is
43
41
  initialOwner,
44
42
  ""); // data
45
43
 
46
- // externally provided authority
47
- if(authority != address(0)) {
48
- __AccessManaged_init(authority);
49
- } else {
50
- address registryServiceAddress = _getServiceAddress(REGISTRY());
51
-
52
- // copy authority from already registered registry services
53
- __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
54
- }
55
-
56
- registerInterface(type(IAccessManaged).interfaceId);
57
- registerInterface(type(IService).interfaceId);
44
+ _registerInterface(type(IService).interfaceId);
58
45
  }
59
46
 
60
47
  function getDomain() external virtual pure returns(ObjectType serviceDomain) {
61
48
  return _getDomain();
62
49
  }
63
50
 
64
- function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
65
- return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
51
+ function getVersion() public pure virtual override (IVersionable, Versionable) returns(Version) {
52
+ return VersionLib.toVersion(3, 0, 0);
66
53
  }
67
54
 
68
- // from Versionable
69
- function getVersion()
70
- public
71
- pure
72
- virtual override (IVersionable, Versionable)
73
- returns(Version)
74
- {
75
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
55
+
56
+ function getRoleId() external virtual view returns(RoleId serviceRoleId) {
57
+ return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
76
58
  }
77
59
 
60
+ //--- internal functions --------------------------------------------------------//
78
61
  function _getDomain() internal virtual pure returns (ObjectType);
79
62
 
63
+
80
64
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
81
- return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
65
+ return getRegistry().getServiceAddress(domain, getRelease());
82
66
  }
83
67
  }