@etherisc/gif-next 0.0.2-f99f1d2-109 → 0.0.2-fa85e58-736

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 +366 -19
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1234 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +293 -1120
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -1266
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1725 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3571 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IRisk.sol/IRisk.json} +2 -2
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1521 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1534 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +842 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +927 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +997 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1307 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1706 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  138. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  139. package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  150. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  152. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +748 -26
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +1068 -66
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/ILifecycle.sol/ILifecycle.json} +37 -51
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  197. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/Lifecycle.sol/Lifecycle.json} +19 -68
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  302. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  308. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  310. package/contracts/authorization/AccessAdmin.sol +591 -0
  311. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  312. package/contracts/authorization/Authorization.sol +218 -0
  313. package/contracts/authorization/IAccess.sol +48 -0
  314. package/contracts/authorization/IAccessAdmin.sol +136 -0
  315. package/contracts/authorization/IAuthorization.sol +54 -0
  316. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  317. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  318. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  319. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  320. package/contracts/distribution/BasicDistribution.sol +138 -0
  321. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  322. package/contracts/distribution/Distribution.sol +295 -0
  323. package/contracts/distribution/DistributionService.sol +337 -0
  324. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  325. package/contracts/distribution/IDistributionComponent.sol +52 -0
  326. package/contracts/distribution/IDistributionService.sol +97 -0
  327. package/contracts/instance/BundleSet.sol +126 -0
  328. package/contracts/instance/IInstance.sol +83 -22
  329. package/contracts/instance/IInstanceService.sol +92 -0
  330. package/contracts/instance/Instance.sol +235 -53
  331. package/contracts/instance/InstanceAdmin.sol +266 -0
  332. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  333. package/contracts/instance/InstanceReader.sol +405 -0
  334. package/contracts/instance/InstanceService.sol +443 -0
  335. package/contracts/instance/InstanceServiceManager.sol +40 -0
  336. package/contracts/instance/InstanceStore.sol +277 -0
  337. package/contracts/instance/base/BalanceStore.sol +123 -0
  338. package/contracts/instance/base/Cloneable.sol +28 -0
  339. package/contracts/instance/base/ObjectCounter.sol +21 -0
  340. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  341. package/contracts/instance/base/ObjectSet.sol +79 -0
  342. package/contracts/instance/module/IAccess.sol +46 -0
  343. package/contracts/instance/module/IBundle.sol +20 -0
  344. package/contracts/instance/module/IComponents.sol +50 -0
  345. package/contracts/instance/module/IDistribution.sol +41 -0
  346. package/contracts/instance/module/IPolicy.sol +84 -0
  347. package/contracts/instance/module/IRisk.sol +11 -0
  348. package/contracts/mock/Dip.sol +26 -0
  349. package/contracts/oracle/BasicOracle.sol +48 -0
  350. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  351. package/contracts/oracle/IOracle.sol +36 -0
  352. package/contracts/oracle/IOracleComponent.sol +33 -0
  353. package/contracts/oracle/IOracleService.sol +65 -0
  354. package/contracts/oracle/Oracle.sol +166 -0
  355. package/contracts/oracle/OracleService.sol +278 -0
  356. package/contracts/oracle/OracleServiceManager.sol +39 -0
  357. package/contracts/pool/BasicPool.sol +166 -0
  358. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  359. package/contracts/pool/BundleService.sol +438 -0
  360. package/contracts/pool/BundleServiceManager.sol +39 -0
  361. package/contracts/pool/IBundleService.sol +133 -0
  362. package/contracts/pool/IPoolComponent.sol +58 -0
  363. package/contracts/pool/IPoolService.sol +158 -0
  364. package/contracts/pool/Pool.sol +331 -0
  365. package/contracts/pool/PoolService.sol +562 -0
  366. package/contracts/pool/PoolServiceManager.sol +39 -0
  367. package/contracts/product/ApplicationService.sol +230 -0
  368. package/contracts/product/ApplicationServiceManager.sol +38 -0
  369. package/contracts/product/BasicProduct.sol +82 -0
  370. package/contracts/product/BasicProductAuthorization.sol +43 -0
  371. package/contracts/product/ClaimService.sol +417 -0
  372. package/contracts/product/ClaimServiceManager.sol +38 -0
  373. package/contracts/product/IApplicationService.sol +62 -0
  374. package/contracts/product/IClaimService.sol +99 -0
  375. package/contracts/product/IPolicyService.sol +78 -0
  376. package/contracts/product/IPricingService.sol +39 -0
  377. package/contracts/product/IProductComponent.sol +40 -0
  378. package/contracts/product/IProductService.sol +33 -0
  379. package/contracts/product/PolicyService.sol +476 -0
  380. package/contracts/product/PolicyServiceManager.sol +39 -0
  381. package/contracts/product/PricingService.sol +300 -0
  382. package/contracts/product/PricingServiceManager.sol +39 -0
  383. package/contracts/product/Product.sol +392 -0
  384. package/contracts/product/ProductService.sol +99 -0
  385. package/contracts/product/ProductServiceManager.sol +39 -0
  386. package/contracts/registry/ChainNft.sol +144 -62
  387. package/contracts/registry/IRegistry.sol +112 -45
  388. package/contracts/registry/IRegistryService.sol +69 -0
  389. package/contracts/registry/ITransferInterceptor.sol +7 -0
  390. package/contracts/registry/Registry.sol +521 -127
  391. package/contracts/registry/RegistryAdmin.sol +365 -0
  392. package/contracts/registry/RegistryService.sol +252 -0
  393. package/contracts/registry/RegistryServiceManager.sol +53 -0
  394. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  395. package/contracts/registry/ReleaseRegistry.sol +485 -0
  396. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  397. package/contracts/registry/TokenRegistry.sol +315 -0
  398. package/contracts/shared/Component.sol +280 -0
  399. package/contracts/shared/ComponentService.sol +651 -0
  400. package/contracts/shared/ComponentServiceManager.sol +35 -0
  401. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  402. package/contracts/shared/IComponent.sol +70 -0
  403. package/contracts/shared/IComponentService.sol +108 -0
  404. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  405. package/contracts/shared/IKeyValueStore.sol +54 -0
  406. package/contracts/shared/ILifecycle.sol +29 -0
  407. package/contracts/shared/INftOwnable.sol +23 -0
  408. package/contracts/shared/IPolicyHolder.sol +45 -0
  409. package/contracts/shared/IRegisterable.sol +15 -0
  410. package/contracts/shared/IRegistryLinked.sol +11 -0
  411. package/contracts/shared/IService.sol +25 -0
  412. package/contracts/shared/InitializableCustom.sol +177 -0
  413. package/contracts/shared/InitializableERC165.sol +27 -0
  414. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  415. package/contracts/shared/KeyValueStore.sol +131 -0
  416. package/contracts/shared/Lifecycle.sol +77 -0
  417. package/contracts/shared/NftIdSet.sol +65 -0
  418. package/contracts/shared/NftOwnable.sol +107 -0
  419. package/contracts/shared/PolicyHolder.sol +99 -0
  420. package/contracts/shared/Registerable.sol +75 -0
  421. package/contracts/shared/RegistryLinked.sol +43 -0
  422. package/contracts/shared/Service.sol +82 -0
  423. package/contracts/shared/TokenHandler.sol +58 -0
  424. package/contracts/staking/IStaking.sol +167 -0
  425. package/contracts/staking/IStakingService.sol +160 -0
  426. package/contracts/staking/StakeManagerLib.sol +231 -0
  427. package/contracts/staking/Staking.sol +516 -0
  428. package/contracts/staking/StakingLifecycle.sol +23 -0
  429. package/contracts/staking/StakingManager.sol +50 -0
  430. package/contracts/staking/StakingReader.sol +183 -0
  431. package/contracts/staking/StakingService.sol +411 -0
  432. package/contracts/staking/StakingServiceManager.sol +44 -0
  433. package/contracts/staking/StakingStore.sol +605 -0
  434. package/contracts/staking/TargetManagerLib.sol +207 -0
  435. package/contracts/type/AddressSet.sol +58 -0
  436. package/contracts/type/Amount.sol +135 -0
  437. package/contracts/{types → type}/Blocknumber.sol +21 -3
  438. package/contracts/type/ClaimId.sol +75 -0
  439. package/contracts/type/DistributorType.sol +55 -0
  440. package/contracts/type/Fee.sol +66 -0
  441. package/contracts/type/Key32.sol +50 -0
  442. package/contracts/type/NftId.sol +78 -0
  443. package/contracts/type/NftIdSet.sol +62 -0
  444. package/contracts/type/ObjectType.sol +271 -0
  445. package/contracts/type/PayoutId.sol +82 -0
  446. package/contracts/type/Referral.sol +90 -0
  447. package/contracts/type/RequestId.sol +75 -0
  448. package/contracts/type/RiskId.sol +43 -0
  449. package/contracts/type/RoleId.sol +174 -0
  450. package/contracts/type/Seconds.sol +93 -0
  451. package/contracts/type/Selector.sol +102 -0
  452. package/contracts/{types → type}/StateId.sol +50 -6
  453. package/contracts/type/String.sol +53 -0
  454. package/contracts/{types → type}/Timestamp.sol +41 -7
  455. package/contracts/type/UFixed.sol +351 -0
  456. package/contracts/type/Version.sol +110 -0
  457. package/contracts/upgradeability/IVersionable.sol +53 -0
  458. package/contracts/upgradeability/ProxyManager.sol +198 -0
  459. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  460. package/contracts/upgradeability/Versionable.sol +59 -0
  461. package/package.json +17 -7
  462. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  463. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  464. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  465. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  466. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  467. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  468. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  469. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  470. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  471. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  472. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  473. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  474. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  476. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  478. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  480. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  482. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  484. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  486. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  488. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  490. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  492. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  494. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  496. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  499. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  501. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  503. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  505. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  507. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  508. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  509. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  510. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  511. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  512. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  513. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  514. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  515. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  517. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  519. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  520. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  521. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  522. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  524. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  526. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  527. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  528. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  529. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  530. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  533. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  534. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  536. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  537. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  538. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  539. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  541. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  542. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  543. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  545. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  547. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  548. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  549. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  551. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  552. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  553. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  554. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  555. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  556. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  557. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  558. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  559. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  560. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  561. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  562. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  563. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  564. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  565. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  566. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  567. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  568. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  569. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  571. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  573. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  575. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  577. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  579. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  581. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  583. package/contracts/components/Component.sol +0 -77
  584. package/contracts/components/IPool.sol +0 -15
  585. package/contracts/components/IProduct.sol +0 -16
  586. package/contracts/components/Pool.sol +0 -52
  587. package/contracts/components/Product.sol +0 -89
  588. package/contracts/experiment/errors/Require.sol +0 -38
  589. package/contracts/experiment/errors/Revert.sol +0 -44
  590. package/contracts/experiment/inheritance/A.sol +0 -53
  591. package/contracts/experiment/inheritance/B.sol +0 -28
  592. package/contracts/experiment/inheritance/C.sol +0 -34
  593. package/contracts/experiment/inheritance/IA.sol +0 -13
  594. package/contracts/experiment/inheritance/IB.sol +0 -10
  595. package/contracts/experiment/inheritance/IC.sol +0 -12
  596. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  597. package/contracts/experiment/statemachine/ISM.sol +0 -25
  598. package/contracts/experiment/statemachine/README.md +0 -112
  599. package/contracts/experiment/statemachine/SM.sol +0 -57
  600. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  601. package/contracts/experiment/types/TypeA.sol +0 -47
  602. package/contracts/experiment/types/TypeB.sol +0 -29
  603. package/contracts/instance/access/Access.sol +0 -165
  604. package/contracts/instance/access/IAccess.sol +0 -63
  605. package/contracts/instance/component/ComponentModule.sol +0 -274
  606. package/contracts/instance/component/IComponent.sol +0 -74
  607. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  608. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  609. package/contracts/instance/policy/IPolicy.sol +0 -50
  610. package/contracts/instance/policy/PolicyModule.sol +0 -114
  611. package/contracts/instance/pool/IPoolModule.sol +0 -23
  612. package/contracts/instance/pool/PoolModule.sol +0 -81
  613. package/contracts/instance/product/IProductService.sol +0 -36
  614. package/contracts/instance/product/ProductService.sol +0 -136
  615. package/contracts/instance/treasury/ITreasury.sol +0 -91
  616. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  617. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  618. package/contracts/registry/IChainNft.sol +0 -21
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/Fee.sol +0 -32
  621. package/contracts/types/NftId.sol +0 -51
  622. package/contracts/types/ObjectType.sol +0 -107
  623. package/contracts/types/UFixed.sol +0 -206
