@etherisc/gif-next 0.0.2-bb7b80e-316 → 0.0.2-bc0a9a8-101

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 (588) 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 +73 -83
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +279 -1408
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +296 -216
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -2500
  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 +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +485 -342
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +457 -367
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -94
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  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/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +260 -290
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -240
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +244 -308
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +263 -226
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +438 -229
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +124 -145
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +279 -17
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +355 -221
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +512 -36
  108. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  109. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +507 -287
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -82
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +847 -85
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  120. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  122. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  130. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  131. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +410 -367
  132. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  134. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  136. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +193 -199
  138. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  139. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  140. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  142. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  144. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  145. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +271 -133
  146. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  148. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  149. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +240 -221
  150. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -31
  152. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  154. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  155. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  156. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  158. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  160. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  161. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  162. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IService.sol/IService.json +75 -163
  164. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  166. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  167. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  168. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  169. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  170. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  171. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  172. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  174. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  175. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  176. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  178. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  180. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  182. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  184. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  185. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  186. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Service.sol/Service.json +179 -153
  188. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  189. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  190. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  192. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  194. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  195. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  196. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  197. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  198. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  199. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  200. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  201. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  202. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  204. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  205. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  206. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  208. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  210. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  212. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  214. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  215. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  216. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  217. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  218. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  220. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  222. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  223. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  224. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  226. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  228. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  230. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  232. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  233. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  234. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  236. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  238. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  240. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  242. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  244. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  246. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  248. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  250. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  252. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  254. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  256. package/contracts/distribution/Distribution.sol +261 -0
  257. package/contracts/distribution/DistributionService.sol +298 -0
  258. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  259. package/contracts/distribution/IDistributionComponent.sol +66 -0
  260. package/contracts/distribution/IDistributionService.sol +81 -0
  261. package/contracts/instance/BundleManager.sol +22 -25
  262. package/contracts/instance/IInstance.sol +58 -39
  263. package/contracts/instance/IInstanceService.sol +58 -17
  264. package/contracts/instance/Instance.sol +155 -182
  265. package/contracts/instance/InstanceAdmin.sol +331 -0
  266. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  267. package/contracts/instance/InstanceReader.sol +136 -86
  268. package/contracts/instance/InstanceService.sol +259 -242
  269. package/contracts/instance/InstanceServiceManager.sol +12 -22
  270. package/contracts/instance/InstanceStore.sol +260 -0
  271. package/contracts/instance/base/BalanceStore.sol +118 -0
  272. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  273. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
  274. package/contracts/instance/module/IAccess.sol +19 -21
  275. package/contracts/instance/module/IBundle.sol +8 -8
  276. package/contracts/instance/module/IComponents.sol +52 -0
  277. package/contracts/instance/module/IDistribution.sol +7 -4
  278. package/contracts/instance/module/IPolicy.sol +56 -17
  279. package/contracts/instance/module/IRisk.sol +1 -1
  280. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  281. package/contracts/pool/BundleService.sol +296 -0
  282. package/contracts/pool/BundleServiceManager.sol +42 -0
  283. package/contracts/pool/IBundleService.sol +106 -0
  284. package/contracts/pool/IPoolComponent.sol +112 -0
  285. package/contracts/pool/IPoolService.sol +150 -0
  286. package/contracts/pool/Pool.sol +299 -0
  287. package/contracts/pool/PoolService.sol +453 -0
  288. package/contracts/pool/PoolServiceManager.sol +42 -0
  289. package/contracts/product/ApplicationService.sol +254 -0
  290. package/contracts/product/ApplicationServiceManager.sol +38 -0
  291. package/contracts/product/ClaimService.sol +442 -0
  292. package/contracts/product/ClaimServiceManager.sol +38 -0
  293. package/contracts/product/IApplicationService.sol +62 -0
  294. package/contracts/product/IClaimService.sol +93 -0
  295. package/contracts/product/IPolicyService.sol +78 -0
  296. package/contracts/product/IPricingService.sol +39 -0
  297. package/contracts/product/IProductComponent.sol +42 -0
  298. package/contracts/product/IProductService.sol +33 -0
  299. package/contracts/product/PolicyService.sol +475 -0
  300. package/contracts/product/PolicyServiceManager.sol +42 -0
  301. package/contracts/product/PricingService.sol +301 -0
  302. package/contracts/product/PricingServiceManager.sol +42 -0
  303. package/contracts/product/Product.sol +377 -0
  304. package/contracts/product/ProductService.sol +124 -0
  305. package/contracts/product/ProductServiceManager.sol +42 -0
  306. package/contracts/registry/ChainNft.sol +16 -1
  307. package/contracts/registry/IRegistry.sol +56 -23
  308. package/contracts/registry/IRegistryService.sol +45 -34
  309. package/contracts/registry/ITransferInterceptor.sol +1 -0
  310. package/contracts/registry/Registry.sol +299 -119
  311. package/contracts/registry/RegistryAdmin.sol +237 -0
  312. package/contracts/registry/RegistryService.sol +118 -172
  313. package/contracts/registry/RegistryServiceManager.sol +22 -26
  314. package/contracts/registry/ReleaseManager.sol +463 -206
  315. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  316. package/contracts/registry/TokenRegistry.sol +263 -58
  317. package/contracts/shared/AccessManagerCustom.sol +736 -0
  318. package/contracts/shared/AccessManagerExtended.sol +470 -0
  319. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  320. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  321. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  322. package/contracts/shared/Component.sol +278 -0
  323. package/contracts/shared/ComponentService.sol +596 -0
  324. package/contracts/shared/ComponentServiceManager.sol +35 -0
  325. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  326. package/contracts/shared/ERC165.sol +15 -13
  327. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  328. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  329. package/contracts/shared/IComponent.sol +70 -0
  330. package/contracts/shared/IComponentService.sol +91 -0
  331. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  332. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  333. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  334. package/contracts/shared/INftOwnable.sol +13 -12
  335. package/contracts/shared/IPolicyHolder.sol +45 -0
  336. package/contracts/shared/IRegisterable.sol +4 -6
  337. package/contracts/shared/IRegistryLinked.sol +11 -0
  338. package/contracts/shared/IService.sol +7 -5
  339. package/contracts/shared/IVersionable.sol +5 -48
  340. package/contracts/shared/InitializableCustom.sol +177 -0
  341. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  342. package/contracts/shared/KeyValueStore.sol +127 -0
  343. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  344. package/contracts/shared/NftIdSetManager.sol +65 -0
  345. package/contracts/shared/NftOwnable.sol +59 -86
  346. package/contracts/shared/PolicyHolder.sol +102 -0
  347. package/contracts/shared/ProxyManager.sol +131 -26
  348. package/contracts/shared/Registerable.sol +26 -41
  349. package/contracts/shared/RegistryLinked.sol +43 -0
  350. package/contracts/shared/Service.sol +42 -23
  351. package/contracts/shared/TokenHandler.sol +37 -6
  352. package/contracts/shared/Versionable.sol +4 -92
  353. package/contracts/staking/IStaking.sol +168 -0
  354. package/contracts/staking/IStakingService.sol +149 -0
  355. package/contracts/staking/StakeManagerLib.sol +179 -0
  356. package/contracts/staking/Staking.sol +551 -0
  357. package/contracts/staking/StakingManager.sol +54 -0
  358. package/contracts/staking/StakingReader.sol +187 -0
  359. package/contracts/staking/StakingService.sol +406 -0
  360. package/contracts/staking/StakingServiceManager.sol +45 -0
  361. package/contracts/staking/StakingStore.sol +572 -0
  362. package/contracts/staking/TargetManagerLib.sol +207 -0
  363. package/contracts/{types → type}/AddressSet.sol +1 -1
  364. package/contracts/type/Amount.sol +128 -0
  365. package/contracts/{types → type}/Blocknumber.sol +21 -3
  366. package/contracts/type/ClaimId.sol +75 -0
  367. package/contracts/{types → type}/DistributorType.sol +2 -2
  368. package/contracts/{types → type}/Fee.sol +33 -23
  369. package/contracts/{types → type}/NftId.sol +21 -15
  370. package/contracts/{types → type}/NftIdSet.sol +2 -2
  371. package/contracts/{types → type}/ObjectType.sol +26 -9
  372. package/contracts/type/PayoutId.sol +82 -0
  373. package/contracts/{types → type}/Referral.sol +5 -1
  374. package/contracts/{types → type}/RiskId.sol +1 -1
  375. package/contracts/type/RoleId.sol +143 -0
  376. package/contracts/type/Seconds.sol +81 -0
  377. package/contracts/{types → type}/StateId.sol +24 -6
  378. package/contracts/{types → type}/Timestamp.sol +18 -13
  379. package/contracts/{types → type}/UFixed.sol +1 -0
  380. package/contracts/{types → type}/Version.sol +2 -1
  381. package/package.json +5 -5
  382. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  383. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  384. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  385. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  386. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  387. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  388. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  389. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  390. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  391. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  392. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  393. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  394. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  395. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  396. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  397. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  398. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  399. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  400. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  401. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  402. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  403. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  404. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  405. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  406. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  407. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  408. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  409. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  410. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  411. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  412. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  413. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  414. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  416. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  418. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  420. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  422. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  424. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  426. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  428. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  430. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  432. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  433. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  434. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  435. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  436. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  437. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  438. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  439. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  440. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  441. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  442. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  444. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  445. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
  447. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  448. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  449. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  450. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  451. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  452. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  453. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  454. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  455. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  456. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
  457. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  459. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  461. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  462. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  463. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  464. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  466. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1156
  471. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  473. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  475. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  477. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  479. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  481. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  482. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  483. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  484. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  485. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  486. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  487. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  488. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  489. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  490. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  491. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  493. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  495. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  497. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  499. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  501. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  502. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  503. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  504. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  506. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  508. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  511. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  512. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  514. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  515. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  517. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  520. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  528. package/contracts/components/BaseComponent.sol +0 -168
  529. package/contracts/components/Distribution.sol +0 -154
  530. package/contracts/components/IBaseComponent.sol +0 -35
  531. package/contracts/components/IDistributionComponent.sol +0 -44
  532. package/contracts/components/IPoolComponent.sol +0 -66
  533. package/contracts/components/IProductComponent.sol +0 -35
  534. package/contracts/components/Pool.sol +0 -258
  535. package/contracts/components/Product.sol +0 -295
  536. package/contracts/experiment/cloning/Cloner.sol +0 -47
  537. package/contracts/experiment/errors/Require.sol +0 -38
  538. package/contracts/experiment/errors/Revert.sol +0 -44
  539. package/contracts/experiment/inheritance/A.sol +0 -53
  540. package/contracts/experiment/inheritance/B.sol +0 -28
  541. package/contracts/experiment/inheritance/C.sol +0 -34
  542. package/contracts/experiment/inheritance/IA.sol +0 -13
  543. package/contracts/experiment/inheritance/IB.sol +0 -10
  544. package/contracts/experiment/inheritance/IC.sol +0 -12
  545. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  546. package/contracts/experiment/statemachine/ISM.sol +0 -25
  547. package/contracts/experiment/statemachine/SM.sol +0 -57
  548. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  549. package/contracts/experiment/types/TypeA.sol +0 -47
  550. package/contracts/experiment/types/TypeB.sol +0 -29
  551. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  552. package/contracts/instance/IInstanceBase.sol +0 -25
  553. package/contracts/instance/InstanceAccessManager.sol +0 -303
  554. package/contracts/instance/InstanceBase.sol +0 -39
  555. package/contracts/instance/base/ComponentServiceBase.sol +0 -76
  556. package/contracts/instance/base/IInstanceBase.sol +0 -21
  557. package/contracts/instance/base/KeyValueStore.sol +0 -172
  558. package/contracts/instance/module/ISetup.sol +0 -46
  559. package/contracts/instance/module/ITreasury.sol +0 -23
  560. package/contracts/instance/service/BundleService.sol +0 -294
  561. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  562. package/contracts/instance/service/DistributionService.sol +0 -120
  563. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  564. package/contracts/instance/service/IBundleService.sol +0 -44
  565. package/contracts/instance/service/IDistributionService.sol +0 -12
  566. package/contracts/instance/service/IPolicyService.sol +0 -94
  567. package/contracts/instance/service/IPoolService.sol +0 -20
  568. package/contracts/instance/service/IProductService.sol +0 -40
  569. package/contracts/instance/service/PolicyService.sol +0 -539
  570. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  571. package/contracts/instance/service/PoolService.sol +0 -145
  572. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  573. package/contracts/instance/service/ProductService.sol +0 -213
  574. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  575. package/contracts/registry/RegistryAccessManager.sol +0 -210
  576. package/contracts/shared/ContractDeployerLib.sol +0 -72
  577. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  578. package/contracts/test/TestFee.sol +0 -25
  579. package/contracts/test/TestRegisterable.sol +0 -18
  580. package/contracts/test/TestRoleId.sol +0 -14
  581. package/contracts/test/TestService.sol +0 -25
  582. package/contracts/test/TestToken.sol +0 -26
  583. package/contracts/test/TestVersion.sol +0 -44
  584. package/contracts/test/TestVersionable.sol +0 -17
  585. package/contracts/types/ChainId.sol +0 -38
  586. package/contracts/types/NumberId.sol +0 -52
  587. package/contracts/types/RoleId.sol +0 -90
  588. /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 {IBaseComponent} from "../../contracts/components/IBaseComponent.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,84 +37,136 @@ 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
 
