@etherisc/gif-next 0.0.2-7e569a6-522 → 0.0.2-7e8dbef-751

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 (594) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +268 -1576
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +296 -211
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +455 -2542
  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 +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +661 -341
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +477 -373
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -107
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  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 +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +280 -336
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +578 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +921 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +260 -285
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +448 -310
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -235
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +244 -303
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +263 -221
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +358 -312
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +116 -170
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +865 -216
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +203 -21
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +349 -220
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +440 -36
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +480 -265
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -95
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +330 -283
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +171 -248
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +75 -158
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Service.sol/Service.json +178 -160
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +15 -14
  278. package/contracts/instance/IInstance.sol +56 -46
  279. package/contracts/instance/IInstanceService.sol +58 -17
  280. package/contracts/instance/Instance.sol +145 -178
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +159 -62
  284. package/contracts/instance/InstanceService.sol +244 -246
  285. package/contracts/instance/InstanceServiceManager.sol +12 -22
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  291. package/contracts/instance/module/IAccess.sol +19 -21
  292. package/contracts/instance/module/IBundle.sol +8 -8
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +32 -0
  300. package/contracts/oracle/IOracleService.sol +48 -0
  301. package/contracts/oracle/Oracle.sol +145 -0
  302. package/contracts/oracle/OracleService.sol +221 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +93 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +16 -1
  330. package/contracts/registry/IRegistry.sol +47 -21
  331. package/contracts/registry/IRegistryService.sol +42 -38
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +221 -97
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +108 -104
  336. package/contracts/registry/RegistryServiceManager.sol +22 -26
  337. package/contracts/registry/ReleaseManager.sol +458 -191
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +263 -60
  340. package/contracts/shared/AccessManagerCustom.sol +736 -0
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  349. package/contracts/shared/ERC165.sol +15 -13
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +3 -3
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +7 -5
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +35 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +59 -91
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +19 -30
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +38 -21
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/{types → type}/NftIdSet.sol +2 -2
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +30 -4
  402. package/contracts/{types → type}/Timestamp.sol +18 -13
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +2 -1
  405. package/package.json +3 -3
  406. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  409. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  410. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  411. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  414. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  417. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  419. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  421. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  423. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  425. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  427. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  429. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  431. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  433. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  435. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  438. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  440. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  442. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  444. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  446. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  448. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  450. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  452. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  454. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  455. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  456. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  457. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  459. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  461. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  462. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  463. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  464. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  466. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  467. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  470. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  472. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  474. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  476. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  483. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  485. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  487. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  489. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  491. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  493. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  494. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  495. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  496. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  497. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  499. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  501. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  503. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  505. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  506. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  507. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  508. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  509. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  510. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  511. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  512. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  513. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  514. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  515. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  516. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  518. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  521. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  522. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  524. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  525. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  527. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  529. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  531. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  539. package/contracts/components/Component.sol +0 -222
  540. package/contracts/components/Distribution.sol +0 -144
  541. package/contracts/components/IComponent.sol +0 -43
  542. package/contracts/components/IDistributionComponent.sol +0 -47
  543. package/contracts/components/IPoolComponent.sol +0 -70
  544. package/contracts/components/IProductComponent.sol +0 -39
  545. package/contracts/components/Pool.sol +0 -241
  546. package/contracts/components/Product.sol +0 -258
  547. package/contracts/experiment/cloning/Cloner.sol +0 -47
  548. package/contracts/experiment/errors/Require.sol +0 -38
  549. package/contracts/experiment/errors/Revert.sol +0 -44
  550. package/contracts/experiment/inheritance/A.sol +0 -53
  551. package/contracts/experiment/inheritance/B.sol +0 -28
  552. package/contracts/experiment/inheritance/C.sol +0 -34
  553. package/contracts/experiment/inheritance/IA.sol +0 -13
  554. package/contracts/experiment/inheritance/IB.sol +0 -10
  555. package/contracts/experiment/inheritance/IC.sol +0 -12
  556. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  557. package/contracts/experiment/statemachine/ISM.sol +0 -25
  558. package/contracts/experiment/statemachine/SM.sol +0 -57
  559. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  560. package/contracts/experiment/types/TypeA.sol +0 -47
  561. package/contracts/experiment/types/TypeB.sol +0 -29
  562. package/contracts/instance/InstanceAccessManager.sol +0 -298
  563. package/contracts/instance/base/ComponentService.sol +0 -134
  564. package/contracts/instance/base/KeyValueStore.sol +0 -172
  565. package/contracts/instance/module/ISetup.sol +0 -46
  566. package/contracts/instance/module/ITreasury.sol +0 -23
  567. package/contracts/instance/service/BundleService.sol +0 -293
  568. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  569. package/contracts/instance/service/DistributionService.sol +0 -106
  570. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  571. package/contracts/instance/service/IBundleService.sol +0 -44
  572. package/contracts/instance/service/IDistributionService.sol +0 -12
  573. package/contracts/instance/service/IPolicyService.sol +0 -94
  574. package/contracts/instance/service/IPoolService.sol +0 -20
  575. package/contracts/instance/service/IProductService.sol +0 -40
  576. package/contracts/instance/service/PolicyService.sol +0 -538
  577. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  578. package/contracts/instance/service/PoolService.sol +0 -109
  579. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  580. package/contracts/instance/service/ProductService.sol +0 -232
  581. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  582. package/contracts/registry/RegistryAccessManager.sol +0 -216
  583. package/contracts/shared/ContractDeployerLib.sol +0 -72
  584. package/contracts/test/TestFee.sol +0 -25
  585. package/contracts/test/TestRegisterable.sol +0 -18
  586. package/contracts/test/TestRoleId.sol +0 -14
  587. package/contracts/test/TestService.sol +0 -25
  588. package/contracts/test/TestVersion.sol +0 -44
  589. package/contracts/test/TestVersionable.sol +0 -17
  590. package/contracts/test/Usdc.sol +0 -26
  591. package/contracts/types/ChainId.sol +0 -38
  592. package/contracts/types/NumberId.sol +0 -52
  593. package/contracts/types/RoleId.sol +0 -90
  594. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,237 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
