@etherisc/gif-next 0.0.2-6f943ea-736 → 0.0.2-708facd-459

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 (661) hide show
  1. package/README.md +40 -16
  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/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  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 +1505 -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 +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +303 -252
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -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 +237 -1565
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +368 -197
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +442 -2597
  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 +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +683 -329
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +505 -384
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +369 -108
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  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 +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +320 -261
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +273 -285
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +379 -334
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/BasicProduct.sol/BasicProduct.json} +765 -214
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +211 -230
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +251 -297
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -215
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +344 -327
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +126 -167
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +159 -21
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +360 -218
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +396 -36
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -254
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -95
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +178 -242
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  185. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IComponent.sol/IComponent.json} +192 -217
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +255 -185
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  196. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  197. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  198. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  201. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  202. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
  204. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  215. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  220. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  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 +1 -1
  227. package/artifacts/contracts/shared/Service.sol/Service.json +188 -157
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  230. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  231. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  232. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  234. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  236. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  240. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  241. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  242. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  244. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  246. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  248. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  250. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  252. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  254. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  256. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  257. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  258. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  260. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  262. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  264. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  266. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  268. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  270. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  274. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  276. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  278. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  280. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  282. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  284. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  286. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  292. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  294. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  296. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  298. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  300. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  302. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  304. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +149 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  318. package/contracts/distribution/Distribution.sol +283 -0
  319. package/contracts/distribution/DistributionService.sol +302 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  321. package/contracts/distribution/IDistributionComponent.sol +48 -0
  322. package/contracts/distribution/IDistributionService.sol +85 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  324. package/contracts/instance/IInstance.sol +61 -47
  325. package/contracts/instance/IInstanceService.sol +71 -20
  326. package/contracts/instance/Instance.sol +178 -193
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  329. package/contracts/instance/InstanceReader.sol +173 -61
  330. package/contracts/instance/InstanceService.sol +326 -318
  331. package/contracts/instance/InstanceServiceManager.sol +12 -22
  332. package/contracts/instance/InstanceStore.sol +276 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  338. package/contracts/instance/module/IAccess.sol +19 -21
  339. package/contracts/instance/module/IBundle.sol +8 -8
  340. package/contracts/instance/module/IComponents.sol +52 -0
  341. package/contracts/instance/module/IDistribution.sol +7 -4
  342. package/contracts/instance/module/IPolicy.sol +56 -17
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +32 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +157 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +42 -0
  353. package/contracts/pool/BasicPool.sol +164 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  355. package/contracts/pool/BundleService.sol +296 -0
  356. package/contracts/pool/BundleServiceManager.sol +42 -0
  357. package/contracts/pool/IBundleService.sol +106 -0
  358. package/contracts/pool/IPoolComponent.sol +52 -0
  359. package/contracts/pool/IPoolService.sol +150 -0
  360. package/contracts/pool/Pool.sol +311 -0
  361. package/contracts/pool/PoolService.sol +451 -0
  362. package/contracts/pool/PoolServiceManager.sol +42 -0
  363. package/contracts/product/ApplicationService.sol +254 -0
  364. package/contracts/product/ApplicationServiceManager.sol +38 -0
  365. package/contracts/product/BasicProduct.sol +82 -0
  366. package/contracts/product/BasicProductAuthorization.sol +40 -0
  367. package/contracts/product/ClaimService.sol +442 -0
  368. package/contracts/product/ClaimServiceManager.sol +38 -0
  369. package/contracts/product/IApplicationService.sol +62 -0
  370. package/contracts/product/IClaimService.sol +99 -0
  371. package/contracts/product/IPolicyService.sol +78 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +39 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +475 -0
  376. package/contracts/product/PolicyServiceManager.sol +42 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +42 -0
  379. package/contracts/product/Product.sol +392 -0
  380. package/contracts/product/ProductService.sol +124 -0
  381. package/contracts/product/ProductServiceManager.sol +42 -0
  382. package/contracts/registry/ChainNft.sol +16 -1
  383. package/contracts/registry/IRegistry.sol +44 -21
  384. package/contracts/registry/IRegistryService.sol +42 -38
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +232 -106
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +108 -104
  389. package/contracts/registry/RegistryServiceManager.sol +22 -31
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +487 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +263 -60
  394. package/contracts/shared/Component.sol +281 -0
  395. package/contracts/shared/ComponentService.sol +581 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/ERC165.sol +15 -13
  399. package/contracts/shared/IComponent.sol +70 -0
  400. package/contracts/shared/IComponentService.sol +102 -0
  401. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  402. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  403. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  404. package/contracts/shared/INftOwnable.sol +13 -12
  405. package/contracts/shared/IPolicyHolder.sol +45 -0
  406. package/contracts/shared/IRegisterable.sol +3 -3
  407. package/contracts/shared/IRegistryLinked.sol +11 -0
  408. package/contracts/shared/IService.sol +14 -5
  409. package/contracts/shared/IVersionable.sol +5 -48
  410. package/contracts/shared/InitializableCustom.sol +177 -0
  411. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  412. package/contracts/shared/KeyValueStore.sol +131 -0
  413. package/contracts/shared/Lifecycle.sol +77 -0
  414. package/contracts/shared/NftIdSet.sol +65 -0
  415. package/contracts/shared/NftOwnable.sol +59 -91
  416. package/contracts/shared/PolicyHolder.sol +102 -0
  417. package/contracts/shared/ProxyManager.sol +131 -26
  418. package/contracts/shared/Registerable.sol +19 -30
  419. package/contracts/shared/RegistryLinked.sol +43 -0
  420. package/contracts/shared/Service.sol +54 -31
  421. package/contracts/shared/TokenHandler.sol +37 -6
  422. package/contracts/shared/Versionable.sol +4 -92
  423. package/contracts/staking/IStaking.sol +167 -0
  424. package/contracts/staking/IStakingService.sol +160 -0
  425. package/contracts/staking/StakeManagerLib.sol +231 -0
  426. package/contracts/staking/Staking.sol +511 -0
  427. package/contracts/staking/StakingLifecycle.sol +23 -0
  428. package/contracts/staking/StakingManager.sol +53 -0
  429. package/contracts/staking/StakingReader.sol +186 -0
  430. package/contracts/staking/StakingService.sol +411 -0
  431. package/contracts/staking/StakingServiceManager.sol +44 -0
  432. package/contracts/staking/StakingStore.sol +615 -0
  433. package/contracts/staking/TargetManagerLib.sol +207 -0
  434. package/contracts/{types → type}/AddressSet.sol +1 -1
  435. package/contracts/type/Amount.sol +128 -0
  436. package/contracts/{types → type}/Blocknumber.sol +21 -3
  437. package/contracts/type/ClaimId.sol +75 -0
  438. package/contracts/{types → type}/DistributorType.sol +2 -2
  439. package/contracts/{types → type}/Fee.sol +33 -23
  440. package/contracts/{types → type}/NftId.sol +21 -15
  441. package/contracts/{types → type}/NftIdSet.sol +2 -2
  442. package/contracts/type/ObjectType.sol +275 -0
  443. package/contracts/type/PayoutId.sol +82 -0
  444. package/contracts/{types → type}/Referral.sol +5 -1
  445. package/contracts/type/RequestId.sol +75 -0
  446. package/contracts/{types → type}/RiskId.sol +1 -1
  447. package/contracts/type/RoleId.sol +174 -0
  448. package/contracts/type/Seconds.sol +81 -0
  449. package/contracts/type/Selector.sol +102 -0
  450. package/contracts/{types → type}/StateId.sol +34 -4
  451. package/contracts/type/String.sol +53 -0
  452. package/contracts/{types → type}/Timestamp.sol +23 -14
  453. package/contracts/{types → type}/UFixed.sol +7 -0
  454. package/contracts/{types → type}/Version.sol +2 -1
  455. package/package.json +8 -5
  456. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  457. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  458. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  460. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  463. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  464. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  467. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  469. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  471. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  473. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  475. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  477. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  479. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  481. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  483. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  485. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  488. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  490. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  492. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  495. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  497. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  499. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  501. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  503. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  505. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  506. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  508. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  510. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  515. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  517. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  523. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  525. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  527. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  534. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  536. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  538. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  540. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  542. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  544. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  545. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  546. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  547. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  548. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  549. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  550. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  552. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  554. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  556. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  557. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  558. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  559. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  560. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  561. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  562. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  564. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  565. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  566. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  567. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  568. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  570. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  572. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  574. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  576. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  578. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  580. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  581. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  582. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  584. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  586. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  588. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  590. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  592. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  595. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  597. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  599. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  601. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  603. package/contracts/components/Component.sol +0 -216
  604. package/contracts/components/Distribution.sol +0 -153
  605. package/contracts/components/IComponent.sol +0 -43
  606. package/contracts/components/IDistributionComponent.sol +0 -47
  607. package/contracts/components/IPoolComponent.sol +0 -51
  608. package/contracts/components/IProductComponent.sol +0 -39
  609. package/contracts/components/Pool.sol +0 -208
  610. package/contracts/components/Product.sol +0 -266
  611. package/contracts/experiment/cloning/Cloner.sol +0 -47
  612. package/contracts/experiment/errors/Require.sol +0 -38
  613. package/contracts/experiment/errors/Revert.sol +0 -44
  614. package/contracts/experiment/inheritance/A.sol +0 -53
  615. package/contracts/experiment/inheritance/B.sol +0 -28
  616. package/contracts/experiment/inheritance/C.sol +0 -34
  617. package/contracts/experiment/inheritance/IA.sol +0 -13
  618. package/contracts/experiment/inheritance/IB.sol +0 -10
  619. package/contracts/experiment/inheritance/IC.sol +0 -12
  620. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  621. package/contracts/experiment/statemachine/ISM.sol +0 -25
  622. package/contracts/experiment/statemachine/SM.sol +0 -57
  623. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  624. package/contracts/experiment/types/TypeA.sol +0 -47
  625. package/contracts/experiment/types/TypeB.sol +0 -29
  626. package/contracts/instance/InstanceAccessManager.sol +0 -298
  627. package/contracts/instance/base/ComponentService.sol +0 -134
  628. package/contracts/instance/base/KeyValueStore.sol +0 -172
  629. package/contracts/instance/base/Lifecycle.sol +0 -100
  630. package/contracts/instance/module/ISetup.sol +0 -46
  631. package/contracts/instance/module/ITreasury.sol +0 -23
  632. package/contracts/instance/service/BundleService.sol +0 -293
  633. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  634. package/contracts/instance/service/DistributionService.sol +0 -106
  635. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  636. package/contracts/instance/service/IBundleService.sol +0 -44
  637. package/contracts/instance/service/IDistributionService.sol +0 -12
  638. package/contracts/instance/service/IPolicyService.sol +0 -94
  639. package/contracts/instance/service/IPoolService.sol +0 -20
  640. package/contracts/instance/service/IProductService.sol +0 -40
  641. package/contracts/instance/service/PolicyService.sol +0 -538
  642. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  643. package/contracts/instance/service/PoolService.sol +0 -110
  644. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  645. package/contracts/instance/service/ProductService.sol +0 -233
  646. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  647. package/contracts/registry/RegistryAccessManager.sol +0 -216
  648. package/contracts/registry/ReleaseManager.sol +0 -332
  649. package/contracts/shared/ContractDeployerLib.sol +0 -72
  650. package/contracts/test/TestFee.sol +0 -25
  651. package/contracts/test/TestRegisterable.sol +0 -18
  652. package/contracts/test/TestRoleId.sol +0 -14
  653. package/contracts/test/TestService.sol +0 -25
  654. package/contracts/test/TestVersion.sol +0 -44
  655. package/contracts/test/TestVersionable.sol +0 -17
  656. package/contracts/test/Usdc.sol +0 -26
  657. package/contracts/types/ChainId.sol +0 -38
  658. package/contracts/types/NumberId.sol +0 -52
  659. package/contracts/types/ObjectType.sol +0 -152
  660. package/contracts/types/RoleId.sol +0 -90
  661. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,267 +3,252 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {NumberId} from "../types/NumberId.sol";