43
- address public constant NFT_LOCK_ADDRESS = address(0x1);
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
+ }
44
77
 
45
78
 
46
- function registerInstance(IRegisterable instance)
79
+ function registerInstance(IRegisterable instance, address owner)
47
80
  external
81
+ virtual
82
+ restricted
48
83
  returns(
49
- IRegistry.ObjectInfo memory info,
50
- bytes memory data
84
+ IRegistry.ObjectInfo memory info
51
85
  )
52
86
  {
53
87
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
54
- revert NotInstance();
88
+ revert ErrorRegistryServiceNotInstance(address(instance));
55
89
  }
56
90
 
57
- (info, data) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
91
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
92
+ info.nftId = getRegistry().register(info);
58
93
 
59
- info.nftId = _registry.register(info);
60
94
  instance.linkToRegisteredNftId(); // asume safe
61
-
62
- return (info, data);
63
95
  }
64
96
 
65
- function registerProduct(IBaseComponent product, address owner)
97
+ function registerProduct(IComponent product, address owner)
66
98
  external
67
99
  restricted
68
100
  returns(
69
- IRegistry.ObjectInfo memory info,
70
- bytes memory data
101
+ IRegistry.ObjectInfo memory info
71
102
  )
72
103
  {
73
104
  // CAN revert if no ERC165 support -> will revert with empty message
74
105
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
75
- revert NotProduct();
106
+ revert ErrorRegistryServiceNotProduct(address(product));
76
107
  }