+ import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
7
+
8
+ import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
9
+
10
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
11
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
12
+
13
+ import {IRegistry} from "./IRegistry.sol";
14
+ import {ReleaseManager} from "./ReleaseManager.sol";
15
+ import {TokenRegistry} from "./TokenRegistry.sol";
16
+
17
+ /*
18
+ 1) GIF_MANAGER_ROLE
19
+ - can have arbitrary number of members
20
+ - responsible for services registrations
21
+ - responsible for token registration and activation
22
+
23
+ 2) GIF_ADMIN_ROLE
24
+ - admin of GIF_MANAGER_ROLE
25
+ - MUST have 1 member at any time
26
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
27
+ - responsible for creation and activation of releases
28
+ */
29
+
30
+ // !!! USE BUILDER PATTERN FOR CONFIG
31
+ // introduce class - config
32
+ // create instance of this class in admin initializer function
33
+ // call it "add"/"push" function for each entry in config (provide entry parameneters)
34
+ // each call will configure access manager for given parameneters
35
+ // in the end you have fully configured access manager and config object
36
+
37
+ // grants GIF_ADMIN_ROLE to registry owner as registryOwner is transaction sender
38
+ // grants GIF_MANAGER_ROLE to registry owner via contructor argument
39
+ contract RegistryAdmin is
40
+ AccessManaged,
41
+ InitializableCustom
42
+ {
43
+ error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
44
+ error ErrorRegistryAdminTokenRegistryAuthorityMismatch();
45
+ error ErrorRegistryAdminStakingAuthorityMismatch();
46
+
47
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
48
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
49
+
50
+ string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
51
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
52
+ string public constant STAKING_TARGET_NAME = "Staking";
53
+
54
+ address private _releaseManager;
55
+ address private _tokenRegistry;
56
+ address private _staking;
57
+
58
+ constructor()
59
+ AccessManaged(msg.sender)
60
+ InitializableCustom()
61
+ {
62
+ AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
63
+ accessManager.initialize(address(this));
64
+ setAuthority(address(accessManager));
65
+ }
66
+
67
+ function initialize(
68
+ IRegistry registry,
69
+ address gifAdmin,
70
+ address gifManager
71
+ )
72
+ external
73
+ initializer
74
+ {
75
+ // validate input
76
+ address releaseManagerAddress = registry.getReleaseManagerAddress();
77
+ if(IAccessManaged(releaseManagerAddress).authority() != authority()) {
78
+ revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
79
+ }
80
+
81
+ address tokenRegistryAddress = registry.getTokenRegistryAddress();
82
+ if(IAccessManaged(tokenRegistryAddress).authority() != authority()) {
83
+ revert ErrorRegistryAdminTokenRegistryAuthorityMismatch();
84
+ }
85
+
86
+ address stakingAddress = registry.getStakingAddress();
87
+ if(IAccessManaged(stakingAddress).authority() != authority()) {
88
+ revert ErrorRegistryAdminStakingAuthorityMismatch();
89
+ }
90
+
91
+ _releaseManager = releaseManagerAddress;
92
+ _tokenRegistry = tokenRegistryAddress;
93
+ _staking = stakingAddress;
94
+
95
+ // at this moment all registry contracts are deployed and fully intialized
96
+ _createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
97
+ _createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
98
+
99
+ _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
100
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
101
+ _createTarget(_staking, STAKING_TARGET_NAME);
102
+
103
+ _setGifAdminRole();
104
+ _setGifManagerRole();
105
+
106
+ _grantRole(GIF_ADMIN_ROLE(), gifAdmin, 0);
107
+ _grantRole(GIF_MANAGER_ROLE(), gifManager, 0);
108
+
109
+ // set gif manager role admin
110
+ _setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
111
+ }
112
+
113
+ // TODO makes sense to do this in intialize() function
114
+ // it is a single contract
115
+ // but if many token registries a possible...
116
+ /*function setTokenRegistry(
117
+ address tokenRegistry
118
+ )
119
+ external
120
+ restricted() // GIF_ADMIN_ROLE
121
+ {
122
+ // for TokenRegistry
123
+ bytes4[] memory functionSelector = new bytes4[](5);
124
+ functionSelector[0] = TokenRegistry.registerToken.selector;
125
+ functionSelector[1] = TokenRegistry.registerRemoteToken.selector;
126
+ functionSelector[2] = TokenRegistry.setActive.selector;
127
+ functionSelector[3] = TokenRegistry.setActiveForVersion.selector;
128
+
129
+ // only needed for testing TODO find a better way
130
+ functionSelector[4] = TokenRegistry.setActiveWithVersionCheck.selector;
131
+ _setTargetFunctionRole(address(tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
132
+ }*/
133
+
134
+
135
+ function setTargetFunctionRole(
136
+ address target,
137
+ bytes4[] memory selector,
138
+ RoleId roleId
139
+ )
140
+ external
141
+ restricted // RELEASE_MANAGER_ROLE -> TODO create this role
142
+ {
143
+ _setTargetFunctionRole(target, selector, roleId);
144
+ }
145
+
146
+ /*function transferAdmin(address to)
147
+ external
148
+ restricted // only with GIF_ADMIN_ROLE or nft owner
149
+ {
150
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
151
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
152
+ }*/
153
+
154
+ //--- view functions ----------------------------------------------------//
155
+
156
+ function hasRole(address account, RoleId roleId) external view returns(bool) {
157
+ (bool isMember,) = AccessManagerExtendedInitializeable(authority()).hasRole(roleId.toInt(), account);
158
+ return isMember;
159
+ }
160
+
161
+
162
+ function canCall(
163
+ address account,
164
+ address target,
165
+ bytes4 functionSelector
166
+ )
167
+ external
168
+ view
169
+ returns(bool)
170
+ {
171
+ (bool immediate,) = AuthorityUtils.canCallWithDelay(
172
+ authority(),
173
+ account,
174
+ target,
175
+ functionSelector);
176
+
177
+ return immediate;
178
+ }
179
+
180
+ //--- private functions -------------------------------------------------//
181
+
182
+ function _setGifAdminRole() private
183
+ {
184
+ // for ReleaseManager
185
+ bytes4[] memory functionSelector2 = new bytes4[](2);
186
+ //functionSelector2[0] = ReleaseManager.registerStaking.selector;
187
+ functionSelector2[0] = ReleaseManager.createNextRelease.selector;
188
+ functionSelector2[1] = ReleaseManager.activateNextRelease.selector;
189
+
190
+ _setTargetFunctionRole(_releaseManager, functionSelector2, GIF_ADMIN_ROLE());
191
+
192
+ // for Staking
193
+ }
194
+
195
+ function _setGifManagerRole() private
196
+ {
197
+ // for TokenRegistry
198
+ bytes4[] memory functionSelectorTr = new bytes4[](5);
199
+ functionSelectorTr[0] = TokenRegistry.registerToken.selector;
200
+ functionSelectorTr[1] = TokenRegistry.registerRemoteToken.selector;
201
+ functionSelectorTr[2] = TokenRegistry.setActive.selector;
202
+ functionSelectorTr[3] = TokenRegistry.setActiveForVersion.selector;
203
+
204
+ // only needed for testing TODO find a better way
205
+ functionSelectorTr[4] = TokenRegistry.setActiveWithVersionCheck.selector;
206
+ _setTargetFunctionRole(_tokenRegistry, functionSelectorTr, GIF_MANAGER_ROLE());
207
+
208
+ // for ReleaseManager
209
+ bytes4[] memory functionSelectorRm = new bytes4[](2);
210
+ functionSelectorRm[0] = ReleaseManager.registerService.selector;
211
+ functionSelectorRm[1] = ReleaseManager.prepareNextRelease.selector;
212
+ _setTargetFunctionRole(_releaseManager, functionSelectorRm, GIF_MANAGER_ROLE());
213
+
214
+ // for Staking
215
+ }
216
+
217
+
218
+ function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
219
+ AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
220
+ }
221
+
222
+ function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
223
+ AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
224
+ }
225
+
226
+ function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
227
+ AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
228
+ }
229
+
230
+ function _createRole(RoleId roleId, string memory roleName) private {
231
+ AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
232
+ }
233
+
234
+ function _createTarget(address target, string memory targetName) private {
235
+ AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
236
+ }
237
+ }
@@ -2,28 +2,26 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
6
 
