@etherisc/gif-next 0.0.2-e9148e0-933 → 0.0.2-e91c6be-472

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 +146 -22
  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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +125 -11
  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 +1324 -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 +1018 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +917 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -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 +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -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 +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -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 +445 -702
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +391 -169
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +367 -3066
  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 +1045 -380
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +478 -398
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +356 -118
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  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 +30 -112
  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 +961 -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/{instance/service/IProductService.sol/IProductService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +391 -366
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +964 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  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 +1439 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → product/IApplicationService.sol/IApplicationService.json} +231 -225
  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 +931 -0
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +283 -266
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IRiskService.sol/IRiskService.json} +149 -162
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -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 +824 -264
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -233
  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 +1170 -300
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +304 -335
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +343 -119
  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 +351 -100
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1843 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +209 -201
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +346 -172
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  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 -31
  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 +119 -165
  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/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  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 +81 -30
  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 +96 -48
  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 +150 -176
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  328. package/contracts/authorization/AccessAdmin.sol +596 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +289 -0
  331. package/contracts/authorization/IAccess.sol +49 -0
  332. package/contracts/authorization/IAccessAdmin.sol +137 -0
  333. package/contracts/authorization/IAuthorization.sol +60 -0
  334. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  335. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  336. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  337. package/contracts/distribution/BasicDistribution.sol +139 -0
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  339. package/contracts/distribution/Distribution.sol +284 -0
  340. package/contracts/distribution/DistributionService.sol +354 -0
  341. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  342. package/contracts/distribution/IDistributionComponent.sol +52 -0
  343. package/contracts/distribution/IDistributionService.sol +100 -0
  344. package/contracts/examples/fire/DamageLevel.sol +59 -0
  345. package/contracts/examples/fire/FirePool.sol +86 -0
  346. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  347. package/contracts/examples/fire/FireProduct.sol +431 -0
  348. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  349. package/contracts/examples/fire/FireUSD.sol +26 -0
  350. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  351. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  352. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  353. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  354. package/contracts/instance/BundleSet.sol +126 -0
  355. package/contracts/instance/IInstance.sol +51 -26
  356. package/contracts/instance/IInstanceService.sol +58 -17
  357. package/contracts/instance/Instance.sol +164 -375
  358. package/contracts/instance/InstanceAdmin.sol +277 -0
  359. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  360. package/contracts/instance/InstanceReader.sol +271 -82
  361. package/contracts/instance/InstanceService.sol +359 -137
  362. package/contracts/instance/InstanceServiceManager.sol +14 -32
  363. package/contracts/instance/InstanceStore.sol +287 -0
  364. package/contracts/instance/base/BalanceStore.sol +123 -0
  365. package/contracts/instance/base/Cloneable.sol +28 -0
  366. package/contracts/instance/base/ObjectCounter.sol +21 -0
  367. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  368. package/contracts/instance/base/ObjectSet.sol +79 -0
  369. package/contracts/instance/module/IAccess.sol +29 -21
  370. package/contracts/instance/module/IBundle.sol +8 -8
  371. package/contracts/instance/module/IComponents.sol +50 -0
  372. package/contracts/instance/module/IDistribution.sol +6 -4
  373. package/contracts/instance/module/IPolicy.sol +59 -19
  374. package/contracts/instance/module/IRisk.sol +1 -1
  375. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  376. package/contracts/oracle/BasicOracle.sol +47 -0
  377. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  378. package/contracts/oracle/IOracle.sol +36 -0
  379. package/contracts/oracle/IOracleComponent.sol +33 -0
  380. package/contracts/oracle/IOracleService.sol +66 -0
  381. package/contracts/oracle/Oracle.sol +156 -0
  382. package/contracts/oracle/OracleService.sol +292 -0
  383. package/contracts/oracle/OracleServiceManager.sol +39 -0
  384. package/contracts/pool/BasicPool.sol +175 -0
  385. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  386. package/contracts/pool/BundleService.sol +485 -0
  387. package/contracts/pool/BundleServiceManager.sol +39 -0
  388. package/contracts/pool/IBundleService.sol +140 -0
  389. package/contracts/pool/IPoolComponent.sol +62 -0
  390. package/contracts/pool/IPoolService.sol +172 -0
  391. package/contracts/pool/Pool.sol +345 -0
  392. package/contracts/pool/PoolService.sol +620 -0
  393. package/contracts/pool/PoolServiceManager.sol +39 -0
  394. package/contracts/product/ApplicationService.sol +259 -0
  395. package/contracts/product/ApplicationServiceManager.sol +38 -0
  396. package/contracts/product/BasicProduct.sol +49 -0
  397. package/contracts/product/BasicProductAuthorization.sol +42 -0
  398. package/contracts/product/ClaimService.sol +614 -0
  399. package/contracts/product/ClaimServiceManager.sol +38 -0
  400. package/contracts/product/IApplicationService.sol +63 -0
  401. package/contracts/product/IClaimService.sol +123 -0
  402. package/contracts/product/IPolicyService.sol +82 -0
  403. package/contracts/product/IPricingService.sol +39 -0
  404. package/contracts/product/IProductComponent.sol +59 -0
  405. package/contracts/product/IRiskService.sol +33 -0
  406. package/contracts/product/PolicyService.sol +695 -0
  407. package/contracts/product/PolicyServiceManager.sol +39 -0
  408. package/contracts/product/PricingService.sol +300 -0
  409. package/contracts/product/PricingServiceManager.sol +39 -0
  410. package/contracts/product/Product.sol +432 -0
  411. package/contracts/product/RiskService.sol +96 -0
  412. package/contracts/product/RiskServiceManager.sol +39 -0
  413. package/contracts/registry/ChainNft.sol +78 -33
  414. package/contracts/registry/IRegistry.sol +129 -35
  415. package/contracts/registry/IRegistryService.sol +40 -28
  416. package/contracts/registry/ITransferInterceptor.sol +1 -1
  417. package/contracts/registry/Registry.sol +552 -271
  418. package/contracts/registry/RegistryAdmin.sol +462 -0
  419. package/contracts/registry/RegistryService.sol +116 -233
  420. package/contracts/registry/RegistryServiceManager.sol +26 -53
  421. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  422. package/contracts/registry/ReleaseRegistry.sol +485 -0
  423. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  424. package/contracts/registry/TokenRegistry.sol +261 -57
  425. package/contracts/shared/Component.sol +229 -0
  426. package/contracts/shared/ComponentService.sol +779 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  429. package/contracts/shared/ContractLib.sol +54 -0
  430. package/contracts/shared/IComponent.sol +67 -0
  431. package/contracts/shared/IComponentService.sol +130 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  435. package/contracts/shared/INftOwnable.sol +15 -12
  436. package/contracts/shared/IPolicyHolder.sol +35 -0
  437. package/contracts/shared/IRegisterable.sol +15 -6
  438. package/contracts/shared/IRegistryLinked.sol +11 -0
  439. package/contracts/shared/IService.sol +16 -6
  440. package/contracts/shared/InitializableERC165.sol +27 -0
  441. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +88 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +75 -82
  446. package/contracts/shared/PolicyHolder.sol +62 -0
  447. package/contracts/shared/Registerable.sol +34 -41
  448. package/contracts/shared/RegistryLinked.sol +38 -0
  449. package/contracts/shared/Service.sol +61 -32
  450. package/contracts/shared/TokenHandler.sol +382 -12
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  452. package/contracts/staking/IStaking.sol +173 -0
  453. package/contracts/staking/IStakingService.sol +157 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +505 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +190 -0
  459. package/contracts/staking/StakingService.sol +453 -0
  460. package/contracts/staking/StakingServiceManager.sol +44 -0
  461. package/contracts/staking/StakingStore.sol +605 -0
  462. package/contracts/staking/TargetManagerLib.sol +211 -0
  463. package/contracts/{types → type}/AddressSet.sol +1 -1
  464. package/contracts/type/Amount.sol +150 -0
  465. package/contracts/{types → type}/Blocknumber.sol +27 -3
  466. package/contracts/type/ClaimId.sol +80 -0
  467. package/contracts/{types → type}/DistributorType.sol +2 -2
  468. package/contracts/{types → type}/Fee.sol +33 -23
  469. package/contracts/{types → type}/NftId.sol +22 -15
  470. package/contracts/type/NftIdSet.sol +62 -0
  471. package/contracts/type/ObjectType.sol +276 -0
  472. package/contracts/type/PayoutId.sol +82 -0
  473. package/contracts/{types → type}/Referral.sol +6 -1
  474. package/contracts/type/RequestId.sol +75 -0
  475. package/contracts/{types → type}/RiskId.sol +17 -3
  476. package/contracts/type/RoleId.sol +162 -0
  477. package/contracts/type/Seconds.sol +101 -0
  478. package/contracts/type/Selector.sol +102 -0
  479. package/contracts/{types → type}/StateId.sol +48 -4
  480. package/contracts/type/String.sol +53 -0
  481. package/contracts/{types → type}/Timestamp.sol +34 -15
  482. package/contracts/{types → type}/UFixed.sol +39 -9
  483. package/contracts/{types → type}/Version.sol +5 -2
  484. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  485. package/contracts/upgradeability/ProxyManager.sol +232 -0
  486. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  487. package/contracts/upgradeability/Versionable.sol +59 -0
  488. package/package.json +11 -7
  489. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  491. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  492. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  493. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  495. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  496. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  497. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  498. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  499. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  500. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  501. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  502. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  503. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  504. package/artifacts/contracts/components/Product.sol/Product.json +0 -719
  505. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  507. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  509. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  511. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  513. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  515. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  517. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  519. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  521. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  523. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  525. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  528. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  529. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  530. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  532. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  534. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  536. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  538. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  539. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  540. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  541. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  542. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  544. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  545. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  546. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  547. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  548. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  550. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  553. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  557. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  567. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -839
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1058
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -448
  579. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  580. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  581. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  582. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  583. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  584. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  585. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  586. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  587. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  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 -305
  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 -600
  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 -10
  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/BaseComponent.sol +0 -91
  647. package/contracts/components/Distribution.sol +0 -159
  648. package/contracts/components/IBaseComponent.sol +0 -25
  649. package/contracts/components/IDistributionComponent.sol +0 -44
  650. package/contracts/components/IPoolComponent.sol +0 -62
  651. package/contracts/components/IProductComponent.sol +0 -35
  652. package/contracts/components/Pool.sol +0 -242
  653. package/contracts/components/Product.sol +0 -284
  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/AccessManagedSimple.sol +0 -115
  670. package/contracts/instance/AccessManagerSimple.sol +0 -692
  671. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  672. package/contracts/instance/InstanceAccessManager.sol +0 -288
  673. package/contracts/instance/base/ComponentServiceBase.sol +0 -124
  674. package/contracts/instance/base/IInstanceBase.sol +0 -23
  675. package/contracts/instance/base/KeyValueStore.sol +0 -172
  676. package/contracts/instance/base/Lifecycle.sol +0 -100
  677. package/contracts/instance/module/ISetup.sol +0 -44
  678. package/contracts/instance/module/ITreasury.sol +0 -23
  679. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  680. package/contracts/instance/service/DistributionService.sol +0 -88
  681. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  682. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  683. package/contracts/instance/service/IDistributionService.sol +0 -12
  684. package/contracts/instance/service/IPoolService.sol +0 -37
  685. package/contracts/instance/service/IProductService.sol +0 -107
  686. package/contracts/instance/service/PoolService.sol +0 -194
  687. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  688. package/contracts/instance/service/ProductService.sol +0 -548
  689. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  690. package/contracts/shared/ContractDeployerLib.sol +0 -72
  691. package/contracts/shared/ERC165.sol +0 -25
  692. package/contracts/shared/ProxyManager.sol +0 -94
  693. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  694. package/contracts/shared/Versionable.sol +0 -147
  695. package/contracts/test/TestFee.sol +0 -25
  696. package/contracts/test/TestRegisterable.sol +0 -18
  697. package/contracts/test/TestRoleId.sol +0 -14
  698. package/contracts/test/TestService.sol +0 -24
  699. package/contracts/test/TestToken.sol +0 -26
  700. package/contracts/test/TestVersion.sol +0 -44
  701. package/contracts/test/TestVersionable.sol +0 -17
  702. package/contracts/types/ChainId.sol +0 -38
  703. package/contracts/types/NftIdSet.sol +0 -60
  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,443 +1,232 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
