@etherisc/gif-next 0.0.2-77ae649-865 → 0.0.2-782a7d8-939

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