@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd4ee14-428

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 (623) hide show
  1. package/README.md +30 -15
  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 +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -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 +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -164
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +284 -1317
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +453 -169
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -3062
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +630 -351
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +605 -355
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +359 -113
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -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 +1 -49
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +300 -357
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +236 -190
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +253 -373
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IProductService.sol/IProductService.json} +124 -166
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +388 -127
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +395 -219
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  120. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +576 -182
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +477 -318
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
  132. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  138. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +208 -209
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Service.sol/Service.json +201 -162
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  214. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  274. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  282. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  286. package/contracts/distribution/Distribution.sol +261 -0
  287. package/contracts/distribution/DistributionService.sol +297 -0
  288. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  289. package/contracts/distribution/IDistributionComponent.sol +66 -0
  290. package/contracts/distribution/IDistributionService.sol +81 -0
  291. package/contracts/instance/BundleManager.sol +24 -50
  292. package/contracts/instance/IInstance.sol +67 -36
  293. package/contracts/instance/IInstanceService.sol +82 -17
  294. package/contracts/instance/Instance.sol +181 -372
  295. package/contracts/instance/InstanceAdmin.sol +331 -0
  296. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  297. package/contracts/instance/InstanceReader.sol +160 -83
  298. package/contracts/instance/InstanceService.sol +372 -165
  299. package/contracts/instance/InstanceServiceManager.sol +12 -25
  300. package/contracts/instance/InstanceStore.sol +269 -0
  301. package/contracts/instance/base/BalanceStore.sol +123 -0
  302. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  303. package/contracts/instance/base/ObjectCounter.sol +21 -0
  304. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +17 -32
  305. package/contracts/instance/module/IAccess.sol +29 -21
  306. package/contracts/instance/module/IBundle.sol +8 -8
  307. package/contracts/instance/module/IComponents.sol +52 -0
  308. package/contracts/instance/module/IDistribution.sol +7 -4
  309. package/contracts/instance/module/IPolicy.sol +56 -17
  310. package/contracts/instance/module/IRisk.sol +1 -1
  311. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  312. package/contracts/oracle/IOracle.sol +20 -0
  313. package/contracts/oracle/IOracleComponent.sol +32 -0
  314. package/contracts/oracle/IOracleService.sol +65 -0
  315. package/contracts/oracle/Oracle.sol +145 -0
  316. package/contracts/oracle/OracleService.sol +278 -0
  317. package/contracts/oracle/OracleServiceManager.sol +42 -0
  318. package/contracts/pool/BundleService.sol +296 -0
  319. package/contracts/pool/BundleServiceManager.sol +42 -0
  320. package/contracts/pool/IBundleService.sol +106 -0
  321. package/contracts/pool/IPoolComponent.sol +112 -0
  322. package/contracts/pool/IPoolService.sol +150 -0
  323. package/contracts/pool/Pool.sol +299 -0
  324. package/contracts/pool/PoolService.sol +452 -0
  325. package/contracts/pool/PoolServiceManager.sol +42 -0
  326. package/contracts/product/ApplicationService.sol +254 -0
  327. package/contracts/product/ApplicationServiceManager.sol +38 -0
  328. package/contracts/product/ClaimService.sol +442 -0
  329. package/contracts/product/ClaimServiceManager.sol +38 -0
  330. package/contracts/product/IApplicationService.sol +62 -0
  331. package/contracts/product/IClaimService.sol +99 -0
  332. package/contracts/product/IPolicyService.sol +78 -0
  333. package/contracts/product/IPricingService.sol +39 -0
  334. package/contracts/product/IProductComponent.sol +42 -0
  335. package/contracts/product/IProductService.sol +33 -0
  336. package/contracts/product/PolicyService.sol +475 -0
  337. package/contracts/product/PolicyServiceManager.sol +42 -0
  338. package/contracts/product/PricingService.sol +300 -0
  339. package/contracts/product/PricingServiceManager.sol +42 -0
  340. package/contracts/product/Product.sol +377 -0
  341. package/contracts/product/ProductService.sol +124 -0
  342. package/contracts/product/ProductServiceManager.sol +42 -0
  343. package/contracts/registry/ChainNft.sol +15 -0
  344. package/contracts/registry/IRegistry.sol +73 -30
  345. package/contracts/registry/IRegistryService.sol +47 -28
  346. package/contracts/registry/IServiceAuthorization.sol +35 -0
  347. package/contracts/registry/ITransferInterceptor.sol +1 -0
  348. package/contracts/registry/Registry.sol +382 -248
  349. package/contracts/registry/RegistryAdmin.sol +333 -0
  350. package/contracts/registry/RegistryService.sol +114 -206
  351. package/contracts/registry/RegistryServiceManager.sol +24 -51
  352. package/contracts/registry/ReleaseManager.sol +527 -0
  353. package/contracts/registry/ServiceAuthorization.sol +86 -0
  354. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  355. package/contracts/registry/TokenRegistry.sol +261 -57
  356. package/contracts/shared/AccessAdmin.sol +759 -0
  357. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +281 -232
  358. package/contracts/shared/AccessManagerExtended.sol +481 -0
  359. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  360. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  361. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  362. package/contracts/shared/Component.sol +281 -0
  363. package/contracts/shared/ComponentService.sol +617 -0
  364. package/contracts/shared/ComponentServiceManager.sol +35 -0
  365. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  366. package/contracts/shared/ERC165.sol +15 -13
  367. package/contracts/shared/IAccessAdmin.sol +168 -0
  368. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  369. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  370. package/contracts/shared/IComponent.sol +70 -0
  371. package/contracts/shared/IComponentService.sol +102 -0
  372. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  373. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  374. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  375. package/contracts/shared/INftOwnable.sol +13 -12
  376. package/contracts/shared/IPolicyHolder.sol +45 -0
  377. package/contracts/shared/IRegisterable.sol +4 -6
  378. package/contracts/shared/IRegistryLinked.sol +11 -0
  379. package/contracts/shared/IService.sol +15 -5
  380. package/contracts/shared/IVersionable.sol +5 -48
  381. package/contracts/shared/InitializableCustom.sol +177 -0
  382. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  383. package/contracts/shared/KeyValueStore.sol +127 -0
  384. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  385. package/contracts/shared/NftIdSetManager.sol +65 -0
  386. package/contracts/shared/NftOwnable.sol +59 -86
  387. package/contracts/shared/PolicyHolder.sol +102 -0
  388. package/contracts/shared/ProxyManager.sol +131 -26
  389. package/contracts/shared/Registerable.sol +26 -41
  390. package/contracts/shared/RegistryLinked.sol +43 -0
  391. package/contracts/shared/Service.sol +57 -29
  392. package/contracts/shared/TokenHandler.sol +37 -6
  393. package/contracts/shared/Versionable.sol +4 -92
  394. package/contracts/staking/IStaking.sol +168 -0
  395. package/contracts/staking/IStakingService.sol +153 -0
  396. package/contracts/staking/StakeManagerLib.sol +231 -0
  397. package/contracts/staking/Staking.sol +513 -0
  398. package/contracts/staking/StakingManager.sol +54 -0
  399. package/contracts/staking/StakingReader.sol +187 -0
  400. package/contracts/staking/StakingService.sol +411 -0
  401. package/contracts/staking/StakingServiceManager.sol +44 -0
  402. package/contracts/staking/StakingStore.sol +613 -0
  403. package/contracts/staking/TargetManagerLib.sol +207 -0
  404. package/contracts/{types → type}/AddressSet.sol +1 -1
  405. package/contracts/type/Amount.sol +128 -0
  406. package/contracts/{types → type}/Blocknumber.sol +21 -3
  407. package/contracts/type/ClaimId.sol +75 -0
  408. package/contracts/{types → type}/DistributorType.sol +2 -2
  409. package/contracts/{types → type}/Fee.sol +33 -23
  410. package/contracts/{types → type}/NftId.sol +21 -15
  411. package/contracts/{types → type}/NftIdSet.sol +2 -2
  412. package/contracts/type/ObjectType.sol +241 -0
  413. package/contracts/type/PayoutId.sol +82 -0
  414. package/contracts/{types → type}/Referral.sol +5 -1
  415. package/contracts/type/RequestId.sol +75 -0
  416. package/contracts/{types → type}/RiskId.sol +1 -1
  417. package/contracts/type/RoleId.sol +201 -0
  418. package/contracts/type/Seconds.sol +81 -0
  419. package/contracts/type/Selector.sol +102 -0
  420. package/contracts/{types → type}/StateId.sol +34 -4
  421. package/contracts/type/String.sol +53 -0
  422. package/contracts/{types → type}/Timestamp.sol +23 -14
  423. package/contracts/{types → type}/UFixed.sol +1 -0
  424. package/contracts/{types → type}/Version.sol +2 -1
  425. package/package.json +5 -5
  426. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  427. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  428. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  429. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  430. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  432. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  434. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  435. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  436. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  437. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  438. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  439. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
  440. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  441. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  442. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  444. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  446. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  448. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  450. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  452. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  454. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  456. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  458. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  460. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  462. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  465. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  467. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  469. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  471. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  473. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  475. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  477. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  479. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  481. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  482. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
  483. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  484. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  485. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  486. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  487. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  489. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
  491. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  494. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  495. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  496. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  497. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  498. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  499. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  500. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  501. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  504. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  506. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  508. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  511. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
  515. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  517. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  519. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  521. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  523. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  526. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  527. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  528. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  529. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  530. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  532. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  533. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  534. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  535. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  536. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  537. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  538. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  539. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  540. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  541. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  543. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  545. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  548. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  549. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  551. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  552. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  554. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  556. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  558. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  561. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  564. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  568. package/contracts/components/BaseComponent.sol +0 -91
  569. package/contracts/components/Distribution.sol +0 -163
  570. package/contracts/components/IBaseComponent.sol +0 -25
  571. package/contracts/components/IDistributionComponent.sol +0 -44
  572. package/contracts/components/IPoolComponent.sol +0 -62
  573. package/contracts/components/IProductComponent.sol +0 -35
  574. package/contracts/components/Pool.sol +0 -247
  575. package/contracts/components/Product.sol +0 -289
  576. package/contracts/experiment/cloning/Cloner.sol +0 -47
  577. package/contracts/experiment/errors/Require.sol +0 -38
  578. package/contracts/experiment/errors/Revert.sol +0 -44
  579. package/contracts/experiment/inheritance/A.sol +0 -53
  580. package/contracts/experiment/inheritance/B.sol +0 -28
  581. package/contracts/experiment/inheritance/C.sol +0 -34
  582. package/contracts/experiment/inheritance/IA.sol +0 -13
  583. package/contracts/experiment/inheritance/IB.sol +0 -10
  584. package/contracts/experiment/inheritance/IC.sol +0 -12
  585. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  586. package/contracts/experiment/statemachine/ISM.sol +0 -25
  587. package/contracts/experiment/statemachine/SM.sol +0 -57
  588. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  589. package/contracts/experiment/types/TypeA.sol +0 -47
  590. package/contracts/experiment/types/TypeB.sol +0 -29
  591. package/contracts/instance/AccessManagedSimple.sol +0 -115
  592. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  593. package/contracts/instance/InstanceAccessManager.sol +0 -288
  594. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  595. package/contracts/instance/base/IInstanceBase.sol +0 -23
  596. package/contracts/instance/base/KeyValueStore.sol +0 -172
  597. package/contracts/instance/module/ISetup.sol +0 -46
  598. package/contracts/instance/module/ITreasury.sol +0 -23
  599. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  600. package/contracts/instance/service/DistributionService.sol +0 -88
  601. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  602. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  603. package/contracts/instance/service/IDistributionService.sol +0 -12
  604. package/contracts/instance/service/IPoolService.sol +0 -43
  605. package/contracts/instance/service/IProductService.sol +0 -110
  606. package/contracts/instance/service/PoolService.sol +0 -206
  607. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  608. package/contracts/instance/service/ProductService.sol +0 -561
  609. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  610. package/contracts/shared/ContractDeployerLib.sol +0 -72
  611. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  612. package/contracts/test/TestFee.sol +0 -25
  613. package/contracts/test/TestRegisterable.sol +0 -18
  614. package/contracts/test/TestRoleId.sol +0 -14
  615. package/contracts/test/TestService.sol +0 -24
  616. package/contracts/test/TestToken.sol +0 -26
  617. package/contracts/test/TestVersion.sol +0 -44
  618. package/contracts/test/TestVersionable.sol +0 -17
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/NumberId.sol +0 -52
  621. package/contracts/types/ObjectType.sol +0 -152
  622. package/contracts/types/RoleId.sol +0 -90
  623. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,117 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IInstance} from "../instance/IInstance.sol";