-
7
- import {AccessManagedSimple} from "./AccessManagedSimple.sol";
8
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
9
- import {IAccess} from "./module/IAccess.sol";
10
- import {IBundle} from "./module/IBundle.sol";
11
- import {IPolicy} from "./module/IPolicy.sol";
12
- import {IRisk} from "./module/IRisk.sol";
13
- import {ISetup} from "./module/ISetup.sol";
14
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
15
- import {KeyValueStore} from "./base/KeyValueStore.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {BundleSet} from "./BundleSet.sol";
8
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
16
9
  import {IInstance} from "./IInstance.sol";
10
+ import {IComponentService} from "../shared/IComponentService.sol";
11
+ import {IInstanceService} from "./IInstanceService.sol";
17
12
  import {InstanceReader} from "./InstanceReader.sol";
18
- import {NftId} from "../types/NftId.sol";
19
- import {NumberId} from "../types/NumberId.sol";
20
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
21
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
22
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
23
- import {StateId, ACTIVE} from "../types/StateId.sol";
24
- import {ERC165} from "../shared/ERC165.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";
25
17
  import {Registerable} from "../shared/Registerable.sol";
26
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
27
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
28
- import {IDistributionService} from "./service/IDistributionService.sol";
29
- import {IPoolService} from "./service/IPoolService.sol";
30
- import {IProductService} from "./service/IProductService.sol";
31
- import {VersionPart} from "../types/Version.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";
32
22
 