7
7
  import {IRegistry} from "./IRegistry.sol";
8
8
  import {IInstance} from "../instance/IInstance.sol";
9
9
 
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IComponent} from "../../contracts/components/IComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
10
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
11
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
12
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
13
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
15
14
 
16
15
  import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
16
  import {Versionable} from "../../contracts/shared/Versionable.sol";
18
17
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
- import {Registerable} from "../../contracts/shared/Registerable.sol";
20
18
 
21
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
26
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
19
+ import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
20
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
21
+ import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
22
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
23
+ import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
24
+ import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
27
25
 
28
26
  import {Service} from "../shared/Service.sol";
29
27
  import {IService} from "../shared/IService.sol";
@@ -31,7 +29,6 @@ import {IRegistryService} from "./IRegistryService.sol";
31
29
  import {Registry} from "./Registry.sol";
32
30
 
33
31
  contract RegistryService is
34
- AccessManagedUpgradeable,
35
32
  Service,
36
33
  IRegistryService
37
34
  {
@@ -40,19 +37,59 @@ contract RegistryService is
40
37
  // TODO update to real hash when registry is stable
41
38
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
42
39
 
40
+ // From IService
41
+ function getDomain() public pure override returns(ObjectType serviceDomain) {
42
+ return REGISTRY();
43
+ }
44
+
45
+ // from Versionable
46
+
47
+ /// @dev top level initializer
48
+ function _initialize(
49
+ address owner,
50
+ bytes memory data
51
+ )
52
+ internal
53
+ virtual override
54
+ initializer()
55
+ {
56
+ (
57
+ address registryAddress,
58
+ address initialAuthority
59
+ ) = abi.decode(data, (address, address));
60
+
61
+ initializeService(registryAddress, initialAuthority, owner);
62
+ registerInterface(type(IRegistryService).interfaceId);
63
+ }
64
+
65
+
66
+ function registerStaking(IRegisterable staking, address owner)
67
+ external
68
+ virtual
69
+ restricted()
70
+ returns(
71
+ IRegistry.ObjectInfo memory info
72
+ )
73
+ {
74
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
75
+ info.nftId = getRegistry().register(info);
76
+ }
77
+
78
+
43
79
  function registerInstance(IRegisterable instance, address owner)
44
80
  external
81
+ virtual
45
82
  restricted
46
83
  returns(
47
84
  IRegistry.ObjectInfo memory info
48
85
  )
49
86
  {
50
87
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
51
- revert NotInstance();
88
+ revert ErrorRegistryServiceNotInstance(address(instance));
52
89
  }
53
90
 
54
91
  info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
55
- info.nftId = _registry.register(info);
92
+ info.nftId = getRegistry().register(info);
56
93
 
57
94
  instance.linkToRegisteredNftId(); // asume safe
58
95
  }
