@etherisc/gif-next 0.0.2-d3ee0cc-268 → 0.0.2-d442a8c-073

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 (620) hide show
  1. package/README.md +250 -23
  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 +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -1509
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +416 -1600
  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 +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  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/base/Cloneable.sol/Cloneable.json +190 -0
  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 +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +252 -230
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +197 -174
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -138
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +158 -151
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  200. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  218. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  219. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  220. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  222. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  224. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  226. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  228. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  230. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  234. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  236. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  238. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  240. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  242. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  248. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  258. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  260. package/contracts/distribution/Distribution.sol +261 -0
  261. package/contracts/distribution/DistributionService.sol +298 -0
  262. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  263. package/contracts/distribution/IDistributionComponent.sol +66 -0
  264. package/contracts/distribution/IDistributionService.sol +81 -0
  265. package/contracts/instance/BundleManager.sol +126 -0
  266. package/contracts/instance/IInstance.sol +71 -44
  267. package/contracts/instance/IInstanceService.sol +81 -0
  268. package/contracts/instance/Instance.sol +219 -52
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +365 -0
  272. package/contracts/instance/InstanceService.sol +362 -0
  273. package/contracts/instance/InstanceServiceManager.sol +44 -0
  274. package/contracts/instance/InstanceStore.sol +260 -0
  275. package/contracts/instance/base/BalanceStore.sol +118 -0
  276. package/contracts/instance/base/Cloneable.sol +51 -0
  277. package/contracts/instance/base/ObjectManager.sol +82 -0
  278. package/contracts/instance/module/IAccess.sol +46 -0
  279. package/contracts/instance/module/IBundle.sol +20 -0
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +42 -0
  282. package/contracts/instance/module/IPolicy.sol +84 -0
  283. package/contracts/instance/module/IRisk.sol +11 -0
  284. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  285. package/contracts/pool/BundleService.sol +296 -0
  286. package/contracts/pool/BundleServiceManager.sol +42 -0
  287. package/contracts/pool/IBundleService.sol +106 -0
  288. package/contracts/pool/IPoolComponent.sol +112 -0
  289. package/contracts/pool/IPoolService.sol +150 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +453 -0
  292. package/contracts/pool/PoolServiceManager.sol +42 -0
  293. package/contracts/product/ApplicationService.sol +254 -0
  294. package/contracts/product/ApplicationServiceManager.sol +38 -0
  295. package/contracts/product/ClaimService.sol +442 -0
  296. package/contracts/product/ClaimServiceManager.sol +38 -0
  297. package/contracts/product/IApplicationService.sol +62 -0
  298. package/contracts/product/IClaimService.sol +93 -0
  299. package/contracts/product/IPolicyService.sol +78 -0
  300. package/contracts/product/IPricingService.sol +39 -0
  301. package/contracts/product/IProductComponent.sol +42 -0
  302. package/contracts/product/IProductService.sol +33 -0
  303. package/contracts/product/PolicyService.sol +475 -0
  304. package/contracts/product/PolicyServiceManager.sol +42 -0
  305. package/contracts/product/PricingService.sol +301 -0
  306. package/contracts/product/PricingServiceManager.sol +42 -0
  307. package/contracts/product/Product.sol +377 -0
  308. package/contracts/product/ProductService.sol +124 -0
  309. package/contracts/product/ProductServiceManager.sol +42 -0
  310. package/contracts/registry/ChainNft.sol +95 -37
  311. package/contracts/registry/IRegistry.sol +95 -28
  312. package/contracts/registry/IRegistryService.sol +69 -0
  313. package/contracts/registry/ITransferInterceptor.sol +7 -0
  314. package/contracts/registry/Registry.sol +476 -281
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +266 -0
  317. package/contracts/registry/RegistryServiceManager.sol +58 -0
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +315 -0
  321. package/contracts/shared/AccessManagerCustom.sol +736 -0
  322. package/contracts/shared/AccessManagerExtended.sol +470 -0
  323. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  324. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  325. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  326. package/contracts/shared/Component.sol +278 -0
  327. package/contracts/shared/ComponentService.sol +596 -0
  328. package/contracts/shared/ComponentServiceManager.sol +35 -0
  329. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  330. package/contracts/shared/ERC165.sol +15 -9
  331. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  332. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  333. package/contracts/shared/IComponent.sol +70 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/shared/IKeyValueStore.sol +53 -0
  337. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  338. package/contracts/shared/INftOwnable.sol +23 -0
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +10 -19
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +38 -37
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +127 -0
  347. package/contracts/{instance/base → shared}/Lifecycle.sol +43 -17
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +107 -0
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +199 -0
  352. package/contracts/shared/Registerable.sol +54 -65
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +58 -0
  356. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  357. package/contracts/shared/Versionable.sol +38 -68
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +149 -0
  360. package/contracts/staking/StakeManagerLib.sol +179 -0
  361. package/contracts/staking/Staking.sol +551 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +406 -0
  365. package/contracts/staking/StakingServiceManager.sol +45 -0
  366. package/contracts/staking/StakingStore.sol +572 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/{types → type}/AddressSet.sol +1 -1
  369. package/contracts/type/Amount.sol +128 -0
  370. package/contracts/{types → type}/Blocknumber.sol +21 -3
  371. package/contracts/type/ClaimId.sol +75 -0
  372. package/contracts/type/DistributorType.sol +55 -0
  373. package/contracts/type/Fee.sol +66 -0
  374. package/contracts/{types → type}/Key32.sol +8 -3
  375. package/contracts/{types → type}/NftId.sol +21 -15
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/{types → type}/ObjectType.sol +69 -15
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/type/Referral.sol +89 -0
  380. package/contracts/type/RiskId.sol +43 -0
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +81 -0
  383. package/contracts/{types → type}/StateId.sol +29 -7
  384. package/contracts/{types → type}/Timestamp.sol +22 -13
  385. package/contracts/{types → type}/UFixed.sol +129 -12
  386. package/contracts/{types → type}/Version.sol +15 -2
  387. package/package.json +6 -5
  388. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  389. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  390. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  391. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  392. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  393. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  394. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  395. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  396. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  397. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  398. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  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/IA.sol/ISharedA.json +0 -37
  415. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  417. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  419. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  421. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  423. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  425. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  427. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  429. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  431. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  433. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  434. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  435. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  436. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  437. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  438. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  439. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  440. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  441. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  443. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  444. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  445. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  446. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  447. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  448. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  449. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  450. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  451. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  452. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  453. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  454. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  455. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  456. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  457. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  458. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  459. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  460. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  461. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  462. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  463. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  464. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  465. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  466. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  467. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  469. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  470. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  471. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  473. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  474. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  475. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  476. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  478. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  479. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  480. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  482. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  484. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  486. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  487. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  488. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  489. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  491. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  493. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  495. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  497. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -491
  499. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  502. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  505. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  507. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  508. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  509. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  510. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  511. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  512. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  513. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  514. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  515. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  516. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -82
  521. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  529. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  530. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  531. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  537. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  539. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  541. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  543. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  547. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  550. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  552. package/contracts/components/BaseComponent.sol +0 -88
  553. package/contracts/components/IBaseComponent.sol +0 -19
  554. package/contracts/components/IPoolComponent.sol +0 -57
  555. package/contracts/components/IProductComponent.sol +0 -19
  556. package/contracts/components/Pool.sol +0 -174
  557. package/contracts/components/Product.sol +0 -117
  558. package/contracts/experiment/errors/Require.sol +0 -38
  559. package/contracts/experiment/errors/Revert.sol +0 -44
  560. package/contracts/experiment/inheritance/A.sol +0 -53
  561. package/contracts/experiment/inheritance/B.sol +0 -28
  562. package/contracts/experiment/inheritance/C.sol +0 -34
  563. package/contracts/experiment/inheritance/IA.sol +0 -13
  564. package/contracts/experiment/inheritance/IB.sol +0 -10
  565. package/contracts/experiment/inheritance/IC.sol +0 -12
  566. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  567. package/contracts/experiment/statemachine/ISM.sol +0 -25
  568. package/contracts/experiment/statemachine/README.md +0 -112
  569. package/contracts/experiment/statemachine/SM.sol +0 -57
  570. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  571. package/contracts/experiment/types/TypeA.sol +0 -47
  572. package/contracts/experiment/types/TypeB.sol +0 -29
  573. package/contracts/instance/IInstanceLinked.sol +0 -8
  574. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  575. package/contracts/instance/base/IInstanceBase.sol +0 -14
  576. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  577. package/contracts/instance/base/IService.sol +0 -15
  578. package/contracts/instance/base/InstanceBase.sol +0 -80
  579. package/contracts/instance/base/KeyValueStore.sol +0 -156
  580. package/contracts/instance/base/ModuleBase.sol +0 -52
  581. package/contracts/instance/base/ServiceBase.sol +0 -37
  582. package/contracts/instance/module/access/Access.sol +0 -149
  583. package/contracts/instance/module/access/IAccess.sol +0 -53
  584. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  585. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  586. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  587. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  588. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  589. package/contracts/instance/module/component/IComponent.sol +0 -53
  590. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  591. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  592. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  593. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  594. package/contracts/instance/module/risk/IRisk.sol +0 -10
  595. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  596. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  597. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  598. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  599. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  600. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  601. package/contracts/instance/service/IPoolService.sol +0 -30
  602. package/contracts/instance/service/IProductService.sol +0 -58
  603. package/contracts/instance/service/PoolService.sol +0 -123
  604. package/contracts/instance/service/ProductService.sol +0 -354
  605. package/contracts/registry/IChainNft.sol +0 -21
  606. package/contracts/registry/IRegistryLinked.sol +0 -8
  607. package/contracts/shared/IOwnable.sol +0 -6
  608. package/contracts/test/TestFee.sol +0 -25
  609. package/contracts/test/TestPool.sol +0 -22
  610. package/contracts/test/TestProduct.sol +0 -44
  611. package/contracts/test/TestRegisterable.sol +0 -19
  612. package/contracts/test/TestRoleId.sol +0 -14
  613. package/contracts/test/TestService.sol +0 -32
  614. package/contracts/test/TestToken.sol +0 -26
  615. package/contracts/test/TestVersion.sol +0 -44
  616. package/contracts/test/TestVersionable.sol +0 -17
  617. package/contracts/types/ChainId.sol +0 -38
  618. package/contracts/types/Fee.sol +0 -51
  619. package/contracts/types/NftIdSet.sol +0 -60
  620. package/contracts/types/RoleId.sol +0 -36
