@etherisc/gif-next 0.0.2-cf68d0c-530 → 0.0.2-cffb0b6-814

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