@@ -66,11 +103,31 @@ contract RegistryService is
66
103
  {
67
104
  // CAN revert if no ERC165 support -> will revert with empty message
68
105
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
69
- revert NotProduct();
106
+ revert ErrorRegistryServiceNotProduct(address(product));
70
107
  }
71
108
 
72
109
  info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
73
- info.nftId = _registry.register(info);
110
+ info.nftId = getRegistry().register(info);
111
+ }
112
+
113
+ function registerComponent(
114
+ IComponent component,
115
+ ObjectType objectType,
116
+ address initialOwner
117
+ )
118
+ external
119
+ restricted
120
+ returns(
121
+ IRegistry.ObjectInfo memory info
122
+ )
123
+ {
124
+ // CAN revert if no ERC165 support -> will revert with empty message
125
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
126
+ revert ErrorRegistryServiceNotComponent(address(component));
127
+ }
128
+
129
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
130
+ info.nftId = getRegistry().register(info);
74
131
  }
75
132
 
76
133
  function registerPool(IComponent pool, address owner)
@@ -81,11 +138,11 @@ contract RegistryService is
81
138
  )
82
139
  {
83
140
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
84
- revert NotPool();
141
+ revert ErrorRegistryServiceNotPool(address(pool));
85
142
  }
86
143
 
