@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97aac30-275

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 (401) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +193 -164
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +114 -321
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -82
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +72 -108
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +22 -48
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +56 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +53 -18
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -28
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +133 -59
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -32
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -308
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  41. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  49. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +69 -252
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +105 -55
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +8 -53
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +134 -86
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +121 -133
  70. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  71. package/artifacts/contracts/pool/Pool.sol/Pool.json +239 -92
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +170 -368
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -72
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +69 -153
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -31
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +95 -203
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +118 -56
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +81 -25
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +230 -107
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -55
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +164 -299
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +106 -92
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -160
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +130 -40
  104. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  105. package/artifacts/contracts/product/Product.sol/Product.json +334 -146
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.json +29 -214
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +88 -34
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +163 -61
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +256 -65
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +378 -67
  119. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +272 -68
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -35
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +799 -127
  127. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  131. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  132. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  133. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  134. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  135. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  136. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  137. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  141. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Component.sol/Component.json +184 -11
  143. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +908 -49
  145. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  147. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  148. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  151. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  153. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  155. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +172 -4
  157. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  158. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  159. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +80 -22
  161. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
  163. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  165. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  167. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  168. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  169. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  171. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  174. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  176. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +176 -24
  179. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  180. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  181. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  182. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  183. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  184. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  185. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  186. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  187. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  188. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  189. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
  191. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
  193. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  194. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  195. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  197. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  198. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  199. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  201. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  202. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  203. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1103 -172
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  205. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  208. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  209. package/artifacts/contracts/staking/Staking.sol/Staking.json +1247 -56
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +167 -30
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +605 -78
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -28
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  246. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  248. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  250. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  252. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  254. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  256. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  258. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  264. package/contracts/distribution/Distribution.sol +27 -51
  265. package/contracts/distribution/DistributionService.sol +55 -106
  266. package/contracts/distribution/DistributionServiceManager.sol +9 -18
  267. package/contracts/distribution/IDistributionComponent.sol +3 -8
  268. package/contracts/distribution/IDistributionService.sol +2 -8
  269. package/contracts/instance/IInstance.sol +12 -7
  270. package/contracts/instance/IInstanceService.sol +13 -5
  271. package/contracts/instance/Instance.sol +30 -23
  272. package/contracts/instance/InstanceAdmin.sol +331 -0
  273. package/contracts/instance/InstanceAuthorizationsLib.sol +210 -141
  274. package/contracts/instance/InstanceReader.sol +64 -42
  275. package/contracts/instance/InstanceService.sol +141 -87
  276. package/contracts/instance/InstanceServiceManager.sol +10 -20
  277. package/contracts/instance/InstanceStore.sol +125 -55
  278. package/contracts/instance/base/BalanceStore.sol +118 -0
  279. package/contracts/instance/base/ObjectCounter.sol +21 -0
  280. package/contracts/instance/module/IAccess.sol +2 -10
  281. package/contracts/instance/module/IBundle.sol +1 -4
  282. package/contracts/instance/module/IComponents.sol +15 -4
  283. package/contracts/instance/module/IPolicy.sol +8 -2
  284. package/contracts/mock/Dip.sol +26 -0
  285. package/contracts/oracle/IOracle.sol +20 -0
  286. package/contracts/oracle/IOracleComponent.sol +32 -0
  287. package/contracts/oracle/IOracleService.sol +65 -0
  288. package/contracts/oracle/Oracle.sol +145 -0
  289. package/contracts/oracle/OracleService.sol +277 -0
  290. package/contracts/oracle/OracleServiceManager.sol +42 -0
  291. package/contracts/pool/BundleService.sol +63 -149
  292. package/contracts/pool/BundleServiceManager.sol +9 -18
  293. package/contracts/pool/IBundleService.sol +4 -16
  294. package/contracts/pool/IPoolComponent.sol +2 -4
  295. package/contracts/pool/IPoolService.sol +45 -9
  296. package/contracts/pool/Pool.sol +37 -40
  297. package/contracts/pool/PoolService.sol +195 -145
  298. package/contracts/pool/PoolServiceManager.sol +9 -18
  299. package/contracts/product/ApplicationService.sol +111 -43
  300. package/contracts/product/ApplicationServiceManager.sol +9 -6
  301. package/contracts/product/ClaimService.sol +21 -21
  302. package/contracts/product/ClaimServiceManager.sol +9 -6
  303. package/contracts/product/IApplicationService.sol +1 -1
  304. package/contracts/product/IClaimService.sol +7 -1
  305. package/contracts/product/IPolicyService.sol +6 -8
  306. package/contracts/product/IPricingService.sol +3 -1
  307. package/contracts/product/IProductComponent.sol +5 -4
  308. package/contracts/product/IProductService.sol +1 -8
  309. package/contracts/product/PolicyService.sol +226 -127
  310. package/contracts/product/PolicyServiceManager.sol +9 -21
  311. package/contracts/product/PricingService.sol +74 -48
  312. package/contracts/product/PricingServiceManager.sol +9 -18
  313. package/contracts/product/Product.sol +45 -47
  314. package/contracts/product/ProductService.sol +26 -112
  315. package/contracts/product/ProductServiceManager.sol +9 -21
  316. package/contracts/registry/ChainNft.sol +1 -0
  317. package/contracts/registry/IRegistry.sol +38 -24
  318. package/contracts/registry/IRegistryService.sol +31 -31
  319. package/contracts/registry/Registry.sol +176 -105
  320. package/contracts/registry/RegistryAdmin.sol +237 -0
  321. package/contracts/registry/RegistryService.sol +44 -82
  322. package/contracts/registry/RegistryServiceManager.sol +21 -23
  323. package/contracts/registry/ReleaseManager.sol +450 -210
  324. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  325. package/contracts/registry/TokenRegistry.sol +261 -62
  326. package/contracts/shared/AccessManagerCustom.sol +736 -0
  327. package/contracts/shared/AccessManagerExtended.sol +470 -0
  328. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  329. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  330. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  331. package/contracts/shared/Component.sol +153 -49
  332. package/contracts/shared/ComponentService.sol +561 -93
  333. package/contracts/shared/ComponentServiceManager.sol +35 -0
  334. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  335. package/contracts/shared/ERC165.sol +1 -1
  336. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  337. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  338. package/contracts/shared/IComponent.sol +20 -8
  339. package/contracts/shared/IComponentService.sol +102 -0
  340. package/contracts/shared/IInstanceLinkedComponent.sol +5 -11
  341. package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
  342. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  343. package/contracts/shared/INftOwnable.sol +1 -1
  344. package/contracts/shared/IPolicyHolder.sol +6 -1
  345. package/contracts/shared/IService.sol +1 -1
  346. package/contracts/shared/InitializableCustom.sol +177 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +51 -178
  348. package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
  349. package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
  350. package/contracts/shared/NftIdSetManager.sol +65 -0
  351. package/contracts/shared/NftOwnable.sol +2 -13
  352. package/contracts/shared/PolicyHolder.sol +21 -13
  353. package/contracts/shared/ProxyManager.sol +31 -1
  354. package/contracts/shared/Registerable.sol +2 -2
  355. package/contracts/shared/Service.sol +7 -2
  356. package/contracts/staking/IStaking.sol +146 -8
  357. package/contracts/staking/IStakingService.sol +83 -39
  358. package/contracts/staking/StakeManagerLib.sol +179 -0
  359. package/contracts/staking/Staking.sol +503 -17
  360. package/contracts/staking/StakingManager.sol +22 -14
  361. package/contracts/staking/StakingReader.sol +187 -0
  362. package/contracts/staking/StakingService.sol +246 -44
  363. package/contracts/staking/StakingServiceManager.sol +8 -4
  364. package/contracts/staking/StakingStore.sol +572 -0
  365. package/contracts/staking/TargetManagerLib.sol +207 -0
  366. package/contracts/type/AddressSet.sol +1 -1
  367. package/contracts/type/Amount.sol +20 -1
  368. package/contracts/type/Blocknumber.sol +20 -3
  369. package/contracts/type/Fee.sol +17 -16
  370. package/contracts/type/NftId.sol +14 -16
  371. package/contracts/type/NftIdSet.sol +1 -1
  372. package/contracts/type/ObjectType.sol +12 -10
  373. package/contracts/type/Referral.sol +1 -1
  374. package/contracts/type/RequestId.sol +75 -0
  375. package/contracts/type/RiskId.sol +1 -1
  376. package/contracts/type/RoleId.sol +18 -4
  377. package/contracts/type/Seconds.sol +27 -0
  378. package/contracts/type/StateId.sol +27 -2
  379. package/contracts/type/Timestamp.sol +6 -2
  380. package/contracts/type/Version.sol +1 -1
  381. package/package.json +4 -3
  382. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  383. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  384. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  387. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  389. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  394. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  395. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  396. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  397. package/contracts/instance/InstanceAccessManager.sol +0 -543
  398. package/contracts/instance/module/ISetup.sol +0 -33
  399. package/contracts/instance/module/ITreasury.sol +0 -23
  400. package/contracts/registry/RegistryAccessManager.sol +0 -207
  401. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