33
23
  contract Instance is
34
- AccessManagedSimple,
35
- KeyValueStore,
36
24
  IInstance,
37
- ERC165,
25
+ AccessManagedUpgradeable,
38
26
  Registerable
39
27
  {
40
-
41
- uint64 public constant ADMIN_ROLE = type(uint64).min;
42
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
43
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
44
-
45
- uint32 public constant EXECUTION_DELAY = 0;
46
-
47
28
  bool private _initialized;
48
29
 
49
- mapping(ShortString name => RoleId roleId) internal _role;
50
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
51
- RoleId [] internal _roles;
52
-
53
- mapping(ShortString name => address target) internal _target;
54
-
55
- AccessManagerSimple internal _accessManager;
30
+ IComponentService internal _componentService;
31
+ IInstanceService internal _instanceService;
32
+ InstanceAdmin internal _instanceAdmin;
56
33
  InstanceReader internal _instanceReader;
34
+ BundleSet internal _bundleManager;
35
+ InstanceStore internal _instanceStore;
57
36
 
58
- constructor(address accessManagerAddress, address registryAddress, NftId registryNftId)
59
- {
60
- initialize(accessManagerAddress, registryAddress, registryNftId, msg.sender);
61
- }
62
-
63
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner) public {
64
- require(!_initialized, "Contract instance has already been initialized");
65
-
66
- initializeAccessManagedSimple(accessManagerAddress);
67
-
68
- _accessManager = AccessManagerSimple(accessManagerAddress);
69
- _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
70
- _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
71
-
72
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
73
-
74
- _registerInterface(type(IInstance).interfaceId);
75
- _initialized = true;
76
- }
77
-
78
- //--- Role ------------------------------------------------------//
79
- function createStandardRole(RoleId roleId, string memory name) external restricted() {
80
- _createRole(roleId, name, false, true);
81
- }
82
-
83
- function createCustomRole(RoleId roleId, string memory name) external restricted() {
84
- _createRole(roleId, name, true, true);
85
- }
86
-
87
- function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
88
- (bool isCustom,) = _validateRoleParameters(roleId, name, false);
89
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
90
- update(toRoleKey32(roleId), abi.encode(role), newState);
91
- }
92
-
93
- function updateRoleState(RoleId roleId, StateId newState) external restricted() {
94
- updateState(toRoleKey32(roleId), newState);
95
- }
96
-
97
- function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
98
- Key32 roleKey = toRoleKey32(roleId);
99
-
100
- if (!exists(roleKey)) {
101
- revert IAccess.ErrorGrantNonexstentRole(roleId);
102
- }
103
-
104
- if (getState(roleKey) != ACTIVE()) {
105
- revert IAccess.ErrorRoleIdNotActive(roleId);
106
- }
107
-
108
- if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
109
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
110
- EnumerableSet.add(_roleMembers[roleId], member);
111
- return true;
37
+ modifier onlyChainNft() {
38
+ if(msg.sender != getRegistry().getChainNftAddress()) {
39
+ revert();
112
40
  }
113
-
114
- return false;
115
- }
116
-
117
- function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
118
- Key32 roleKey = toRoleKey32(roleId);
119
-
120
- if (!exists(roleKey)) {
121
- revert IAccess.ErrorRevokeNonexstentRole(roleId);
122
- }
123
-
124
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
125
- _accessManager.revokeRole(roleId.toInt(), member);
126
- EnumerableSet.remove(_roleMembers[roleId], member);
127
- return true;
128
- }
129
-
130
- return false;
131
- }
132
-
133
- /// @dev not restricted function by intention
134
- /// the restriction to role members is already enforced by the call to the access manger
135
- function renounceRole(RoleId roleId) external returns (bool revoked) {
136
- address member = msg.sender;
137
- Key32 roleKey = toRoleKey32(roleId);
138
-
139
- if (!exists(roleKey)) {
140
- revert IAccess.ErrorRenounceNonexstentRole(roleId);
141
- }
142
-
143
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
144
- _accessManager.renounceRole(roleId.toInt(), member);
145
- EnumerableSet.remove(_roleMembers[roleId], member);
146
- return true;
147
- }
148
-
149
- return false;
150
- }
151
-
152
- function roles() external view returns (uint256 numberOfRoles) {
153
- return _roles.length;
154
- }
155
-
156
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
157
- return _roles[idx];
158
- }
159
-
160
- function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
161
- return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
162
- }
163
-
164
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
165
- return EnumerableSet.length(_roleMembers[roleId]);
166
- }
167
-
168
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
169
- return EnumerableSet.at(_roleMembers[roleId], idx);
170
- }
171
-
172
- function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
173
- if (validateParameters) {
174
- _validateRoleParameters(roleId, name, isCustom);
175
- }
176
-
177
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
178
- _role[role.name] = roleId;
179
- _roles.push(roleId);
180
-
181
- create(toRoleKey32(roleId), abi.encode(role));
182
- }
183
-
184
- //--- Target ------------------------------------------------------//
185
- function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
186
- _validateTargetParameters(target, targetInfo);
187
- create(toTargetKey32(target), abi.encode(targetInfo));
188
- }
189
-
190
- function setTargetClosed(address target, bool closed) external restricted() {
191
- if (!exists(toTargetKey32(target))) {
192
- revert IAccess.ErrorTargetDoesNotExist(target);
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()
54
+ {
55
+ _instanceAdmin = instanceAdmin;
56
+ if(_instanceAdmin.authority() == address(0)) {
57
+ revert ErrorInstanceInstanceAdminZero();
193
58
  }
194
59
 
195
- _accessManager.setTargetClosed(target, closed);
196
- }
197
-
198
- //--- ProductSetup ------------------------------------------------------//
199
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
200
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
201
- }
202
-
203
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
204
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
205
- }
206
-
207
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
208
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
209
- }
210
-
211
- //--- DistributionSetup ------------------------------------------------------//
212
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
213
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
214
- }
215
-
216
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
217
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
218
- }
219
-
220
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
221
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
222
- }
223
-
224
- //--- PoolSetup ------------------------------------------------------//
225
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
226
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
227
- }
228
-
229
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
230
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
231
- }
232
-
233
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
234
- updateState(_toNftKey32(poolNftId, POOL()), newState);
235
- }
236
-
237
- //--- DistributorType ---------------------------------------------------//
238
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
239
- create(toPolicyKey32(policyNftId), abi.encode(payout));
240
- }
241
-
242
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
243
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
244
- }
245
-
246
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
247
- updateState(toPolicyKey32(policyNftId), newState);
248
- }
249
-
250
- //--- Distributor -------------------------------------------------------//
251
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
252
- create(toPolicyKey32(policyNftId), abi.encode(payout));
253
- }
254
-
255
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
256
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
257
- }
258
-
259
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
260
- updateState(toPolicyKey32(policyNftId), newState);
261
- }
262
-
263
- //--- Referral ----------------------------------------------------------//
264
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
265
- create(toPolicyKey32(policyNftId), abi.encode(payout));
266
- }
267
-
268
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
269
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
270
- }
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;
271
76
 