9
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT} from "../types/ObjectType.sol";
10
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
11
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
12
- import {StateId, ACTIVE} from "../types/StateId.sol";
13
- import {TimestampLib} from "../types/Timestamp.sol";
14
- import {VersionPart} from "../types/Version.sol";
15
-
16
- import {ERC165} from "../shared/ERC165.sol";
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {RiskId} from "../type/RiskId.sol";
10
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
+ import {ClaimId} from "../type/ClaimId.sol";
13
+ import {ReferralId} from "../type/Referral.sol";
14
+ import {PayoutId} from "../type/PayoutId.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
18
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
19
+
17
20
  import {Registerable} from "../shared/Registerable.sol";
21
+ import {TokenHandler} from "../shared/TokenHandler.sol";
22
+
23
+ import {IRegistry} from "../registry/IRegistry.sol";
18
24
 
19
25
  import {IInstance} from "./IInstance.sol";
26
+ import {IInstanceService} from "./IInstanceService.sol";
20
27
  import {InstanceReader} from "./InstanceReader.sol";
21
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
22
- import {BundleManager} from "./BundleManager.sol";
28
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
+ import {InstanceStore} from "./InstanceStore.sol";
23
31
 
24
- import {KeyValueStore} from "./base/KeyValueStore.sol";
32
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
25
33
 