77
108
 
78
- (info, data) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
109
+ info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
110
+ info.nftId = getRegistry().register(info);
111
+ }
79
112
 
80
- info.nftId = _registry.register(info);
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
+ }
81
128
 
82
- return (info, data);
129
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
130
+ info.nftId = getRegistry().register(info);
83
131
  }
84
132
 
85
- function registerPool(IBaseComponent pool, address owner)
133
+ function registerPool(IComponent pool, address owner)
86
134
  external
87
135
  restricted
88
136
  returns(
89
- IRegistry.ObjectInfo memory info,
90
- bytes memory data
137
+ IRegistry.ObjectInfo memory info
91
138
  )
92
139
  {
93
140
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
94
- revert NotPool();
141
+ revert ErrorRegistryServiceNotPool(address(pool));
95
142
  }
96
143
 
97
- (info, data) = _getAndVerifyContractInfo(pool, POOL(), owner);
98
-
99
- info.nftId = _registry.register(info);
100
-
101
- return (info, data);
144
+ info = _getAndVerifyContractInfo(pool, POOL(), owner);
145
+ info.nftId = getRegistry().register(info);
102
146
  }
103
147
 
104
- function registerDistribution(IBaseComponent distribution, address owner)
148
+ function registerDistribution(IComponent distribution, address owner)
105
149
  external