272
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
273
- updateState(toPolicyKey32(policyNftId), newState);
274
- }
77
+ // initialize instance supporting contracts
78
+ _instanceStore.initialize();
79
+ _bundleManager.initialize();
80
+ _instanceReader.initialize();
275
81
 
276
- //--- Bundle ------------------------------------------------------------//
277
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
278
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
279
- }
82
+ _componentService = IComponentService(
83
+ getRegistry().getServiceAddress(
84
+ COMPONENT(),
85
+ getRelease()));
280
86
 
281
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
282
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
283
- }
87
+ _instanceService = IInstanceService(
88
+ getRegistry().getServiceAddress(
89
+ INSTANCE(),
90
+ getRelease()));
284
91
 
285
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
286
- updateState(toBundleKey32(bundleNftId), newState);
92
+ _registerInterface(type(IInstance).interfaceId);
287
93
  }
288
94
 
289
- //--- Risk --------------------------------------------------------------//
290
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
291
- create(riskId.toKey32(), abi.encode(risk));
95
+ //--- ProductRegistration ----------------------------------------------//
96
+ function registerProduct(address product)
97
+ external
98
+ onlyOwner()
99
+ returns (NftId productNftId)
100
+ {
101
+ return _componentService.registerProduct(product);
292
102
  }