26
- import {IAccess} from "./module/IAccess.sol";
27
34
  import {IBundle} from "./module/IBundle.sol";
35
+ import {IComponents} from "./module/IComponents.sol";
36
+ import {IDistribution} from "./module/IDistribution.sol";
28
37
  import {IPolicy} from "./module/IPolicy.sol";
29
38
  import {IRisk} from "./module/IRisk.sol";
30
- import {ISetup} from "./module/ISetup.sol";
31
39
 
32
- import {IDistributionService} from "./service/IDistributionService.sol";
33
- import {IPoolService} from "./service/IPoolService.sol";
34
- import {IProductService} from "./service/IProductService.sol";
35
- import {IPolicyService} from "./service/IPolicyService.sol";
36
- import {IBundleService} from "./service/IBundleService.sol";
37
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
40
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
41
+ import {IPoolService} from "../pool/IPoolService.sol";
42
+ import {IProductService} from "../product/IProductService.sol";
43
+ import {IPolicyService} from "../product/IPolicyService.sol";
44
+ import {IBundleService} from "../pool/IBundleService.sol";
38
45
 
39
46
  contract Instance is
40
47
  IInstance,
41
48
  AccessManagedUpgradeable,
42
- Registerable,
43
- KeyValueStore
49
+ Registerable
44
50
  {
45
-
46
51
  uint256 public constant GIF_MAJOR_VERSION = 3;
47
52
 
48
- uint64 public constant ADMIN_ROLE = type(uint64).min;
49
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
50
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
51
-
52
- uint32 public constant EXECUTION_DELAY = 0;
53
-
54
53
  bool private _initialized;
55
54
 
56
- InstanceAccessManager internal _accessManager;
55
+ IInstanceService internal _instanceService;
56
+ InstanceAdmin internal _instanceAdmin;
57
57
  InstanceReader internal _instanceReader;
58
- BundleManager internal _bundleManager;
59
-
60
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
61
- public
62
- initializer
58
+ BundleSet internal _bundleManager;
59
+ InstanceStore internal _instanceStore;
60
+
61
+ modifier onlyChainNft() {
62
+ if(msg.sender != getRegistry().getChainNftAddress()) {
63
+ revert();
64
+ }
65
+ _;
66
+ }
67
+
68
+ function initialize(
69
+ InstanceAdmin instanceAdmin,
70
+ InstanceStore instanceStore,
71
+ BundleSet bundleManager,
72
+ InstanceReader instanceReader,
73
+ IRegistry registry,
74
+ address initialOwner
75
+ )
76
+ external
77
+ initializer()
63
78
  {
64
- __AccessManaged_init(accessManagerAddress);
65
-
66
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
67
-
68
- _registerInterface(type(IInstance).interfaceId);
69
- }
70
-
71
- //--- ProductSetup ------------------------------------------------------//
72
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
73
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
74
- }
75
-
76
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
77
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
78
- }
79
-
80
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
81
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
82
- }
83
-
84
- //--- DistributionSetup ------------------------------------------------------//
85
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
86
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
87
- }
88
-
89
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
90
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
91
- }
92
-
93
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
94
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
95
- }
96
-
97
- //--- PoolSetup ------------------------------------------------------//
98
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
99
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
100
- }
101
-
102
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
103
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
104
- }
105
-
106
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
107
- updateState(_toNftKey32(poolNftId, POOL()), newState);
108
- }
109
-
110
- //--- DistributorType ---------------------------------------------------//
111
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
112
- create(toPolicyKey32(policyNftId), abi.encode(payout));
113
- }
114
-
115
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
116
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
117
- }
118
-
119
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
120
- updateState(toPolicyKey32(policyNftId), newState);
121
- }
122
-
123
- //--- Distributor -------------------------------------------------------//
124
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
125
- create(toPolicyKey32(policyNftId), abi.encode(payout));
126
- }
127
-
128
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
129
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
130
- }
79
+ _instanceAdmin = instanceAdmin;
80
+ if(_instanceAdmin.authority() == address(0)) {
81
+ // TODO rename error
82
+ revert ErrorInstanceInstanceAdminZero();
83
+ }
84
+
85
+ // set authority to instance admin authority
86
+ __AccessManaged_init(_instanceAdmin.authority());
87
+
88
+ // setup instance object info
89
+ initializeRegisterable(
90
+ address(registry),
91
+ registry.getNftId(),
92
+ INSTANCE(),
93
+ true,
94
+ initialOwner,
95
+ "");
96
+
97
+ // store instance supporting contracts
98
+ _instanceStore = instanceStore;
99
+ _bundleManager = bundleManager;
100
+ _instanceReader = instanceReader;
131
101
 
