@etherisc/gif-next 0.0.2-9b434da-265 → 0.0.2-9b4e378-274

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