@@ -1,57 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {StateId, toStateId, zeroStateId} from "../../types/StateId.sol";
5
- import {ISM} from "./ISM.sol";
6
-
7
- contract SM is ISM {
8
- mapping(StateId currentState => mapping(StateId newState => bool isValid))
9
- private _isValidTransition;
10
-
11
- StateId internal _state;
12
-
13
- function setInitialState(StateId initialStateId) internal {
14
- if (initialStateId == zeroStateId()) {
15
- revert ErrorInitialStateUndefined();
16
- }
17
-
18
- _state = initialStateId;
19
- }
20
-
21
- function addTransition(
22
- StateId currentStateId,
23
- StateId nextStateId
24
- ) internal {
25
- if (currentStateId == zeroStateId()) {
26
- revert ErrorStartStateUndefined();
27
- }
28
-
29
- if (nextStateId == zeroStateId()) {
30
- revert ErrorNextStateUndefined();
31
- }
32
-
33
- _isValidTransition[currentStateId][nextStateId] = true;
34
- }
35
-
36
- function changeToState(StateId newStateId) external override {
37
- if (!_isValidTransition[_state][newStateId]) {
38
- revert ErrorStateChangeInvalid(_state, newStateId);
39
- }
40
-
41
- StateId stateOld = _state;
42
- _state = newStateId;
43
-
44
- emit LogStateChanged(stateOld, _state);
45
- }
46
-
47
- function isValidTransition(
48
- StateId currentStateId,
49
- StateId newStateId
50
- ) external view override returns (bool isValid) {
51
- return _isValidTransition[currentStateId][newStateId];
52
- }
53
-
54
- function getState() external view override returns (StateId state) {
55
- return _state;
56
- }
57
- }
@@ -1,31 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {StateId, toStateId} from "../../types/StateId.sol";
5
- import {SM} from "./SM.sol";
6
-
7
- contract SimpleStateMachine is SM {
8
- uint8 public constant STATE_ACTIVE = 10;
9
- uint8 public constant STATE_PAUSED = 20;
10
- uint8 public constant STATE_ARCHIVED = 30;
11
-
12
- constructor() {
13
- addTransition(ACTIVE(), PAUSED());
14
- addTransition(PAUSED(), ACTIVE());
15
- addTransition(PAUSED(), ARCHIVED());
16
-
17
- setInitialState(ACTIVE());
18
- }
19
-
20
- function ACTIVE() public pure returns (StateId stateId) {
21
- return toStateId(STATE_ACTIVE);
22
- }
23
-
24
- function PAUSED() public pure returns (StateId stateId) {
25
- return toStateId(STATE_PAUSED);
26
- }
27
-
28
- function ARCHIVED() public pure returns (StateId stateId) {
29
- return toStateId(STATE_ARCHIVED);
30
- }
31
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /*
5
- # chisel session for user defined types
6
-
7
- import {TypeA, toTypeA} from "./contracts/experiment/types/TypeA.sol";
8
- TypeA a = toTypeA(1);
9
- TypeA b = toTypeA(2);
10
- uint(a.toInt())
11
- uint(b.toInt())
12
- a == b
13
- a != b
14
-
15
- import {TypeB, toTypeB} from "./contracts/experiment/types/TypeB.sol";
16
- TypeB x = toTypeB(33);
17
- uint(x.toInt())
18
- a == x; // -> error
19
- a.toInt() == x.toInt() // -> no error
20
- */
21
-
22
- // bytes5 allows for chain ids up to 13 digits
23
- type TypeA is uint248;
24
-
25
- // type bindings
26
- using {eqTypeA as ==, neTypeA as !=, TypeALib.toInt} for TypeA global;
27
-
28
- // general pure free functions
29
- function toTypeA(uint256 typeA) pure returns (TypeA) {
30
- return TypeA.wrap(uint248(typeA));
31
- }
32
-
33
- // pure free functions for operators
34
- function eqTypeA(TypeA a, TypeA b) pure returns (bool isSame) {
35
- return TypeA.unwrap(a) == TypeA.unwrap(b);
36
- }
37
-
38
- function neTypeA(TypeA a, TypeA b) pure returns (bool isDifferent) {
39
- return TypeA.unwrap(a) != TypeA.unwrap(b);
40
- }
41
-
42
- // library functions that operate on user defined type
43
- library TypeALib {
44
- function toInt(TypeA typeA) internal pure returns (uint256) {
45
- return uint256(TypeA.unwrap(typeA));
46
- }
47
- }
@@ -1,29 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- // bytes5 allows for chain ids up to 13 digits
5
- type TypeB is uint248;
6
-
7
- // type bindings
8
- using {eqTypeB as ==, addTypeB as +, TypeBLib.toInt} for TypeB global;
9
-
10
- // general pure free functions
11
- function toTypeB(uint256 x) pure returns (TypeB) {
12
- return TypeB.wrap(uint248(x));
13
- }
14
-
15
- // pure free functions for operators
16
- function eqTypeB(TypeB a, TypeB b) pure returns (bool isSame) {
17
- return TypeB.unwrap(a) == TypeB.unwrap(b);
18
- }
19
-
20
- function addTypeB(TypeB a, TypeB b) pure returns (TypeB sum) {
21
- return TypeB.wrap(TypeB.unwrap(a) + TypeB.unwrap(b));
22
- }
23
-
24
- // library functions that operate on user defined type
25
- library TypeBLib {
26
- function toInt(TypeB b) internal pure returns (uint256) {
27
- return uint256(TypeB.unwrap(b));
28
- }
29
- }
@@ -1,165 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- // role admin handling of oz doesn't fit nft ownability
5
- // import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
6
- import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
-
8
- import {IAccessModule} from "./IAccess.sol";
9
-
10
- abstract contract AccessModule is IAccessModule {
11
- string public constant PRODUCT_OWNER = "ProductOwner";
12
- string public constant ORACLE_OWNER = "OracleOwner";
13
- string public constant POOL_OWNER = "PoolOwner";
14
-
15
- using EnumerableSet for EnumerableSet.AddressSet;
16
-
17
- event LogAccessRoleGranted(bytes32 role, address member, bool isMember);
18
-
19
- mapping(bytes32 role => RoleInfo info) private _info;
20
- bytes32[] private _roles;
21
-
22
- bytes32 private immutable _productOwnerRole;
23
- bytes32 private immutable _oracleOwnerRole;
24
- bytes32 private immutable _poolOwnerRole;
25
-
26
- mapping(bytes32 role => mapping(address member => bool isMember))
27
- private _isRoleMember;
28
- mapping(bytes32 role => EnumerableSet.AddressSet) private _roleMembers;
29
-
30
- modifier onlyOwner() {
31
- require(msg.sender == this.getOwner(), "ERROR:ACM-001:NOT_OWNER");
32
- _;
33
- }
34
-
35
- constructor() {
36
- _productOwnerRole = _createRole(PRODUCT_OWNER);
37
- _oracleOwnerRole = _createRole(ORACLE_OWNER);
38
- _poolOwnerRole = _createRole(POOL_OWNER);
39
- }
40
-
41
- function PRODUCT_OWNER_ROLE() public view override returns (bytes32 role) {
42
- return _productOwnerRole;
43
- }
44
-
45
- function ORACLE_OWNER_ROLE() public view override returns (bytes32 role) {
46
- return _oracleOwnerRole;
47
- }
48
-
49
- function POOL_OWNER_ROLE() public view override returns (bytes32 role) {
50
- return _poolOwnerRole;
51
- }
52
-
53
- function createRole(
54
- string memory roleName
55
- ) external override onlyOwner returns (bytes32 role) {
56
- return _createRole(roleName);
57
- }
58
-
59
- function _createRole(
60
- string memory roleName
61
- ) internal returns (bytes32 role) {
62
- RoleInfo memory info = RoleInfo(0, roleName, true);
63
-
64
- role = _setRoleInfo(info);
65
- }
66
-
67
- // TODO move to module
68
- function disableRole(bytes32 role) external override onlyOwner {
69
- RoleInfo memory info = _info[role];
70
- require(info.id == role, "ERROR:AOS-001:ROLE_DOES_NOT_EXIST");
71
-
72
- info.isActive = false;
73
- _setRoleInfo(info);
74
- }
75
-
76
- // TODO move to module
77
- function enableRole(bytes32 role) external override onlyOwner {
78
- RoleInfo memory info = _info[role];
79
- require(info.id == role, "ERROR:AOS-002:ROLE_DOES_NOT_EXIST");
80
-
81
- info.isActive = true;
82
- _setRoleInfo(info);
83
- }
84
-
85
- function grantRole(
86
- bytes32 role,
87
- address member
88
- ) external override onlyOwner {
89
- require(_info[role].id == role, "ERROR:ACM-010:ROLE_NOT_EXISTING");
90
- require(_info[role].isActive, "ERROR:ACM-011:ROLE_NOT_ACTIVE");
91
-
92
- _isRoleMember[role][member] = true;
93
- _roleMembers[role].add(member);
94
-
95
- emit LogAccessRoleGranted(role, member, _isRoleMember[role][member]);
96
- }
97
-
98
- function revokeRole(
99
- bytes32 role,
100
- address member
101
- ) external override onlyOwner {
102
- require(_info[role].id == role, "ERROR:ACM-020:ROLE_NOT_EXISTING");
103
-
104
- _isRoleMember[role][member] = false;
105
- _roleMembers[role].remove(member);
106
- }
107
-
108
- function hasRole(
109
- bytes32 role,
110
- address member
111
- ) external view override returns (bool) {
112
- return _isRoleMember[role][member];
113
- }
114
-
115
- function getRoleInfo(
116
- bytes32 role
117
- ) external view override returns (RoleInfo memory info) {
118
- return _info[role];
119
- }
120
-
121
- function getRole(
122
- uint256 idx
123
- ) external view override returns (bytes32 role) {
124
- return _roles[idx];
125
- }
126
-
127
- function getRoleCount() external view override returns (uint256 roles) {
128
- return _roles.length;
129
- }
130
-
131
- function getRoleMemberCount(
132
- bytes32 role
133
- ) public view override returns (uint256 roleMembers) {
134
- return _roleMembers[role].length();
135
- }
136
-
137
- function getRoleMember(
138
- bytes32 role,
139
- uint256 idx
140
- ) public view override returns (address roleMembers) {
141
- return _roleMembers[role].at(idx);
142
- }
143
-
144
- function getRoleForName(
145
- string memory roleName
146
- ) public pure override returns (bytes32 role) {
147
- return keccak256(abi.encode(roleName));
148
- }
149
-
150
- function _setRoleInfo(
151
- RoleInfo memory info
152
- ) internal returns (bytes32 role) {
153
- role = info.id;
154
-
155
- if (role == bytes32(0)) {
156
- role = getRoleForName(info.name);
157
- // TODO check that this is a new role id
158
-
159
- info.id = role;
160
- _roles.push(role);
161
- }
162
-
163
- _info[role] = info;
164
- }
165
- }
@@ -1,63 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IOwnable, IRegistryLinked} from "../../registry/IRegistry.sol";
5
-
6
- interface IAccess {
7
- struct RoleInfo {
8
- bytes32 id;
9
- string name;
10
- bool isActive;
11
- }
12
- }
13
-
14
- interface IAccessCheckRole {
15
- function hasRole(bytes32 role, address member) external view returns (bool);
16
- }
17
-
18
- interface IAccessComponentTypeRoles {
19
- function PRODUCT_OWNER_ROLE() external view returns (bytes32 role);
20
-
21
- function ORACLE_OWNER_ROLE() external view returns (bytes32 role);
22
-
23
- function POOL_OWNER_ROLE() external view returns (bytes32 role);
24
- }
25
-
26
- interface IAccessModule is
27
- IOwnable,
28
- IRegistryLinked,
29
- IAccess,
30
- IAccessComponentTypeRoles,
31
- IAccessCheckRole
32
- {
33
- function createRole(string memory roleName) external returns (bytes32 role);
34
-
35
- function enableRole(bytes32 role) external;
36
-
37
- function disableRole(bytes32 role) external;
38
-
39
- function grantRole(bytes32 role, address member) external;
40
-
41
- function revokeRole(bytes32 role, address member) external;
42
-
43
- function getRole(uint256 idx) external view returns (bytes32 role);
44
-
45
- function getRoleInfo(
46
- bytes32 role
47
- ) external view returns (RoleInfo memory info);
48
-
49
- function getRoleForName(
50
- string memory roleName
51
- ) external pure returns (bytes32 role);
52
-
53
- function getRoleCount() external view returns (uint256 roles);
54
-
55
- function getRoleMemberCount(
56
- bytes32 role
57
- ) external view returns (uint256 roleMembers);
58
-
59
- function getRoleMember(
60
- bytes32 role,
61
- uint256 idx
62
- ) external view returns (address roleMembers);
63
- }
@@ -1,274 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {RegistryLinked} from "../../registry/Registry.sol";
7
- import {IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
8
- import {IAccessComponentTypeRoles, IAccessCheckRole} from "../access/IAccess.sol";
9
- import {IInstance} from "../IInstance.sol";
10
-
11
- import {LifecycleModule} from "../lifecycle/LifecycleModule.sol";
12
- import {ITreasuryModule} from "../treasury/ITreasury.sol";
13
- import {TreasuryModule} from "../treasury/TreasuryModule.sol";
14
- import {IComponent, IComponentContract, IComponentModule, IComponentOwnerService} from "./IComponent.sol";
15
- import {IProductComponent} from "../../components/IProduct.sol";
16
- import {IPoolComponent} from "../../components/IPool.sol";
17
- import {IPoolModule} from "../pool/IPoolModule.sol";
18
- import {ObjectType, PRODUCT, ORACLE, POOL} from "../../types/ObjectType.sol";
19
- import {StateId, ACTIVE, PAUSED} from "../../types/StateId.sol";
20
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
21
- import {Fee, zeroFee} from "../../types/Fee.sol";
22
-
23
- abstract contract ComponentModule is
24
- IRegistryLinked,
25
- IAccessComponentTypeRoles,
26
- IAccessCheckRole,
27
- IComponentModule
28
- {
29
- using NftIdLib for NftId;
30
-
31
- mapping(NftId nftId => ComponentInfo info) private _componentInfo;
32
- mapping(address cAddress => NftId nftId) private _nftIdByAddress;
33
- NftId[] private _nftIds;
34
-
35
- mapping(ObjectType cType => bytes32 role) private _componentOwnerRole;
36
-
37
- // TODO maybe move this to Instance contract as internal variable?
38
- LifecycleModule private _lifecycleModule;
39
- TreasuryModule private _treasuryModule;
40
- IPoolModule private _poolModule;
41
- IComponentOwnerService private _componentOwnerService;
42
-
43
- modifier onlyComponentOwnerService() {
44
- require(
45
- address(_componentOwnerService) == msg.sender,
46
- "ERROR:CMP-001:NOT_OWNER_SERVICE"
47
- );
48
- _;
49
- }
50
-
51
- constructor(address componentOwnerService) {
52
- address componentAddress = address(this);
53
- _lifecycleModule = LifecycleModule(componentAddress);
54
- _treasuryModule = TreasuryModule(componentAddress);
55
- _poolModule = IPoolModule(componentAddress);
56
- _componentOwnerService = ComponentOwnerService(componentOwnerService);
57
- }
58
-
59
- function registerComponent(
60
- IComponentContract component
61
- ) external override onlyComponentOwnerService returns (NftId nftId) {
62
- ObjectType objectType = component.getType();
63
- bytes32 typeRole = getRoleForType(objectType);
64
- require(
65
- this.hasRole(typeRole, component.getInitialOwner()),
66
- "ERROR:CMP-004:TYPE_ROLE_MISSING"
67
- );
68
-
69
- nftId = this.getRegistry().register(address(component));
70
- IERC20Metadata token = component.getToken();
71
- address wallet = component.getWallet();
72
-
73
- // create component info
74
- _componentInfo[nftId] = ComponentInfo(
75
- nftId,
76
- _lifecycleModule.getInitialState(objectType),
77
- token
78
- );
79
-
80
- // component type specific registration actions
81
- if (component.getType() == PRODUCT()) {
82
- IProductComponent product = IProductComponent(address(component));
83
- NftId poolNftId = product.getPoolNftId();
84
- require(poolNftId.gtz(), "ERROR:CMP-005:POOL_UNKNOWN");
85
- // validate pool token and product token are same
86
-
87
- // register with tresury
88
- // implement and add validation
89
- NftId distributorNftId = zeroNftId();
90
- _treasuryModule.registerProduct(
91
- nftId,
92
- distributorNftId,
93
- poolNftId,
94
- token,
95
- wallet,
96
- product.getPolicyFee(),
97
- product.getProcessingFee()
98
- );
99
- } else if (component.getType() == POOL()) {
100
- IPoolComponent pool = IPoolComponent(address(component));
101
-
102
- // register with pool
103
- _poolModule.registerPool(nftId);
104
-
105
- // register with tresury
106
- _treasuryModule.registerPool(
107
- nftId,
108
- wallet,
109
- pool.getStakingFee(),
110
- pool.getPerformanceFee()
111
- );
112
- }
113
- // TODO add distribution
114
-
115
- _nftIdByAddress[address(component)] = nftId;
116
- _nftIds.push(nftId);
117
-
118
- // TODO add loggingx
119
- }
120
-
121
- function getComponentOwnerService()
122
- external
123
- view
124
- override
125
- returns (IComponentOwnerService)
126
- {
127
- return _componentOwnerService;
128
- }
129
-
130
- function setComponentInfo(
131
- ComponentInfo memory info
132
- ) external onlyComponentOwnerService returns (NftId nftId) {
133
- nftId = info.nftId;
134
- require(
135
- nftId.gtz() && _componentInfo[nftId].nftId.eq(nftId),
136
- "ERROR:CMP-006:COMPONENT_UNKNOWN"
137
- );
138
-
139
- // TODO decide if state changes should have explicit functions and not
140
- // just a generic setXYZInfo and implicit state transitions
141
- // when in doubt go for the explicit approach ...
142
- ObjectType objectType = this.getRegistry().getInfo(nftId).objectType;
143
- _lifecycleModule.checkAndLogTransition(
144
- nftId,
145
- objectType,
146
- _componentInfo[nftId].state,
147
- info.state
148
- );
149
- _componentInfo[nftId] = info;
150
- }
151
-
152
- function getComponentInfo(
153
- NftId nftId
154
- ) external view override returns (ComponentInfo memory) {
155
- return _componentInfo[nftId];
156
- }
157
-
158
- function getComponentId(
159
- address componentAddress
160
- ) external view returns (NftId componentNftId) {
161
- return _nftIdByAddress[componentAddress];
162
- }
163
-
164
- function getComponentId(
165
- uint256 idx
166
- ) external view override returns (NftId componentNftId) {
167
- return _nftIds[idx];
168
- }
169
-
170
- function components()
171
- external
172
- view
173
- override
174
- returns (uint256 numberOfCompnents)
175
- {
176
- return _nftIds.length;
177
- }
178
-
179
- function getRoleForType(
180
- ObjectType cType
181
- ) public view returns (bytes32 role) {
182
- if (cType == PRODUCT()) {
183
- return this.PRODUCT_OWNER_ROLE();
184
- }
185
- if (cType == POOL()) {
186
- return this.POOL_OWNER_ROLE();
187
- }
188
- if (cType == ORACLE()) {
189
- return this.ORACLE_OWNER_ROLE();
190
- }
191
- }
192
- }
193
-
194
- // this is actually the component owner service
195
- contract ComponentOwnerService is
196
- RegistryLinked,
197
- IComponent,
198
- IComponentOwnerService
199
- {
200
- using NftIdLib for NftId;
201
-
202
- modifier onlyComponentOwner(IComponentContract component) {
203
- NftId nftId = _registry.getNftId(address(component));
204
- require(nftId.gtz(), "ERROR:COS-001:COMPONENT_UNKNOWN");
205
- require(
206
- msg.sender == _registry.getOwner(nftId),
207
- "ERROR:COS-002:NOT_OWNER"
208
- );
209
- _;
210
- }
211
-
212
- constructor(
213
- address registry
214
- ) RegistryLinked(registry) // solhint-disable-next-line no-empty-blocks
215
- {
216
-
217
- }
218
-
219
- function register(
220
- IComponentContract component
221
- ) external override returns (NftId nftId) {
222
- require(
223
- msg.sender == component.getInitialOwner(),
224
- "ERROR:COS-003:NOT_OWNER"
225
- );
226
-
227
- IInstance instance = component.getInstance();
228
- nftId = instance.registerComponent(component);
229
- }
230
-
231
- function lock(
232
- IComponentContract component
233
- ) external override onlyComponentOwner(component) {
234
- IInstance instance = component.getInstance();
235
- ComponentInfo memory info = instance.getComponentInfo(
236
- component.getNftId()
237
- );
238
- require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
239
-
240
- info.state = PAUSED();
241
- // setComponentInfo checks for valid state changes
242
- instance.setComponentInfo(info);
243
- }
244
-
245
- function unlock(
246
- IComponentContract component
247
- ) external override onlyComponentOwner(component) {
248
- IInstance instance = component.getInstance();
249
- ComponentInfo memory info = instance.getComponentInfo(
250
- component.getNftId()
251
- );
252
- require(info.nftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
253
-
254
- info.state = ACTIVE();
255
- // setComponentInfo checks for valid state changes
256
- instance.setComponentInfo(info);
257
- }
258
-
259
- function setProductFees(
260
- IComponentContract product,
261
- Fee memory policyFee,
262
- Fee memory processingFee
263
- ) external override onlyComponentOwner(product) {
264
- require(product.getType() == PRODUCT(), "ERROR_NOT_PRODUCT");
265
-
266
- address instanceAddress = address(product.getInstance());
267
- ITreasuryModule treasuryModule = ITreasuryModule(instanceAddress);
268
- treasuryModule.setProductFees(
269
- product.getNftId(),
270
- policyFee,
271
- processingFee
272
- );
273
- }
274
- }