132
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
133
- updateState(toPolicyKey32(policyNftId), newState);
134
- }
102
+ // initialize instance supporting contracts
103
+ _instanceStore.initialize();
104
+ _bundleManager.initialize();
105
+ _instanceReader.initialize();
135
106
 
136
- //--- Referral ----------------------------------------------------------//
137
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
138
- create(toPolicyKey32(policyNftId), abi.encode(payout));
139
- }
107
+ _instanceService = IInstanceService(
108
+ getRegistry().getServiceAddress(
109
+ INSTANCE(),
110
+ getMajorVersion()));
140
111
 
141
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
142
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
112
+ registerInterface(type(IInstance).interfaceId);
143
113
  }
144
114
 
145
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
146
- updateState(toPolicyKey32(policyNftId), newState);
147
- }
115
+ //--- Staking ----------------------------------------------------------//
148
116
 
149
- //--- Bundle ------------------------------------------------------------//
150
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
151
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
117
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
118
+ external
119
+ // TODO decide if onlyOwner or restricted to instance owner role is better
120
+ onlyOwner()
121
+ {
122
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
152
123
  }
153
124
 
154
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
155
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
125
+ function setStakingRewardRate(UFixed rewardRate)
126
+ external
127
+ onlyOwner()
128
+ {
129
+ _instanceService.setStakingRewardRate(rewardRate);
156
130
  }