293
103
 
294
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
295
- update(riskId.toKey32(), abi.encode(risk), newState);
296
- }
104
+ //--- Staking ----------------------------------------------------------//
297
105
 
298
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
299
- updateState(riskId.toKey32(), newState);
106
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
107
+ external
108
+ onlyOwner()
109
+ {
110
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
300
111
  }
301
112
 
302
- //--- Policy ------------------------------------------------------------//
303
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
304
- create(toPolicyKey32(policyNftId), abi.encode(policy));
113
+ function setStakingRewardRate(UFixed rewardRate)
114
+ external
115
+ onlyOwner()
116
+ {
117
+ _instanceService.setStakingRewardRate(rewardRate);
305
118
  }
306
119
 
307
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
308
- update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
120
+ function refillStakingRewardReserves(Amount dipAmount)
121
+ external
122
+ onlyOwner()
123
+ {
124
+ address instanceOwner = msg.sender;
125
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
309
126
  }
310
127
 
311
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
312
- updateState(toPolicyKey32(policyNftId), newState);
128
+ function withdrawStakingRewardReserves(Amount dipAmount)
129
+ external
130
+ onlyOwner()
131
+ returns (Amount newBalance)
132
+ {
133
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
313
134
  }
314
135
 
315
- //--- Claim -------------------------------------------------------------//
316
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
317
- create(toPolicyKey32(policyNftId), abi.encode(claim));
318
- }
136
+ //--- Roles ------------------------------------------------------------//
319
137
 