5
  import {IProductComponent} from "./IProductComponent.sol";
@@ -12,8 +12,7 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
12
12
  import {IRisk} from "../instance/module/IRisk.sol";
13
13
  import {IBundle} from "../instance/module/IBundle.sol";
14
14
  import {IProductService} from "./IProductService.sol";
15
- import {ITreasury} from "../instance/module/ITreasury.sol";
16
- import {ISetup} from "../instance/module/ISetup.sol";
15
+ import {IComponents} from "../instance/module/IComponents.sol";
17
16
 
18
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
19
18
 
@@ -23,9 +22,9 @@ import {Versionable} from "../shared/Versionable.sol";
23
22
  import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
24
23
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
25
24
  import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
26
- import {ObjectType, PRODUCT, POOL, POLICY} from "../type/ObjectType.sol";
25
+ import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
27
26
  import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
28
- import {NftId, NftIdLib, zeroNftId} from "../type/NftId.sol";
27
+ import {NftId, NftIdLib} from "../type/NftId.sol";
29
28
  import {Fee, FeeLib} from "../type/Fee.sol";
30
29
  import {ReferralId} from "../type/Referral.sol";
31
30
  import {RiskId} from "../type/RiskId.sol";
@@ -35,16 +34,20 @@ import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
35
34
 