106
150
  restricted
107
151
  returns(
108
- IRegistry.ObjectInfo memory info,
109
- bytes memory data
152
+ IRegistry.ObjectInfo memory info
110
153
  )
111
154
  {
112
155
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
113
- revert NotDistribution();
156
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
114
157
  }
115
158
 
116
- (info, data) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
117
-
118
- info.nftId = _registry.register(info);
159
+ info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
160
+ info.nftId = getRegistry().register(info);
161
+ }
119
162
 
120
- return (info, data);
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);
121
170
  }
122
171
 
123
172
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -126,8 +175,7 @@ contract RegistryService is
126
175
  returns(NftId nftId)
127
176
  {
128
177
  _verifyObjectInfo(info, POLICY());
129
-
130
- nftId = _registry.register(info);
178
+ nftId = getRegistry().register(info);
131
179
  }
132
180
 
133
181
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -136,8 +184,7 @@ contract RegistryService is
136
184
  returns(NftId nftId)
137
185
  {
138
186
  _verifyObjectInfo(info, BUNDLE());
139
-
140
- nftId = _registry.register(info);
187
+ nftId = getRegistry().register(info);
141
188
  }
142
189
 
143
190
  function registerStake(IRegistry.ObjectInfo memory info)
@@ -146,74 +193,7 @@ contract RegistryService is
146
193
  returns(NftId nftId)