157
131
 
158
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
159
- updateState(toBundleKey32(bundleNftId), newState);
132
+ function refillStakingRewardReserves(Amount dipAmount)
133
+ external
134
+ onlyOwner()
135
+ {
136
+ address instanceOwner = msg.sender;
137
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
160
138
  }
161
139
 
162
- //--- Risk --------------------------------------------------------------//
163
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
164
- create(riskId.toKey32(), abi.encode(risk));
140
+ function withdrawStakingRewardReserves(Amount dipAmount)
141
+ external
142
+ onlyOwner()
143
+ returns (Amount newBalance)
144
+ {
145
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
165
146
  }
166
147
 
167
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
168
- update(riskId.toKey32(), abi.encode(risk), newState);
169
- }
148
+ //--- Roles ------------------------------------------------------------//
170
149
 
171
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
172
- updateState(riskId.toKey32(), newState);
150
+ function createRole(string memory roleName, string memory adminName)
151
+ external
152
+ onlyOwner()
153
+ returns (RoleId roleId, RoleId admin)
154
+ {
155
+ // TODO refactor
156
+ // (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
173
157
  }
174
158
 
175
- //--- Policy ------------------------------------------------------------//
176
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
177
- create(toPolicyKey32(policyNftId), abi.encode(policy));
159
+ function grantRole(RoleId roleId, address account)
160
+ external
161
+ onlyOwner()
162
+ {
163
+ _instanceAdmin.grantRole(roleId, account);
178
164
  }
179
165
 
180
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
181
- update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
166
+ function revokeRole(RoleId roleId, address account)
167
+ external
168
+ onlyOwner()
169
+ {
170
+ // TODO refactor
171
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
182
172
  }
183
173
 