87
144
  info = _getAndVerifyContractInfo(pool, POOL(), owner);
88
- info.nftId = _registry.register(info);
145
+ info.nftId = getRegistry().register(info);
89
146
  }
90
147
 
91
148
  function registerDistribution(IComponent distribution, address owner)
@@ -96,11 +153,20 @@ contract RegistryService is
96
153
  )
97
154
  {
98
155
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
99
- revert NotDistribution();
156
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
100
157
  }
101
158
 
102
159
  info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
103
- info.nftId = _registry.register(info);
160
+ info.nftId = getRegistry().register(info);
161
+ }
162
+
163
+ function registerDistributor(IRegistry.ObjectInfo memory info)
164
+ external
165
+ restricted
166
+ returns(NftId nftId)
167
+ {
168
+ _verifyObjectInfo(info, DISTRIBUTOR());
169
+ nftId = getRegistry().register(info);
104
170
  }
105
171
 
106
172
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -109,8 +175,7 @@ contract RegistryService is
109
175
  returns(NftId nftId)
110
176
  {
111
177
  _verifyObjectInfo(info, POLICY());
112
-
113
- nftId = _registry.register(info);
178
+ nftId = getRegistry().register(info);
114
179
  }
115
180
 
116
181
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -119,8 +184,7 @@ contract RegistryService is
119
184
  returns(NftId nftId)