147
194
  {
148
195
  _verifyObjectInfo(info, STAKE());
149
-
150
- nftId = _registry.register(info);
151
- }
152
-
153
- // From IService
154
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
155
- return REGISTRY();
156
- }
157
-
158
- // from Versionable
159
-
160
- /// @dev top level initializer
161
- function _initialize(
162
- address owner,
163
- bytes memory data
164
- )
165
- internal
166
- initializer
167
- virtual override
168
- {
169
- (
170
- address initialAuthority,
171
- address registry
172
- ) = abi.decode(data, (address, address));
173
-
174
- __AccessManaged_init(initialAuthority);
175
-
176
- _initializeService(address(registry), owner);
177
-
178
- _registerInterface(type(IRegistryService).interfaceId);
179
- }
180
-
181
- // from IRegisterable
182
-
183
- function getInitialInfo()
184
- public
185
- view
186
- override(IRegisterable, Registerable)
187
- returns (IRegistry.ObjectInfo memory info, bytes memory data)
188
- {
189
- (info , data) = super.getInitialInfo();
190
-
191
- FunctionConfig[] memory config = new FunctionConfig[](6);
192
-
193
- // order of service registrations MUST be reverse to this array
194
- /*config[-1].serviceDomain = STAKE();
195
- config[-1].selector = RegistryService.registerStake.selector;*/
196
-
197
- config[0].serviceDomain = POLICY();
198
- config[0].selector = RegistryService.registerPolicy.selector;
199
-
200
- config[1].serviceDomain = BUNDLE();
201
- config[1].selector = RegistryService.registerBundle.selector;
202
-
203
- config[2].serviceDomain = PRODUCT();
204
- config[2].selector = RegistryService.registerProduct.selector;
205
-
206
- config[3].serviceDomain = POOL();
207
- config[3].selector = RegistryService.registerPool.selector;
208
-
209
- config[4].serviceDomain = DISTRIBUTION();
210
- config[4].selector = RegistryService.registerDistribution.selector;
211
-
212
- // registerInstance() have no restriction
213
- config[5].serviceDomain = INSTANCE();
214
- config[5].selector = RegistryService.registerInstance.selector;
215
-
216
- data = abi.encode(config);
196
+ nftId = getRegistry().register(info);
217
197
  }