@@ -1,16 +1,32 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
- import {IChainNft} from "./IChainNft.sol";
5
+ import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
6
6
 
7
- contract ChainNft is ERC721Enumerable, IChainNft {
8
- string public constant NAME = "Dezentralized Insurance Protocol Registry";
9
- string public constant SYMBOL = "DIPR";
7
+ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
8
+
9
+ contract ChainNft is ERC721Enumerable {
10
+
11
+ // constants
12
+ string public constant NAME = "Dezentralized Insurance Protocol NFT";
13
+ string public constant SYMBOL = "DIPNFT";
10
14
 
11
15
  uint256 public constant PROTOCOL_NFT_ID = 1101;
12
16
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
13
17
 
18
+ // TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
19
+ // custom errors
20
+ error CallerNotRegistry(address caller);
21
+ error RegistryAddressZero();
22
+ error NftUriEmpty();
23
+ error NftUriAlreadySet();
24
+
25
+ // contract state
26
+
27
+ // remember interceptors
28
+ mapping(uint256 tokenId => address interceptor) private _interceptor;
29
+
14
30
  // remember token uri
15
31
  mapping(uint256 tokenId => string uri) private _uri;
16
32
 
@@ -25,50 +41,89 @@ contract ChainNft is ERC721Enumerable, IChainNft {
25
41
  uint256 internal _totalMinted;
26
42
 
27
43
  modifier onlyRegistry() {
28
- require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
44
+ if (msg.sender != _registry) { revert CallerNotRegistry(msg.sender); }
29
45
  _;
30
46
  }
31
47
 
32
48
  constructor(address registry) ERC721(NAME, SYMBOL) {
33
- require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
49
+ if (registry == address(0)) { revert RegistryAddressZero(); }
34
50
 
35
51
  _registry = registry;
36
-
37
52
  _chainIdInt = block.chainid;
38
- _chainIdDigits = _countDigits(_chainIdInt);
53
+ _chainIdDigits = 0;
54
+
55
+ // count digis
56
+ uint256 num = _chainIdInt;
57
+ while (num != 0) {
58
+ _chainIdDigits++;
59
+ num /= 10;
60
+ }
61
+
39
62
  _chainIdMultiplier = 10 ** _chainIdDigits;
40
- _idNext = 3;
63
+
64
+ // the first object registered through normal registration starts with id 4
65
+ // 1 -> protocol
66
+ // 2 -> registry
67
+ // 3 -> staking
68
+ // >= 4 -> all other objects
69
+ _idNext = 4;
41
70
  }
42
71
 
72
+ /**
73
+ * @dev mints a token for a specified token id
74
+ * not part of the IRegistry interface only needed for
75
+ * initial registry setup (protocol and global registry objects)
76
+ */
77
+ function mint(address to, uint256 tokenId) external onlyRegistry {
78
+ _totalMinted++;
79
+ _safeMint(to, tokenId);
80
+ }
81
+
82
+
43
83
  /**
44
84
  * @dev mints the next token to register new objects
85
+ * non-zero transferInterceptors are recorded and called during nft token transfers.
86
+ * the contract receiving such a notification may decides to revert or record the transfer
45
87
  */
46
88
  function mint(
47
89
  address to,
90
+ address interceptor,
48
91
  string memory uri
49
- ) external override onlyRegistry returns (uint256 tokenId) {
92
+ ) public onlyRegistry returns (uint256 tokenId) {
50
93
  tokenId = _getNextTokenId();
51
94
 
95
+ if (interceptor != address(0)) {
96
+ _interceptor[tokenId] = interceptor;
97
+ }
98
+
52
99
  if (bytes(uri).length > 0) {
53
100
  _uri[tokenId] = uri;
54
101
  }
55
102
 
56
- _safeMint(to, tokenId);
57
103
  _totalMinted++;
104
+ _safeMint(to, tokenId);
105
+
106
+ if(interceptor != address(0)) {
107
+ ITransferInterceptor(interceptor).nftMint(to, tokenId);
108
+ }
58
109
  }
59
110
 
111
+
60
112
  /**
61
- * @dev mints a token for a specified token id
62
- * not part of the IRegistry interface only needed for
63
- * initial registry setup (protocol and global registry objects)
64
- */
65
- function mint(address to, uint256 tokenId) external onlyRegistry {
66
- _totalMinted++;
67
- _safeMint(to, tokenId);
113
+ * @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
114
+ * this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
115
+ */
116
+ function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
117
+ super.transferFrom(from, to, tokenId);
118
+
119
+ if (_interceptor[tokenId] != address(0)) {
120
+ ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
121
+ }
68
122
  }
69
123
 
70
- function burn(uint256 tokenId) external override onlyRegistry {
71
- _requireMinted(tokenId);
124
+
125
+ function burn(uint256 tokenId) external onlyRegistry {
126
+ _requireOwned(tokenId);
72
127
  _burn(tokenId);
73
128
  delete _uri[tokenId];
74
129
  }
@@ -76,29 +131,36 @@ contract ChainNft is ERC721Enumerable, IChainNft {
76
131
  function setURI(
77
132
  uint256 tokenId,
78
133
  string memory uri
79
- ) external override onlyRegistry {
80
- require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
134
+ ) external onlyRegistry {
135
+ if (bytes(uri).length == 0) { revert NftUriEmpty(); }
136
+ if (bytes(_uri[tokenId]).length > 0) { revert NftUriAlreadySet(); }
81
137
 
82
- _requireMinted(tokenId);
138
+ _requireOwned(tokenId);
83
139
  _uri[tokenId] = uri;
84
140
  }
85
141
 
86
- function exists(uint256 tokenId) external view override returns (bool) {
87
- return _exists(tokenId);
142
+ function exists(uint256 tokenId) external view returns (bool) {
143
+ return _ownerOf(tokenId) != address(0);
88
144
  }
89
145
 
90
146
  function tokenURI(
91
147
  uint256 tokenId
92
148
  ) public view override returns (string memory) {
93
- _requireMinted(tokenId);
149
+ // gif generally does not revert for view functions
150
+ // this is an exception to keep the openzeppelin nft semantics
151
+ _requireOwned(tokenId);
94
152
  return _uri[tokenId];
95
153
  }
96
154
 
97
- function getRegistryAddress() external view override returns (address) {
155
+ function getInterceptor(uint256 tokenId) external view returns (address) {
156
+ return _interceptor[tokenId];
157
+ }
158
+
159
+ function getRegistryAddress() external view returns (address) {
98
160
  return _registry;
99
161
  }
100
162
 
101
- function totalMinted() external view override returns (uint256) {
163
+ function totalMinted() external view returns (uint256) {
102
164
  return _totalMinted;
103
165
  }
104
166
 
@@ -144,16 +206,12 @@ contract ChainNft is ERC721Enumerable, IChainNft {
144
206
  _chainIdDigits;
145
207
  }
146
208
 
209
+ function getNextTokenId() external view returns (uint256) {
210
+ return calculateTokenId(_idNext);
211
+ }
212
+
147
213
  function _getNextTokenId() private returns (uint256 id) {
148
214
  id = calculateTokenId(_idNext);
149
215
  _idNext++;
150
216
  }
151
-
152
- function _countDigits(uint256 num) private pure returns (uint256 count) {
153
- count = 0;
154
- while (num != 0) {
155
- count++;
156
- num /= 10;
157
- }
158
- }
159
217
  }
@@ -1,57 +1,124 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
- import {NftId} from "../types/NftId.sol";
7
- import {ObjectType} from "../types/ObjectType.sol";
8
- import {VersionPart} from "../types/Version.sol";
9
- import {IChainNft} from "./IChainNft.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
10
11
 
11
12
  interface IRegistry is IERC165 {
13
+
14
+ event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
15
+ event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
16
+
17
+ // registerService()
18
+ error ErrorRegistryCallerNotReleaseManager();
19
+ error ErrorRegistryDomainZero(address service);
20
+ error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
21
+
22
+ // register()
23
+ error ErrorRegistryCallerNotRegistryService();
24
+
25
+ // registerWithCustomTypes()
26
+ error ErrorRegistryCoreTypeRegistration();
27
+
28
+ // _register()
29
+ error ErrorRegistryParentAddressZero();
30
+ error ErrorRegistryTypesCombinationInvalid(ObjectType objectType, ObjectType parentType);
31
+ error ErrorRegistryContractAlreadyRegistered(address objectAddress);
32
+
12
33
  struct ObjectInfo {
13
34
  NftId nftId;
14
35
  NftId parentNftId;
15
36
  ObjectType objectType;
37
+ bool isInterceptor;
16
38
  address objectAddress;
17
39
  address initialOwner;
18
40
  bytes data;
19
41
  }
20
42
 
21
- function register(address objectAddress) external returns (NftId nftId);
22
43
 
23
- function registerObjectForInstance(
24
- NftId parentNftid,
25
- ObjectType objectType,
26
- address initialOwner,
27
- bytes memory data
28
- ) external returns (NftId nftId);
44
+ struct ReleaseInfo {
45
+ VersionPart version;
46
+ bytes32 salt;
47
+ address[] addresses;
48
+ string[] names;
49
+ RoleId[][] serviceRoles;
50
+ string[][] serviceRoleNames;
51
+ RoleId[][] functionRoles;
52
+ string[][] functionRoleNames;
53
+ bytes4[][][] selectors;
54
+ ObjectType[] domains;
55
+ Timestamp activatedAt;
56
+ Timestamp disabledAt;
57
+ }
58
+
59
+ function registerService(
60
+ ObjectInfo memory serviceInfo,
61
+ VersionPart serviceVersion,
62
+ ObjectType serviceDomain
63
+ ) external returns(NftId nftId);
64
+
65
+ function register(ObjectInfo memory info) external returns (NftId nftId);
66
+
67
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
68
+
69
+ function getInitialVersion() external view returns (VersionPart);
29
70
 
30
- function getServiceAddress(string memory serviceName, VersionPart majorVersion) external view returns (address serviceAddress);
71
+ function getNextVersion() external view returns (VersionPart);
72
+
73
+ function getLatestVersion() external view returns (VersionPart);
74
+
75
+ function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
31
76
 
32
77
  function getObjectCount() external view returns (uint256);
33
78
 
79
+ function getNftId(address objectAddress) external view returns (NftId nftId);
80
+
81
+ function ownerOf(NftId nftId) external view returns (address);
82
+
83
+ function ownerOf(address contractAddress) external view returns (address);
84
+
85
+ function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
86
+
87
+ function getObjectInfo(address object) external view returns (ObjectInfo memory info);
88
+
89
+ function isRegistered(NftId nftId) external view returns (bool);
90
+
91
+ function isRegistered(address contractAddress) external view returns (bool);
92
+
93
+ function isRegisteredService(address contractAddress) external view returns (bool);
94
+
95
+ function isRegisteredComponent(address object) external view returns (bool);
96
+
97
+ function isActiveRelease(VersionPart version) external view returns (bool);
98
+
99
+ function getServiceAddress(
100
+ ObjectType serviceDomain,
101
+ VersionPart releaseVersion
102
+ ) external view returns (address serviceAddress);
103
+
104
+ function getProtocolNftId() external view returns (NftId protocolNftId);
105
+
34
106
  function getNftId() external view returns (NftId nftId);
35
107
 
36
- function getNftId(
37
- address objectAddress
38
- ) external view returns (NftId nftId);
108
+ function getOwner() external view returns (address);
39
109
 
40
- function getObjectInfo(
41
- NftId nftId
42
- ) external view returns (ObjectInfo memory info);
110
+ // TODO refactor the address getters below to contract getters
111
+ function getChainNftAddress() external view returns (address);
43
112
 
44
- function getName(
45
- NftId nftId
46
- ) external view returns (string memory name);
113
+ function getReleaseManagerAddress() external view returns (address);
47
114
 
48
- function getProtocolOwner() external view returns (address);
115
+ function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
49
116
 
50
- function getOwner(NftId nftId) external view returns (address ownerAddress);
117
+ function getStakingAddress() external view returns (address);
51
118
 
52
- function isRegistered(NftId nftId) external view returns (bool);
119
+ function getTokenRegistryAddress() external view returns (address);
53
120
 
54
- function isRegistered(address objectAddress) external view returns (bool);
121
+ function getRegistryAdminAddress() external view returns (address);
55
122
 
56
- function getChainNft() external view returns (IChainNft);
57
- }
123
+ function getAuthority() external view returns (address);
124
+ }
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ import {IService} from "../shared/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+
12
+ import {IRegisterable} from "../shared/IRegisterable.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
15
+
16
+
17
+ interface IRegistryService is
18
+ IService
19
+ {
20
+ error ErrorRegistryServiceNotRegistryOwner();
21
+
22
+ error ErrorRegistryServiceNotService(address notService);
23
+ error ErrorRegistryServiceNotInstance(address notInstance);
24
+ error ErrorRegistryServiceNotComponent(address notComponent);
25
+ error ErrorRegistryServiceNotProduct(address notProduct);
26
+ error ErrorRegistryServiceNotPool(address notPool);
27
+ error ErrorRegistryServiceNotDistribution(address notDistribution);
28
+
29
+ error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
30
+ error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
31
+ error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
32
+ error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
33
+ error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
34
+ error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
35
+
36
+ error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
37
+ error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
38
+ error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
39
+ error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
40
+
41
+ error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
42
+ error ErrorRegistryServiceInvalidAddress(address registerableAddress);
43
+
44
+ function registerStake(IRegistry.ObjectInfo memory info)
45
+ external returns(NftId nftId);
46
+
47
+ function registerInstance(IRegisterable instance, address owner)
48
+ external returns(IRegistry.ObjectInfo memory info);
49
+
50
+ function registerComponent(IComponent component, ObjectType objectType, address owner)
51
+ external returns(IRegistry.ObjectInfo memory info);
52
+
53
+ function registerProduct(IComponent product, address owner)
54
+ external returns(IRegistry.ObjectInfo memory info);
55
+
56
+ function registerPool(IComponent pool, address owner)
57
+ external returns(IRegistry.ObjectInfo memory info);
58
+
59
+ function registerDistribution(IComponent distribution, address owner)
60
+ external returns(IRegistry.ObjectInfo memory info);
61
+
62
+ function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
63
+
64
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
65
+
66
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
67
+
68
+ }
69
+
@@ -0,0 +1,7 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ interface ITransferInterceptor {
5
+ function nftMint(address to, uint256 tokenId) external;
6
+ function nftTransferFrom(address from, address to, uint256 tokenId) external;
7
+ }