5
+ import {InstanceReader} from "../instance/InstanceReader.sol";
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
9
+ import {Service} from "../shared/Service.sol";
10
+
11
+
12
+ abstract contract ComponentVerifyingService is
13
+ Service
14
+ {
15
+
16
+ error ErrorComponentVerifyingServiceComponentTypeInvalid(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
17
+ error ErrorComponentVerifyingServiceComponentIsLocked(NftId componentNftId);
18
+
19
+ /// @dev based on the sender address returns the corresponding components nft id, info and instance.
20
+ /// the function reverts iff:
21
+ /// - there is no such component
22
+ /// - the component has the wrong object type
23
+ /// - the component is locked
24
+ function _getAndVerifyActiveComponent(
25
+ ObjectType expectedType // assume always of `component` type
26
+ )
27
+ internal
28
+ view
29
+ returns(
30
+ NftId componentNftId,
31
+ IRegistry.ObjectInfo memory componentInfo,
32
+ IInstance instance
33
+ )
34
+ {
35
+ componentNftId = getRegistry().getNftId(msg.sender);
36
+ (componentInfo, instance) = _getAndVerifyComponentInfo(
37
+ componentNftId,
38
+ expectedType,
39
+ true); // only active
40
+ }
41
+
42
+
43
+ /// @dev returns the component info and instance contract reference given a component nft id
44
+ /// the function reverts iff:
45
+ /// - there is no such component
46
+ /// - the component has the wrong object type
47
+ function _getAndVerifyComponentInfo(
48
+ NftId componentNftId,
49
+ ObjectType expectedType, // assume always of `component` type
50
+ bool onlyActive
51
+ )
52
+ internal
53
+ virtual
54
+ view
55
+ returns(
56
+ IRegistry.ObjectInfo memory info,
57
+ IInstance instance
58
+ )
59
+ {
60
+ IRegistry registry = getRegistry();
61
+ info = registry.getObjectInfo(componentNftId);
62
+
63
+ // if not COMPONENT require exact match
64
+ if(expectedType != COMPONENT()) {
65
+ // ensure component is of expected type
66
+ if(info.objectType != expectedType) {
67
+ revert ErrorComponentVerifyingServiceComponentTypeInvalid(
68
+ componentNftId,
69
+ expectedType,
70
+ info.objectType);
71
+ }
72
+ } else {
73
+ if(!(info.objectType == PRODUCT()
74
+ || info.objectType == POOL()
75
+ || info.objectType == DISTRIBUTION()
76
+ || info.objectType == ORACLE()
77
+ ))
78
+ {
79
+ revert ErrorComponentVerifyingServiceComponentTypeInvalid(
80
+ componentNftId,
81
+ expectedType,
82
+ info.objectType);
83
+ }
84
+ }
85
+
86
+ instance = _getInstance(info.parentNftId);
87
+
88
+ // ensure component is not locked
89
+ if (onlyActive) {
90
+ if (instance.getInstanceAccessManager().isTargetClosed(info.objectAddress)) {
91
+ revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
92
+ }
93
+ }
94
+ }
95
+
96
+
97
+ /// @dev returns the linked product nft id for the specified component
98
+ function _getProductNftId(
99
+ InstanceReader instanceReader,
100
+ NftId componentNftId
101
+ )
102
+ internal
103
+ virtual
104
+ view
105
+ returns (NftId productNftId)
106
+ {
107
+ return instanceReader.getComponentInfo(componentNftId).productNftId;
108
+ }
109
+
110
+
111
+ /// @dev returns an IInstance contract reference for the specified instance nft id
112
+ function _getInstance(NftId instanceNftId) internal view returns (IInstance) {
113
+ return IInstance(
114
+ getRegistry().getObjectInfo(
115
+ instanceNftId).objectAddress);
116
+ }
117
+ }
@@ -1,25 +1,27 @@
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
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
6
 
6
- contract ERC165 is IERC165 {
7
+ contract ERC165 is
8
+ Initializable,
9
+ IERC165
10
+ {
7
11
  mapping(bytes4 => bool) private _isSupported;
8
12
 
9
- constructor() {
10
- _initializeERC165();
11
- }
12
-
13
- function supportsInterface(bytes4 interfaceId) external view override returns (bool) {
14
- return _isSupported[interfaceId];
15
- }
16
-
17
- // @dev register support for ERC165 itself
18
- function _initializeERC165() internal {
13
+ // @dev initializes with support for ERC165
14
+ function initializeERC165() public onlyInitializing() {
19
15
  _isSupported[type(IERC165).interfaceId] = true;
20
16
  }
21
17
 
22
- function _registerInterface(bytes4 interfaceId) internal {
18
+ // @dev register support for provided interfaceId
19
+ // includes initialization for ERC165_ID if not yet done
20
+ function registerInterface(bytes4 interfaceId) public onlyInitializing() {
23
21
  _isSupported[interfaceId] = true;
24
22
  }
23
+
24
+ function supportsInterface(bytes4 interfaceId) external view override returns (bool) {
25
+ return _isSupported[interfaceId];
26
+ }
25
27
  }
@@ -0,0 +1,168 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {RoleId} from "../type/RoleId.sol";
7
+ import {Selector} from "../type/Selector.sol";
8
+ import {Str} from "../type/String.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+
11
+ interface IAccessAdmin is
12
+ IAccessManaged
13
+ {
14
+
15
+ // roles
16
+ event LogRoleCreated(RoleId roleId, RoleId roleAdminId, string name);
17
+ event LogRoleDisabled(RoleId roleId, bool disabled, Timestamp disabledAtOld);
18
+ event LogTargetCreated(address target, string name);
19
+ event LogFunctionCreated(address target, Selector selector, string name);
20
+
21
+ // only deployer modifier
22
+ error ErrorNotDeployer();
23
+
24
+ // only role admin modifier
25
+ error ErrorNotAdminOfRole(RoleId adminRoleId);
26
+
27
+ // only role owner modifier
28
+ error ErrorNotRoleOwner(RoleId roleId);
29
+
30
+ // initialize authority
31
+ error ErrorAuthorityAlreadySet();
32
+ error ErrorAdminRoleMissing();
33
+
34
+ // create role
35
+ error ErrorRoleAlreadyCreated(RoleId roleId, string name);
36
+ error ErrorRoleAdminNotExisting(RoleId adminRoleId);
37
+ error ErrorRoleNameEmpty(RoleId roleId);
38
+ error ErrorRoleNameAlreadyExists(RoleId roleId, string name, RoleId existingRoleId);
39
+
40
+ // grant/revoke/renounce role
41
+ error ErrorRoleUnknown(RoleId roleId);
42
+ error ErrorRoleIsLocked(RoleId roleId);
43
+ error ErrorRoleIsDisabled(RoleId roleId);
44
+ error ErrorRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
45
+ error ErrorRoleRemovalDisabled(RoleId roleId);
46
+
47
+ // create target
48
+ error ErrorTargetAlreadyCreated(address target, string name);
49
+ error ErrorTargetNameEmpty(address target);
50
+ error ErrorTargetNameAlreadyExists(address target, string name, address existingTarget);
51
+ error ErrorTargetNotAccessManaged(address target);
52
+ error ErrorTargetAuthorityMismatch(address expectedAuthority, address actualAuthority);
53
+
54
+ // lock target
55
+ error ErrorTagetNotLockable();
56
+
57
+ // authorize target functions
58
+ error ErrorAuthorizeForAdminRoleInvalid(address target);
59
+
60
+ // check target
61
+ error ErrorTargetUnknown(address target);
62
+
63
+ struct RoleInfo {
64
+ RoleId adminRoleId;
65
+ Str name;
66
+ uint256 maxMemberCount;
67
+ bool memberRemovalDisabled;
68
+ Timestamp disabledAt;
69
+ bool exists;
70
+ }
71
+
72
+ struct RoleNameInfo {
73
+ RoleId roleId;
74
+ bool exists;
75
+ }
76
+
77
+ struct TargetInfo {
78
+ Str name;
79
+ Timestamp createdAt;
80
+ }
81
+
82
+ struct Function {
83
+ Selector selector; // function selector
84
+ Str name; // function name
85
+ }
86
+
87
+ /// @dev Create a new named role using the specified parameters.
88
+ /// The adminRoleId refers to the required role to grant/revoke the newly created role.
89
+ /// permissioned: the caller must have the manager role (getManagerRole).
90
+ function createRole(
91
+ RoleId roleId,
92
+ RoleId adminRoleId,
93
+ string memory name,
94
+ uint256 maxMemberCount,
95
+ bool memberRemovalDisabled
96
+ )
97
+ external;
98
+
99
+ /// @dev Set the disabled status of the speicified role.
100
+ /// Role disabling only prevents the role from being granted to new accounts.
101
+ /// Existing role members may still execute functions that are authorized for that role.
102
+ /// Permissioned: the caller must have the manager role (getManagerRole).
103
+ function setRoleDisabled(RoleId roleId, bool disabled) external;
104
+
105
+ /// @dev Grant the specified account the provided role.
106
+ /// Permissioned: the caller must have the roles admin role.
107
+ function grantRole(address account, RoleId roleId) external;
108
+
109
+ /// @dev Revoke the provided role from the specified account.
110
+ /// Permissioned: the caller must have the roles admin role.
111
+ function revokeRole(address account, RoleId roleId) external;
112
+
113
+ /// @dev Removes the provided role from the caller
114
+ function renounceRole(RoleId roleId) external;
115
+
116
+ /// @dev Create a new named target.
117
+ /// Permissioned: the caller must have the manager role (getManagerRole).
118
+ function createTarget(address target, string memory name) external;
119
+
120
+ /// @dev Set the locked status of the speicified contract.
121
+ /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
122
+ /// Overwrite this function if a different use case specific behaviour is required.
123
+ /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
124
+ /// Permissioned: the caller must have the manager role (getManagerRole).
125
+ function setTargetLocked(address target, bool locked) external;
126
+
127
+ /// @dev Specifies which functions of the target can be accessed by the provided role.
128
+ /// Previously existing authorizations will be overwritten.
129
+ /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
130
+ /// Permissioned: the caller must have the manager role (getManagerRole).
131
+ function authorizeFunctions(address target, RoleId roleId, Function[] memory functions) external;
132
+
133
+ /// @dev Specifies for which functionss to remove any previous authorization
134
+ /// Permissioned: the caller must have the manager role (getManagerRole).
135
+ function unauthorizeFunctions(address target, Function[] memory functions) external;
136
+
137
+ //--- view functions ----------------------------------------------------//
138
+
139
+ function roles() external view returns (uint256 numberOfRoles);
140
+ function getRoleId(uint256 idx) external view returns (RoleId roleId);
141
+ function getAdminRole() external view returns (RoleId roleId);
142
+ function getManagerRole() external view returns (RoleId roleId);
143
+ function getPublicRole() external view returns (RoleId roleId);
144
+
145
+ function roleExists(RoleId roleId) external view returns (bool exists);
146
+ function isRoleDisabled(RoleId roleId) external view returns (bool roleIsActive);
147
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
148
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory);
149
+
150
+ function hasRole(address account, RoleId roleId) external view returns (bool);
151
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
152
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
153
+
154
+ function targetExists(address target) external view returns (bool exists);
155
+ function isTargetLocked(address target) external view returns (bool locked);
156
+ function targets() external view returns (uint256 numberOfTargets);
157
+ function getTargetAddress(uint256 idx) external view returns (address target);
158
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo);
159
+ function getTargetForName(Str name) external view returns (address target);
160
+
161
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
162
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (Function memory func, RoleId roleId);
163
+ function canCall(address caller, address target, Selector selector) external view returns (bool can);
164
+
165
+ function toFunction(bytes4 selector, string memory name) external pure returns (Function memory);
166
+ function isAccessManaged(address target) external view returns (bool);
167
+ function deployer() external view returns (address);
168
+ }
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // OpenZeppelin Contracts (last updated v5.0.0) (access/manager/IAccessManager.sol)
3
+
4
+ pragma solidity ^0.8.20;
5
+
6
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
7
+
8
+ import {Timestamp} from "../type/Timestamp.sol";
9
+
10
+ interface IAccessManagerExtended is IAccessManager {
11
+ // Structure that stores the details for a target contract.
12
+ struct TargetInfo {
13
+ address taddress;
14
+ //IAccess.Type ttype;
15
+ string name;
16
+ Timestamp createdAt;
17
+ //Timestamp updatedAt;
18
+ }
19
+
20
+ // Structure that stores the details of a role.
21
+ struct RoleInfo {
22
+ uint64 id;
23
+ //IAccess.Type rtype;
24
+ string name;
25
+ Timestamp createdAt;
26
+ }
27
+
28
+ event LogRoleCreation(uint64 roleId, string name);// IAccess.Type rtype);
29
+ event LogTargetCreation(address target, string name);// IAccess.Type ttype);
30
+
31
+ error AccessManagerRoleIdNotExists(uint64 roleId);
32
+ error AccessManagerRoleIdAlreadyExists(uint64 roleId);
33
+ error AccessManagerRoleNameAlreadyExists(uint64 newRoleId, uint64 existingRoleId, string duplicateName);
34
+ error AccessManagerRoleIdZero();
35
+ error AccessManagerRoleNameEmpty(uint64 roleId);
36
+ error AccessManagerRoleIdTooBig(uint64 roleId);
37
+
38
+ error AccessManagerTargetAlreadyExists(address target);
39
+ error AccessManagerTargetNotExists(address target);
40
+ error AccessManagerTargetNameAlreadyExists(address newTarget, address existingTarget, string duplicateName);
41
+ error AccessManagerTargetAddressZero();
42
+ error AccessManagerTargetNameEmpty(address target);
43
+ error AccessManagerTargetAuthorityInvalid(address target, address targetAuthority);
44
+
45
+ function getRoleMembers(uint64 roleId) external view returns (uint256 numberOfMembers);
46
+
47
+ function getRoleMember(uint64 roleId, uint256 idx) external view returns (address member);
48
+
49
+ function getRoleId(uint256 idx) external view returns (uint64 roleId);
50
+
51
+ // TODO returns ADMIN_ROLE id for non existent name
52
+ function getRoleId(string memory name) external view returns (uint64 roleId);
53
+
54
+ function getRoles() external view returns (uint256 numberOfRoles);
55
+
56
+ function isRoleExists(uint64 roleId) external view returns (bool exists);
57
+
58
+ function getRoleInfo(uint64 roleId) external view returns (RoleInfo memory);
59
+
60
+ function isRoleNameExists(string memory name) external view returns (bool);
61
+
62
+ function isTargetExists(address target) external view returns (bool);
63
+
64
+ function isTargetNameExists(string memory name) external view returns (bool);
65
+
66
+ function getTargetAddress(string memory name) external view returns(address targetAddress);
67
+
68
+ function getTargetInfo(address target) external view returns (TargetInfo memory);
69
+
70
+
71
+ function createRole(uint64 roleId, string memory roleName/*, IAccess.Type rtype*/) external;
72
+
73
+ function createTarget(address target, string memory name/*, IAccess.Type.Custom*/) external;
74
+ }
@@ -0,0 +1,18 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity ^0.8.20;
4
+
5
+ import {IAccessManagerExtended} from "./IAccessManagerExtended.sol";
6
+
7
+ import {Timestamp} from "../type/Timestamp.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+ import {Seconds} from "../type/Seconds.sol";
10
+
11
+ interface IAccessManagerExtendedWithDisable is IAccessManagerExtended {
12
+
13
+ error AccessManagerDisabled();
14
+
15
+ function disable(Seconds delay) external;
16
+ function enable() external;
17
+ function getVersion() external view returns (VersionPart version);
18
+ }
@@ -0,0 +1,70 @@
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
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {IComponents} from "../instance/module/IComponents.sol";
9
+ import {IRegisterable} from "../shared/IRegisterable.sol";
10
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
+ import {TokenHandler} from "../shared/TokenHandler.sol";
12
+
13
+ /// @dev component base class
14
+ /// component examples are staking, product, distribution, pool and oracle
15
+ interface IComponent is
16
+ IAccessManaged,
17
+ IRegisterable,
18
+ ITransferInterceptor
19
+ {
20
+ error ErrorComponentNotChainNft(address caller);
21
+
22
+ error ErrorComponentTokenAddressZero();
23
+ error ErrorComponentNameLengthZero();
24
+ error ErrorComponentWalletAddressZero();
25
+ error ErrorComponentWalletAddressIsSameAsCurrent();
26
+ error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
27
+ error ErrorComponentWalletNotComponent();
28
+
29
+ event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
30
+ event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
31
+ event LogComponentTokenHandlerApproved(address token, Amount limit);
32
+
33
+ /// @dev approves token hanlder to spend up to the specified amount of tokens
34
+ /// reverts if component wallet is not component itself
35
+ /// only component owner (nft holder) is authorizes to call this function
36
+ function approveTokenHandler(Amount spendingLimitAmount) external;
37
+
38
+ /// @dev sets the wallet address for the component
39
+ /// if the current wallet has tokens, these will be transferred
40
+ /// if the new wallet address is externally owned, an approval from the
41
+ /// owner of the external wallet for the component to move all tokens must exist
42
+ function setWallet(address walletAddress) external;
43
+
44
+ /// @dev returns the name of this component
45
+ /// to successfully register the component with an instance the name MUST be unique in the linked instance
46
+ function getName() external view returns (string memory name);
47
+
48
+ /// @dev defines which ERC20 token is used by this component
49
+ function getToken() external view returns (IERC20Metadata token);
50
+
51
+ /// @dev returns token handler for this component
52
+ function getTokenHandler() external view returns (TokenHandler tokenHandler);
53
+
54
+ /// @dev defines the wallet address used to hold the ERC20 tokens related to this component
55
+ /// the default address is the component token address
56
+ function getWallet() external view returns (address walletAddress);
57
+
58
+ /// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
59
+ function isNftInterceptor() external view returns(bool isInterceptor);
60
+
61
+ /// @dev returns true iff this component is registered with the registry
62
+ function isRegistered() external view returns (bool);
63
+
64
+ /// @dev returns the component infos for this component
65
+ /// for a non registered component the function returns getInitialComponentInfo()
66
+ function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
67
+
68
+ /// @dev returns the iniital component infos for this component
69
+ function getInitialComponentInfo() external view returns (IComponents.ComponentInfo memory info);
70
+ }
@@ -0,0 +1,102 @@
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
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {Fee} from "../type/Fee.sol";
9
+ import {IComponents} from "../instance/module/IComponents.sol";
10
+ import {IInstance} from "../instance/IInstance.sol";
11
+ import {IInstanceService} from "../instance/IInstanceService.sol";
12
+ import {InstanceStore} from "../instance/InstanceStore.sol";
13
+ import {IProductService} from "../product/IProductService.sol";
14
+ import {IRegisterable} from "../shared/IRegisterable.sol";
15
+ import {IService} from "../shared/IService.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectType} from "../type/ObjectType.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
20
+
21
+ /// @dev component base class
22
+ /// component examples are staking, product, distribution, pool and oracle
23
+ interface IComponentService is
24
+ IService
25
+ {
26
+ error ErrorComponentServiceNewWalletAddressZero();
27
+ error ErrorComponentServiceWalletAddressZero();
28
+ error ErrorComponentServiceWalletAddressIsSameAsCurrent();
29
+
30
+ event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
31
+ event LogComponentServiceProductFeesUpdated(NftId productNftId);
32
+ event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
33
+ event LogComponentServicePoolFeesUpdated(NftId poolNftId);
34
+ event LogComponentServiceUpdateFee(
35
+ NftId nftId,
36
+ string feeName,
37
+ UFixed previousFractionalFee,
38
+ uint256 previousFixedFee,
39
+ UFixed newFractionalFee,
40
+ uint256 newFixedFee
41
+ );
42
+
43
+ //-------- component ----------------------------------------------------//
44
+
45
+ /// @dev sets the components associated wallet address
46
+ function setWallet(address newWallet) external;
47
+
48
+ /// @dev locks the component associated with the caller
49
+ function lock() external;
50
+
51
+ /// @dev unlocks the component associated with the caller
52
+ function unlock() external;
53
+
54
+ //-------- product ------------------------------------------------------//
55
+
56
+ /// @dev registers the sending component as a product component
57
+ function registerProduct() external;
58
+
59
+ function setProductFees(
60
+ Fee memory productFee, // product fee on net premium
61
+ Fee memory processingFee // product fee on payout amounts
62
+ ) external;
63
+
64
+ function increaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
65
+ function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
66
+
67
+ //-------- distribution -------------------------------------------------//
68
+
69
+ /// @dev registers the sending component as a distribution component
70
+ function registerDistribution() external;
71
+
72
+ function setDistributionFees(
73
+ Fee memory distributionFee, // distribution fee for sales that do not include commissions
74
+ Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
75
+ ) external;
76
+
77
+ function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
78
+ function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
79
+
80
+ //-------- oracle -------------------------------------------------------//
81
+
82
+ /// @dev registers the sending component as an oracle component
83
+ function registerOracle() external;
84
+
85
+ //-------- pool ---------------------------------------------------------//
86
+
87
+ /// @dev registers the sending component as a pool component
88
+ function registerPool() external;
89
+
90
+ function setPoolFees(
91
+ Fee memory poolFee, // pool fee on net premium
92
+ Fee memory stakingFee, // pool fee on staked capital from investor
93
+ Fee memory performanceFee // pool fee on profits from capital investors
94
+ ) external;
95
+
96
+ function increasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
97
+ function decreasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
98
+
99
+ //-------- bundle -------------------------------------------------------//
100
+ function increaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
101
+ function decreaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
102
+ }
@@ -0,0 +1,46 @@
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
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+
7
+ import {IComponent} from "../shared/IComponent.sol";
8
+ import {IComponents} from "../instance/module/IComponents.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {IInstanceService} from "../instance/IInstanceService.sol";
11
+ import {IProductService} from "../product/IProductService.sol";
12
+ import {IRegisterable} from "../shared/IRegisterable.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {ObjectType} from "../type/ObjectType.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+
17
+ /// @dev component base class
18
+ /// component examples are product, distribution, pool and oracle
19
+ interface IInstanceLinkedComponent is
20
+ IComponent
21
+ {
22
+ error ErrorComponentNotProductService(address caller);
23
+ error ErrorComponentNotInstance(NftId instanceNftId);
24
+ error ErrorComponentProductNftAlreadySet();
25
+
26
+ /// @dev registers this component with the registry and instance.
27
+ /// a component may only be linked once
28
+ /// only initial component owner (nft holder) is authorizes to call this function
29
+ function register() external;
30
+
31
+ /// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
32
+ /// only component owner (nft holder) is authorizes to call this function
33
+ function lock() external;
34
+
35
+ /// @dev unlocks component to (re-)enable functions that may change state related to this component
36
+ /// only component owner (nft holder) is authorizes to call this function
37
+ function unlock() external;
38
+
39
+ /// @dev defines the instance to which this component is linked to
40
+ function getInstance() external view returns (IInstance instance);
41
+
42
+ /// @dev defines the product to which this component is linked to
43
+ /// this is only relevant for pool and distribution components
44
+ function getProductNftId() external view returns (NftId productNftId);
45
+
46
+ }