320
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
321
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
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);
322
145
  }
323
146
 
324
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
325
- updateState(toPolicyKey32(policyNftId), newState);
147
+ function grantRole(RoleId roleId, address account)
148
+ external
149
+ onlyOwner()
150
+ {
151
+ _instanceAdmin.grantRole(roleId, account);
326
152
  }
327
153
 
328
- //--- Payout ------------------------------------------------------------//
329
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
330
- create(toPolicyKey32(policyNftId), abi.encode(payout));
154
+ function revokeRole(RoleId roleId, address account)
155
+ external
156
+ onlyOwner()
157
+ {
158
+ // TODO refactor
159
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
331
160
  }
332
161
 
333
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
334
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
335
- }
162
+ //--- Targets ------------------------------------------------------------//
336
163
 
337
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
338
- updateState(toPolicyKey32(policyNftId), newState);
164
+ function createTarget(address target, string memory name)
165
+ external
166
+ onlyOwner()
167
+ {
168
+ // TODO refactor
169
+ // _instanceAdmin.createTarget(target, name);
339
170
  }
340
171
 
341
- //--- internal view/pure functions --------------------------------------//
342
- function _toRole(RoleId roleId, string memory name, bool isCustom)
343
- internal
344
- pure
345
- returns (IAccess.RoleInfo memory role)
172
+ function setTargetFunctionRole(
173
+ string memory targetName,
174
+ bytes4[] calldata selectors,
175
+ RoleId roleId
176
+ )
177
+ external
178
+ onlyOwner()
346
179
  {
347
- return IAccess.RoleInfo(
348
- ShortStrings.toShortString(name),
349
- isCustom);
180
+ // TODO refactor
181
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
350
182
  }