120
185
  {
121
186
  _verifyObjectInfo(info, BUNDLE());
122
-
123
- nftId = _registry.register(info);
187
+ nftId = getRegistry().register(info);
124
188
  }
125
189
 
126
190
  function registerStake(IRegistry.ObjectInfo memory info)
@@ -129,71 +193,7 @@ contract RegistryService is
129
193
  returns(NftId nftId)
130
194
  {
131
195
  _verifyObjectInfo(info, STAKE());
132
-
133
- nftId = _registry.register(info);
134
- }
135
-
136
- // From IService
137
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
138
- return REGISTRY();
139
- }
140
-
141
- // from Versionable
142
-
143
- /// @dev top level initializer
144
- function _initialize(
145
- address owner,
146
- bytes memory data
147
- )
148
- internal
149
- initializer
150
- virtual override
151
- {
152
- (
153
- address initialAuthority,
154
- address registry
155
- ) = abi.decode(data, (address, address));
156
-
157
- __AccessManaged_init(initialAuthority);
158
-
159
- _initializeService(address(registry), owner);
160
-
161
- _registerInterface(type(IRegistryService).interfaceId);
162
- }
163
-
164
- // from IRegisterable
165
-
166
- function getFunctionConfigs()
167
- external
168
- pure
169
- returns(
170
- FunctionConfig[] memory config
171
- )
172
- {
173
- config = new FunctionConfig[](6);
174
-
175
- // order of service registrations MUST be reverse to this array
176
- /*config[-1].serviceDomain = STAKE();
177
- config[-1].selector = RegistryService.registerStake.selector;*/
178
-
179
- config[0].serviceDomain = POLICY();
180
- config[0].selector = RegistryService.registerPolicy.selector;
181
-
182
- config[1].serviceDomain = BUNDLE();
183
- config[1].selector = RegistryService.registerBundle.selector;
184
-
185
- config[2].serviceDomain = PRODUCT();
186
- config[2].selector = RegistryService.registerProduct.selector;
187
-
188
- config[3].serviceDomain = POOL();
189
- config[3].selector = RegistryService.registerPool.selector;
190
-
191
- config[4].serviceDomain = DISTRIBUTION();
192
- config[4].selector = RegistryService.registerDistribution.selector;
193
-
194
- // registerInstance() have no restriction
195
- config[5].serviceDomain = INSTANCE();
196
- config[5].selector = RegistryService.registerInstance.selector;
196
+ nftId = getRegistry().register(info);
197
197
  }
198
198
 
199
199
  // Internal
@@ -204,34 +204,37 @@ contract RegistryService is
204
204
  address expectedOwner // assume can be 0 when given by other service
205
205
  )
206
206
  internal
207
- // view
207
+ view
208
208
  returns(
209
209
  IRegistry.ObjectInfo memory info
210
210
  )
211
211
  {
212
212
  info = registerable.getInitialInfo();
213
- info.objectAddress = address(registerable);
213
+
214
+ if(info.objectAddress != address(registerable)) {
215
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
216
+ }
214
217
 
215
218
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
216
- revert UnexpectedRegisterableType(expectedType, info.objectType);
219
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
217
220
  }
218
221
 
219
222
  address owner = info.initialOwner;
220
223
 
221
224
  if(owner != expectedOwner) { // registerable owner protection
222
- revert NotRegisterableOwner(expectedOwner);
225
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
223
226
  }
