@etherisc/gif-next 0.0.2-f7eda15-119 → 0.0.2-f7fa064-035

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