218
198
 
219
199
  // Internal
@@ -226,51 +206,36 @@ contract RegistryService is
226
206
  internal
227
207
  view
228
208
  returns(
229
- IRegistry.ObjectInfo memory info,
230
- bytes memory data
209
+ IRegistry.ObjectInfo memory info
231
210
  )
232
211
  {
233
- (
234
- info,
235
- data
236
- ) = registerable.getInitialInfo();
237
- info.objectAddress = address(registerable);
212
+ info = registerable.getInitialInfo();
213
+
214
+ if(info.objectAddress != address(registerable)) {
215
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
216
+ }
238
217
 
239
218
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
240
- revert UnexpectedRegisterableType(expectedType, info.objectType);
219
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
241
220
  }
242
221
 
243
222
  address owner = info.initialOwner;
244
223
 
245
- // solhint-disable-next-line
246
- if(expectedType == INSTANCE()) {
247
- // any address may create a new instance via instance service
248
- } else {
249
- if(owner != expectedOwner) { // registerable owner protection
250
- revert NotRegisterableOwner(expectedOwner);
251
- }
224
+ if(owner != expectedOwner) { // registerable owner protection
225
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
252
226
  }
253
227
 
254
228
  if(owner == address(registerable)) {
255
- revert SelfRegistration();
229
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
256
230
  }
257
231
 
258
232
  if(owner == address(0)) {
259
- revert RegisterableOwnerIsZero();
233
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
260
234
  }
261
235
 
262
236
  if(getRegistry().isRegistered(owner)) {
263
- revert RegisterableOwnerIsRegistered();
237
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
264
238
  }
265
-
266
- /*NftId parentNftId = info.parentNftId;
267
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
268
-
269
- if(parentInfo.objectType != parentType) { // parent registration + type
270
- revert InvalidParent(parentNftId);
271
- }*/
272
-
273
- return(info, data);
274
239
  }
275
240
 
276
241
  function _verifyObjectInfo(
@@ -280,41 +245,22 @@ contract RegistryService is
280
245
  internal
281
246
  view
282
247
  {
283
- // enforce instead of check
284
- info.objectAddress = address(0);
248
+ if(info.objectAddress > address(0)) {
249
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
250
+ }
285
251
 
286
252
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
287
- revert UnexpectedRegisterableType(expectedType, info.objectType);
253
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
288
254
  }
289
255
 
290
256
  address owner = info.initialOwner;
291
257
 
292
258
  if(owner == address(0)) {
293
- revert RegisterableOwnerIsZero();
259
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
294
260
  }
295
261
 
296
262
  if(getRegistry().isRegistered(owner)) {
297
- revert RegisterableOwnerIsRegistered();
298
- }
299
-
300
- // can catch all 3 if check that initialOwner is not registered
301
- /*if(info.initialOwner == msg.sender) {
302
- revert InitialOwnerIsParent();
303
- }
304
-
305
- if(info.initialOwner == address(this)) {
306
- revert InitialOwnerIsService();
263
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
307
264
  }
308
-
309
- if(info.initialOwner == address(getRegistry())) {
310
- revert InitialOwnerIsRegistry();
311
- }*/
312
-
313
- /*NftId parentNftId = info.parentNftId;
314
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
315
-
316
- if(parentInfo.objectType != parentType) { // parent registration + type
317
- revert InvalidParent(parentNftId);
318
- }*/
319
265
  }
320
- }
266
+ }