351
183
 
352
- function _validateRoleParameters(
353
- RoleId roleId,
354
- string memory name,
355
- bool isCustom
356
- )
357
- internal
358
- view
359
- returns (
360
- bool roleExists,
361
- bool roleIsCustom
362
- )
184
+ function setTargetLocked(address target, bool locked)
185
+ external
186
+ onlyOwner()
363
187
  {
364
- Key32 roleKey = toRoleKey32(roleId);
365
- roleExists = exists(roleKey);
366
- if (roleExists) {
367
- roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
368
- } else {
369
- roleIsCustom = isCustom;
370
- }
371
-
372
- // check role id
373
- uint64 roleIdInt = RoleId.unwrap(roleId);
374
- if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
375
- revert IAccess.ErrorRoleIdInvalid(roleId);
376
- }
377
-
378
- if (roleIsCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
379
- revert IAccess.ErrorRoleIdTooSmall(roleId);
380
- } else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
381
- revert IAccess.ErrorRoleIdTooBig(roleId);
382
- }
383
-
384
- // role name checks
385
- ShortString nameShort = ShortStrings.toShortString(name);
386
- if (ShortStrings.byteLength(nameShort) == 0) {
387
- revert IAccess.ErrorRoleNameEmpty(roleId);
388
- }
389
-
390
- if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
391
- revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
392
- }
188
+ // TODO refactor
189
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
393
190
  }
394
191
 
395
- function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
192
+ //--- ITransferInterceptor ----------------------------------------------//
396
193
 
194
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
195
+ // TODO refactor
196
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
397
197
  }
398
198
 
399
- function toRoleKey32(RoleId roleId) public pure returns (Key32) {
400
- return roleId.toKey32();
401
- }
199
+ //--- initial setup functions -------------------------------------------//
402
200
 
403
- function toTargetKey32(address target) public pure returns (Key32) {
404
- return Key32Lib.toKey32(TARGET(), KeyId.wrap(bytes20(target)));
405
- }
406
201
 
407
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
408
- return nftId.toKey32(objectType);
409
- }
202
+ function setInstanceReader(InstanceReader instanceReader)
203
+ external
204
+ restricted()
205
+ {
206
+ if(instanceReader.getInstance() != Instance(this)) {
207
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
208
+ }
410
209
 
411
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
412
- return bundleNftId.toKey32(BUNDLE());
210
+ _instanceReader = instanceReader;
413
211
  }
414
212
 
415
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
416
- return policyNftId.toKey32(POLICY());
417
- }
213
+ //--- external view functions -------------------------------------------//
418
214
 
419
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
420
- return ComponentOwnerService(_registry.getServiceAddress("ComponentOwnerService", VersionPart.wrap(3)));
421
- }
422
-
423
- function getDistributionService() external view returns (IDistributionService) {
424
- return IDistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
215
+ function getInstanceReader() external view returns (InstanceReader) {
216
+ return _instanceReader;
425
217
  }
426
218
 
427
- function getProductService() external view returns (IProductService) {
428
- return IProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
219
+ function getBundleSet() external view returns (BundleSet) {
220
+ return _bundleManager;
429
221
  }
430
222
 
431
- function getPoolService() external view returns (IPoolService) {
432
- return IPoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
223
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
224
+ return _instanceAdmin;
433
225
  }
434
226
 
435
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
436
- require(address(_instanceReader) == address(0), "InstanceReader is set");
437
- _instanceReader = instanceReader;
227
+ function getInstanceStore() external view returns (InstanceStore) {
228
+ return _instanceStore;
438
229
  }
439
230
 
440
- function getInstanceReader() external view returns (InstanceReader) {
441
- return _instanceReader;
442
- }
443
- }
231
+ //--- internal view/pure functions --------------------------------------//
232
+ }