184
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
185
- updateState(toPolicyKey32(policyNftId), newState);
186
- }
174
+ //--- Targets ------------------------------------------------------------//
187
175
 
188
- //--- Claim -------------------------------------------------------------//
189
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
190
- create(toPolicyKey32(policyNftId), abi.encode(claim));
176
+ function createTarget(address target, string memory name)
177
+ external
178
+ onlyOwner()
179
+ {
180
+ // TODO refactor
181
+ // _instanceAdmin.createTarget(target, name);
191
182
  }
192
183
 
193
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
194
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
184
+ function setTargetFunctionRole(
185
+ string memory targetName,
186
+ bytes4[] calldata selectors,
187
+ RoleId roleId
188
+ )
189
+ external
190
+ onlyOwner()
191
+ {
192
+ // TODO refactor
193
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
195
194
  }
196
195
 
197
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
198
- updateState(toPolicyKey32(policyNftId), newState);
196
+ function setTargetLocked(address target, bool locked)
197
+ external
198
+ onlyOwner()
199
+ {
200
+ // TODO refactor
201
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
199
202
  }
200
203
 
201
- //--- Payout ------------------------------------------------------------//
202
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
203
- create(toPolicyKey32(policyNftId), abi.encode(payout));
204
- }
204
+ //--- ITransferInterceptor ----------------------------------------------//
205
205
 
206
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
207
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
206
+ // TODO interception of child components nfts
207
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
208
+ // TODO refactor
209
+ // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
208
210
  }
209
211
 
210
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
211
- updateState(toPolicyKey32(policyNftId), newState);
212
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
213
+ // TODO refactor
214
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
212
215
  }
213
216
 
214
- //--- internal view/pure functions --------------------------------------//
215
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
216
- return nftId.toKey32(objectType);
217
- }
217
+ //--- initial setup functions -------------------------------------------//
218
218
 
219
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
220
- return bundleNftId.toKey32(BUNDLE());
221
- }
222
219
 
223
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
224
- return policyNftId.toKey32(POLICY());
225
- }
220
+ function setInstanceReader(InstanceReader instanceReader)
221
+ external
222
+ restricted()
223
+ {
224
+ if(instanceReader.getInstance() != Instance(this)) {
225
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
226
+ }
226
227
 
227
- function getDistributionService() external view returns (IDistributionService) {
228
- return IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
228
+ _instanceReader = instanceReader;
229
229
  }
230
230
 
231
- function getProductService() external view returns (IProductService) {
232
- return IProductService(_registry.getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
233
- }
231
+ //--- external view functions -------------------------------------------//
234
232
 
235
- function getPoolService() external view returns (IPoolService) {
236
- return IPoolService(_registry.getServiceAddress(POOL(), VersionPart.wrap(3)));
233
+ function getInstanceReader() external view returns (InstanceReader) {
234
+ return _instanceReader;
237
235
  }
238
236
 
239
- function getPolicyService() external view returns (IPolicyService) {
240
- return IPolicyService(_registry.getServiceAddress(POLICY(), VersionPart.wrap(3)));
237
+ function getBundleSet() external view returns (BundleSet) {
238
+ return _bundleManager;
241
239
  }
242
240
 
243
- function getBundleService() external view returns (IBundleService) {
244
- return IBundleService(_registry.getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
241
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
242
+ return _instanceAdmin;
245
243
  }
246
244
 
247
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
248
- require(instanceReader.getInstance() == Instance(this), "InstanceReader instance mismatch");
249
- _instanceReader = instanceReader;
245
+ function getInstanceStore() external view returns (InstanceStore) {
246
+ return _instanceStore;
250
247
  }
251
248
 
252
- function getMajorVersion() external pure returns (VersionPart majorVersion) {
249
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
253
250
  return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
254
251
  }
255
252
 
256
- function getInstanceReader() external view returns (InstanceReader) {
257
- return _instanceReader;
258
- }
259
-
260
- function setBundleManager(BundleManager bundleManager) external restricted() {
261
- require(address(_bundleManager) == address(0), "BundleManager is set");
262
- require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
263
- _bundleManager = bundleManager;
264
- }
265
-
266
- function getBundleManager() external view returns (BundleManager) {
267
- return _bundleManager;
268
- }
269
- }
253
+ //--- internal view/pure functions --------------------------------------//
254
+ }