@etherisc/gif-next 0.0.2-7c7e7ba-408 → 0.0.2-7ca6cd9-950

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