36
35
  import {IService} from "../shared/IService.sol";
37
36
  import {Service} from "../shared/Service.sol";
38
- import {ComponentService} from "../shared/ComponentService.sol";
37
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
38
+ import {IInstanceService} from "../instance/IInstanceService.sol";
39
39
  import {IProductService} from "./IProductService.sol";
40
+ import {IRegistryService} from "../registry/IRegistryService.sol";
40
41
  import {InstanceReader} from "../instance/InstanceReader.sol";
41
42
  import {IPoolService} from "../pool/PoolService.sol";
42
43
 
43
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
44
- contract ProductService is ComponentService, IProductService {
45
- using NftIdLib for NftId;
46
-
44
+ contract ProductService is
45
+ ComponentVerifyingService,
46
+ IProductService
47
+ {
48
+ IInstanceService private _instanceService;
47
49
  IPoolService internal _poolService;
50
+ IRegistryService private _registryService;
48
51
 
49
52
  event LogProductServiceSender(address sender);
50
53
 
@@ -56,118 +59,27 @@ contract ProductService is ComponentService, IProductService {
56
59
  initializer
57
60
  virtual override
58
61
  {
59
- address registryAddress;
60
- address initialOwner;
61
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
62
+ (
63
+ address registryAddress,,
64
+ //address managerAddress
65
+ address authority
66
+ ) = abi.decode(data, (address, address, address));
62
67
 
63
- initializeService(registryAddress, address(0), owner);
68
+ initializeService(registryAddress, authority, owner);
64
69
 
70
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
65
71
  _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
72
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
66
73
 
67
74
  registerInterface(type(IProductService).interfaceId);
68
75
  }
69
76
 
70
77
 
71
- function register(address productAddress)
72
- external
73
- returns(NftId productNftId)
74
- {
75
- (
76
- IInstanceLinkedComponent component,
77
- address owner,
78
- IInstance instance,
79
- NftId instanceNftId
80
- ) = _checkComponentForRegistration(
81
- productAddress,
82
- PRODUCT(),
83
- PRODUCT_OWNER_ROLE());
84
-
85
- IProductComponent product = IProductComponent(productAddress);
86
- IRegistry.ObjectInfo memory productInfo = getRegistryService().registerProduct(product, owner);
87
- productNftId = productInfo.nftId;
88
- _createProductSetup(
89
- instance,
90
- product,
91
- productNftId);
92
- }
93
-
94
-
95
- function _createProductSetup(
96
- IInstance instance,
97
- IProductComponent product,
98
- NftId productNftId
99
- )
100
- internal
101
- returns (string memory name)
102
- {
103
- // wire distribution and pool components to product component
104
- ISetup.ProductSetupInfo memory setup = product.getSetupInfo();
105
- IInstanceLinkedComponent distribution = IInstanceLinkedComponent(getRegistry().getObjectInfo(setup.distributionNftId).objectAddress);
106
- IInstanceLinkedComponent pool = IInstanceLinkedComponent(getRegistry().getObjectInfo(setup.poolNftId).objectAddress);
107
-
108
- distribution.setProductNftId(productNftId);
109
- pool.setProductNftId(productNftId);
110
- product.setProductNftId(productNftId);
111
- product.linkToRegisteredNftId();
112
-
113
- // create product setup in instance
114
- instance.getInstanceStore().createProductSetup(productNftId, product.getSetupInfo());
115
-
116
- bytes4[][] memory selectors = new bytes4[][](1);
117
- selectors[0] = new bytes4[](1);
118
- selectors[0][0] = IProductComponent.setFees.selector;
119
-
120
- RoleId[] memory roles = new RoleId[](1);
121
- roles[0] = PRODUCT_OWNER_ROLE();
122
-
123
- // create target for instane access manager
124
- getInstanceService().createGifTarget(
125
- getRegistry().getNftId(address(instance)),
126
- address(product),
127
- product.getName(),
128
- selectors,
129
- roles);
130
- }
131
-
132
78
  function getDomain() public pure override returns(ObjectType) {
133
79
  return PRODUCT();
134
80
  }
135
81
 
136
82
 
137
- function _decodeAndVerifyProductData(bytes memory data)
138
- internal
139
- returns(string memory name, ISetup.ProductSetupInfo memory setup)
140
- {
141
- (name, setup) = abi.decode(
142
- data,
143
- (string, ISetup.ProductSetupInfo)
144
- );
145
-
146
- // TODO add checks
147
- // if(wallet == address(0)) {
148
- // revert WalletIsZero();
149
- // }
150
- }
151
-
152
- function setFees(
153
- Fee memory productFee,
154
- Fee memory processingFee
155
- )
156
- external
157
- {
158
- // TODO check args
159
-
160
- (NftId productNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
161
- InstanceReader instanceReader = instance.getInstanceReader();
162
-
163
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
164
-
165
- productSetupInfo.productFee = productFee;
166
- productSetupInfo.processingFee = processingFee;
167
-
168
- instance.getInstanceStore().updateProductSetup(productNftId, productSetupInfo, KEEP_STATE());
169
- }
170
-
171
83
  function createRisk(
172
84
  RiskId riskId,
173
85
  bytes memory data
@@ -175,7 +87,7 @@ contract ProductService is ComponentService, IProductService {
175
87
  external
176
88
  override
177
89
  {
178
- (NftId productNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
90
+ (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
179
91
  IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
180
92
 
181
93
  instance.getInstanceStore().createRisk(
@@ -184,13 +96,14 @@ contract ProductService is ComponentService, IProductService {
184
96
  );
185
97
  }
186
98
 
99
+
187
100
  function updateRisk(
188
101
  RiskId riskId,
189
102
  bytes memory data
190
103
  )
191
104
  external
192
105
  {
193
- (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
106
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
194
107
  InstanceReader instanceReader = instance.getInstanceReader();
195
108
 
196
109
  IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
@@ -198,13 +111,14 @@ contract ProductService is ComponentService, IProductService {
198
111
  instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
199
112
  }
200
113
 
114
+
201
115
  function updateRiskState(
202
116
  RiskId riskId,
203
117
  StateId state
204
118
  )
205
119
  external
206
120
  {
207
- (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
121
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
208
122
  instance.getInstanceStore().updateRiskState(riskId, state);
209
123
  }
210
124
  }
@@ -14,32 +14,20 @@ contract ProductServiceManager is ProxyManager {
14
14
 
15
15
  /// @dev initializes proxy manager with product service implementation
16
16
  constructor(
17
- address registryAddress
18
- )
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
19
21
  ProxyManager(registryAddress)
20
22
  {
21
- ProductService svc = new ProductService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
23
+ ProductService svc = new ProductService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
24
26
  address(svc),
25
- data);
27
+ data,
28
+ salt);
26
29
 
27
30
  _productService = ProductService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- // _isDeployed = true;
43
31
  }
44
32
 
45
33
  //--- view functions ----------------------------------------------------//
@@ -15,6 +15,7 @@ contract ChainNft is ERC721Enumerable {
15
15
  uint256 public constant PROTOCOL_NFT_ID = 1101;
16
16
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
17
 
18
+ // TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
18
19
  // custom errors
19
20
  error CallerNotRegistry(address caller);
20
21
  error RegistryAddressZero();
@@ -7,6 +7,7 @@ import {NftId} from "../type/NftId.sol";
7
7
  import {ObjectType} from "../type/ObjectType.sol";
8
8
  import {VersionPart} from "../type/Version.sol";
9
9
  import {Timestamp} from "../type/Timestamp.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
10
11
 
11
12
  interface IRegistry is IERC165 {
12
13
 
@@ -14,23 +15,20 @@ interface IRegistry is IERC165 {
14
15
  event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
15
16
 
16
17
  // registerService()
17
- error CallerNotReleaseManager();
18
- error ServiceAlreadyRegistered(address service);
18
+ error ErrorRegistryCallerNotReleaseManager();
19
+ error ErrorRegistryDomainZero(address service);
20
+ error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
19
21
 
20
22
  // register()
21
- error CallerNotRegistryService();
22
- error ServiceRegistration();
23
+ error ErrorRegistryCallerNotRegistryService();
23
24
 
24
25
  // registerWithCustomTypes()
25
- error CoreTypeRegistration();
26
+ error ErrorRegistryCoreTypeRegistration();
26
27
 
27
28
  // _register()
28
- error ZeroParentAddress();
29
- error InvalidTypesCombination(ObjectType objectType, ObjectType parentType);
30
- error ContractAlreadyRegistered(address objectAddress);
31
-
32
- // _registerStaking()
33
- error StakingAlreadyRegistered(address stakingAddress);
29
+ error ErrorRegistryParentAddressZero();
30
+ error ErrorRegistryTypesCombinationInvalid(ObjectType objectType, ObjectType parentType);
31
+ error ErrorRegistryContractAlreadyRegistered(address objectAddress);
34
32
 
35
33
  struct ObjectInfo {
36
34
  NftId nftId;
@@ -42,17 +40,22 @@ interface IRegistry is IERC165 {
42
40
  bytes data;
43
41
  }
44
42
 
43
+
45
44
  struct ReleaseInfo {
45
+ VersionPart version;
46
+ bytes32 salt;
47
+ address[] addresses;
48
+ string[] names;
49
+ RoleId[][] serviceRoles;
50
+ string[][] serviceRoleNames;
51
+ RoleId[][] functionRoles;
52
+ string[][] functionRoleNames;
53
+ bytes4[][][] selectors;
46
54
  ObjectType[] domains;
47
- Timestamp createdAt;
48
- //Timestamp updatedAt;
55
+ Timestamp activatedAt;
56
+ Timestamp disabledAt;
49
57
  }
50
58
 
51
- function registerStaking(
52
- address stakingAddress,
53
- address stakingOwner
54
- ) external returns(NftId nftId);
55
-
56
59
  function registerService(
57
60
  ObjectInfo memory serviceInfo,
58
61
  VersionPart serviceVersion,
@@ -73,8 +76,6 @@ interface IRegistry is IERC165 {
73
76
 
74
77
  function getObjectCount() external view returns (uint256);
75
78
 
76
- function getNftId() external view returns (NftId nftId);
77
-
78
79
  function getNftId(address objectAddress) external view returns (NftId nftId);
79
80
 
80
81
  function ownerOf(NftId nftId) external view returns (address);
@@ -93,18 +94,31 @@ interface IRegistry is IERC165 {
93
94
 
94
95
  function isRegisteredComponent(address object) external view returns (bool);
95
96
 
96
- function isValidRelease(VersionPart version) external view returns (bool);
97
+ function isActiveRelease(VersionPart version) external view returns (bool);
97
98
 
98
99
  function getServiceAddress(
99
100
  ObjectType serviceDomain,
100
101
  VersionPart releaseVersion
101
102
  ) external view returns (address serviceAddress);
102
103
 
103
- function getStakingAddress() external view returns (address staking);
104
+ function getProtocolNftId() external view returns (NftId protocolNftId);
104
105
 
105
- function getReleaseManagerAddress() external view returns (address);
106
+ function getNftId() external view returns (NftId nftId);
106
107
 
108
+ function getOwner() external view returns (address);
109
+
110
+ // TODO refactor the address getters below to contract getters
107
111
  function getChainNftAddress() external view returns (address);
108
112
 
109
- function getOwner() external view returns (address);
113
+ function getReleaseManagerAddress() external view returns (address);
114
+
115
+ function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
116
+
117
+ function getStakingAddress() external view returns (address);
118
+
119
+ function getTokenRegistryAddress() external view returns (address);
120
+
121
+ function getRegistryAdminAddress() external view returns (address);
122
+
123
+ function getAuthority() external view returns (address);
110
124
  }
@@ -11,45 +11,45 @@ import {IRegistry} from "./IRegistry.sol";
11
11
 
12
12
  import {IRegisterable} from "../shared/IRegisterable.sol";
13
13
  import {IComponent} from "../shared/IComponent.sol";
14
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
15
+
14
16
 
15
17
  interface IRegistryService is
16
18
  IService
17
19
  {
18
- error SelfRegistration();
19
- error NotRegistryOwner();
20
-
21
- error NotService();
22
- error NotInstance();
23
- error NotProduct();
24
- error NotPool();
25
- error NotDistribution();
26
-
27
- error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
28
- error NotRegisterableOwner(address expectedOwner);
29
- error RegisterableOwnerIsZero();
30
- error RegisterableOwnerIsRegistered();
31
- error InvalidInitialOwner(address initialOwner);
32
- error InvalidAddress(address registerableAddress);
33
-
34
- struct FunctionConfig
35
- {
36
- ObjectType serviceDomain;
37
- bytes4[] selectors;
38
- }
39
-
40
- function getFunctionConfigs()
41
- external
42
- pure
43
- returns(
44
- FunctionConfig[] memory config
45
- );
46
-
47
- function registerStaking(IRegisterable staking, address owner)
48
- external returns(IRegistry.ObjectInfo memory info);
20
+ error ErrorRegistryServiceNotRegistryOwner();
21
+
22
+ error ErrorRegistryServiceNotService(address notService);
23
+ error ErrorRegistryServiceNotInstance(address notInstance);
24
+ error ErrorRegistryServiceNotComponent(address notComponent);
25
+ error ErrorRegistryServiceNotProduct(address notProduct);
26
+ error ErrorRegistryServiceNotPool(address notPool);
27
+ error ErrorRegistryServiceNotDistribution(address notDistribution);
28
+
29
+ error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
30
+ error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
31
+ error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
32
+ error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
33
+ error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
34
+ error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
35
+
36
+ error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
37
+ error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
38
+ error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
39
+ error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
40
+
41
+ error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
42
+ error ErrorRegistryServiceInvalidAddress(address registerableAddress);
43
+
44
+ function registerStake(IRegistry.ObjectInfo memory info)
45
+ external returns(NftId nftId);
49
46
 
50
47
  function registerInstance(IRegisterable instance, address owner)
51
48
  external returns(IRegistry.ObjectInfo memory info);
52
49
 
50
+ function registerComponent(IComponent component, ObjectType objectType, address owner)
51
+ external returns(IRegistry.ObjectInfo memory info);
52
+
53
53
  function registerProduct(IComponent product, address owner)
54
54
  external returns(IRegistry.ObjectInfo memory info);
55
55