224
227
 
225
228
  if(owner == address(registerable)) {
226
- revert SelfRegistration();
229
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
227
230
  }
228
231
 
229
232
  if(owner == address(0)) {
230
- revert RegisterableOwnerIsZero();
233
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
231
234
  }
232
235
 
233
236
  if(getRegistry().isRegistered(owner)) {
234
- revert RegisterableOwnerIsRegistered();
237
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
235
238
  }
236
239
  }
237
240
 
@@ -242,21 +245,22 @@ contract RegistryService is
242
245
  internal
243
246
  view
244
247
  {
245
- // enforce instead of check
246
- info.objectAddress = address(0);
248
+ if(info.objectAddress > address(0)) {
249
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
250
+ }
247
251
 
248
252
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
249
- revert UnexpectedRegisterableType(expectedType, info.objectType);
253
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
250
254
  }
251
255
 
252
256
  address owner = info.initialOwner;
253
257
 
254
258
  if(owner == address(0)) {
255
- revert RegisterableOwnerIsZero();
259
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
256
260
  }
257
261
 
258
262
  if(getRegistry().isRegistered(owner)) {
259
- revert RegisterableOwnerIsRegistered();
263
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
260
264
  }
261
265
  }
262
- }
266
+ }
@@ -1,10 +1,8 @@
1
- // SPDX-License-Identifier: UNLICENSED
1
+ // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
5
 
6
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
7
-
8
6
  import {Registry} from "./Registry.sol";
9
7
  import {IVersionable} from "../shared/IVersionable.sol";
10
8
  import {ProxyManager} from "../shared/ProxyManager.sol";
@@ -15,41 +13,39 @@ import {TokenRegistry} from "./TokenRegistry.sol";
15
13
  contract RegistryServiceManager is
16
14
  ProxyManager
17
15
  {
16
+ error ErrorRegistryAccessManagerAuthorityZero();
17
+ error ErrorRegistryAccessManagerRegistryZero();
18
+
18
19
  bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
19
20
 
20
21
  RegistryService private immutable _registryService;
21
22
 
22
23
  /// @dev initializes proxy manager with registry service implementation and deploys registry
23
24
  constructor(
24
- address initialAuthority, // used by implementation
25
- address registry) // used by implementation
26
- ProxyManager()
25
+ address authority, // used by implementation
26
+ address registry, // used by implementation
27
+ bytes32 salt
28
+ )
29
+ ProxyManager(registry)
27
30
  {
28
- require(initialAuthority > address(0), "RegistryServiceManager: initial authority is 0");
29
- require(registry > address(0), "RegistryServiceManager: registry is 0");
30
-
31
- // implementation's initializer func `data` argument
32
- bytes memory initializationData = abi.encode(
33
- initialAuthority,
34
- registry);
31
+ if(authority == address(0)) {
32
+ revert ErrorRegistryAccessManagerAuthorityZero();
33
+ }
35
34
 
36
- IVersionable versionable = deploy(
37
- address(new RegistryService()),
38
- initializationData);
35
+ if(registry == address(0)) {
36
+ revert ErrorRegistryAccessManagerRegistryZero();
37
+ }
38
+
39
+ RegistryService srv = new RegistryService{ salt: salt }();
40
+ bytes memory data = abi.encode(registry, authority);
41
+ IVersionable versionable = deployDetermenistic(
42
+ address(srv),
43
+ data,
44
+ salt);
39
45
 
40
46
  _registryService = RegistryService(address(versionable));
41
47
  }
42
48
 
43
- // from IRegisterable
44
-
45
- // IMPORTANT: registry here and in constructor MUST be the same
46
- function linkToNftOwnable(address registry)
47
- public
48
- onlyOwner
49
- {
50
- _linkToNftOwnable(registry, address(_registryService));
51
- }
52
-
53
49
  //--- view functions ----------------------------------------------------//
54
50
 
55
51
  function getRegistryService()