@etherisc/gif-next 0.0.2-b4a6c3e-033 → 0.0.2-b51dcb9-674

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 (484) hide show
  1. package/README.md +337 -19
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +698 -30
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1376 -0
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +636 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +1095 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +861 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +1214 -135
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +1008 -156
  18. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  19. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  20. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  21. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
  22. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  23. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +312 -1138
  24. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  25. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
  26. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  27. package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -1229
  28. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
  30. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
  38. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
  40. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  42. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  43. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +631 -0
  44. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  45. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  46. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  48. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
  50. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  51. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  52. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  53. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  54. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  55. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  56. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  57. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  58. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  60. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  61. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  62. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  63. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  64. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  65. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  66. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
  68. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +918 -0
  70. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  72. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1288 -0
  74. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  76. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1384 -0
  78. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +752 -0
  80. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1556 -0
  82. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  84. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +493 -0
  86. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +735 -0
  88. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +743 -0
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +840 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +651 -0
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  95. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +1077 -0
  96. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
  98. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +442 -0
  100. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1281 -0
  102. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  104. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1622 -0
  106. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  108. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
  110. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  112. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +864 -0
  114. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +595 -27
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +858 -0
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +652 -50
  126. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1150 -0
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
  136. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  138. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  140. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  142. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +175 -0
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IService.sol/IService.json +327 -0
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  154. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  155. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  156. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  157. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  158. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +569 -0
  160. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +339 -0
  162. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  163. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  164. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  165. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +256 -220
  166. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  167. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
  168. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  170. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  171. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  172. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  173. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  174. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  175. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +370 -0
  176. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  177. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  178. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  179. package/artifacts/contracts/test/TestService.sol/TestService.json +588 -0
  180. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  181. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  182. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  183. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  184. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  185. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +104 -0
  186. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  187. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  188. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  189. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  190. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  191. package/artifacts/contracts/types/Amount.sol/AmountLib.json +281 -0
  192. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  194. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  196. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
  198. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  199. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  200. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  201. package/artifacts/contracts/types/Fee.sol/FeeLib.json +312 -0
  202. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  203. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  204. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +78 -4
  206. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  207. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
  208. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  210. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  211. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  212. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  213. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
  214. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  215. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
  216. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  217. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  218. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  219. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  220. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  222. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  223. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  224. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  225. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +110 -4
  226. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  227. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  228. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  229. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  230. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  231. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  232. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  233. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
  234. package/contracts/components/Component.sol +245 -50
  235. package/contracts/components/Distribution.sol +285 -0
  236. package/contracts/components/IComponent.sol +90 -0
  237. package/contracts/components/IDistributionComponent.sol +71 -0
  238. package/contracts/components/IPoolComponent.sol +114 -0
  239. package/contracts/components/IProductComponent.sol +41 -0
  240. package/contracts/components/Pool.sol +280 -30
  241. package/contracts/components/Product.sol +337 -51
  242. package/contracts/instance/BundleManager.sol +126 -0
  243. package/contracts/instance/Cloneable.sol +51 -0
  244. package/contracts/instance/IInstance.sol +74 -22
  245. package/contracts/instance/IInstanceService.sol +73 -0
  246. package/contracts/instance/Instance.sol +210 -53
  247. package/contracts/instance/InstanceAccessManager.sol +541 -0
  248. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  249. package/contracts/instance/InstanceReader.sol +368 -0
  250. package/contracts/instance/InstanceService.sol +308 -0
  251. package/contracts/instance/InstanceServiceManager.sol +54 -0
  252. package/contracts/instance/InstanceStore.sol +212 -0
  253. package/contracts/instance/ObjectManager.sol +82 -0
  254. package/contracts/instance/base/ComponentService.sol +148 -0
  255. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  256. package/contracts/instance/base/ILifecycle.sol +30 -0
  257. package/contracts/instance/base/KeyValueStore.sol +149 -0
  258. package/contracts/instance/base/Lifecycle.sol +120 -0
  259. package/contracts/instance/module/IAccess.sol +54 -0
  260. package/contracts/instance/module/IBundle.sol +23 -0
  261. package/contracts/instance/module/IComponents.sol +41 -0
  262. package/contracts/instance/module/IDistribution.sol +42 -0
  263. package/contracts/instance/module/IPolicy.sol +77 -0
  264. package/contracts/instance/module/IRisk.sol +11 -0
  265. package/contracts/instance/module/ISetup.sol +33 -0
  266. package/contracts/instance/module/ITreasury.sol +23 -0
  267. package/contracts/instance/service/ApplicationService.sol +186 -0
  268. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  269. package/contracts/instance/service/BundleService.sol +382 -0
  270. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  271. package/contracts/instance/service/ClaimService.sol +437 -0
  272. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  273. package/contracts/instance/service/DistributionService.sol +348 -0
  274. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  275. package/contracts/instance/service/IApplicationService.sol +62 -0
  276. package/contracts/instance/service/IBundleService.sol +118 -0
  277. package/contracts/instance/service/IClaimService.sol +90 -0
  278. package/contracts/instance/service/IDistributionService.sol +87 -0
  279. package/contracts/instance/service/IPolicyService.sol +80 -0
  280. package/contracts/instance/service/IPoolService.sol +114 -0
  281. package/contracts/instance/service/IPricingService.sol +37 -0
  282. package/contracts/instance/service/IProductService.sol +40 -0
  283. package/contracts/instance/service/PolicyService.sol +376 -0
  284. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  285. package/contracts/instance/service/PoolService.sol +403 -0
  286. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  287. package/contracts/instance/service/PricingService.sol +275 -0
  288. package/contracts/instance/service/PricingServiceManager.sol +51 -0
  289. package/contracts/instance/service/ProductService.sol +210 -0
  290. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  291. package/contracts/registry/ChainNft.sol +137 -62
  292. package/contracts/registry/IRegistry.sol +75 -41
  293. package/contracts/registry/IRegistryService.sol +66 -0
  294. package/contracts/registry/ITransferInterceptor.sol +7 -0
  295. package/contracts/registry/Registry.sol +413 -128
  296. package/contracts/registry/RegistryAccessManager.sol +216 -0
  297. package/contracts/registry/RegistryService.sol +286 -0
  298. package/contracts/registry/RegistryServiceManager.sol +62 -0
  299. package/contracts/registry/ReleaseManager.sol +324 -0
  300. package/contracts/registry/TokenRegistry.sol +116 -0
  301. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  302. package/contracts/shared/ContractDeployerLib.sol +72 -0
  303. package/contracts/shared/ERC165.sol +27 -0
  304. package/contracts/shared/INftOwnable.sol +23 -0
  305. package/contracts/shared/IPolicyHolder.sol +40 -0
  306. package/contracts/shared/IRegisterable.sol +15 -0
  307. package/contracts/shared/IRegistryLinked.sol +11 -0
  308. package/contracts/shared/IService.sol +18 -0
  309. package/contracts/shared/IVersionable.sol +53 -0
  310. package/contracts/shared/NftOwnable.sol +118 -0
  311. package/contracts/shared/PolicyHolder.sol +94 -0
  312. package/contracts/shared/ProxyManager.sol +169 -0
  313. package/contracts/shared/Registerable.sol +75 -0
  314. package/contracts/shared/RegistryLinked.sol +43 -0
  315. package/contracts/shared/Service.sol +72 -0
  316. package/contracts/shared/TokenHandler.sol +35 -0
  317. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  318. package/contracts/shared/Versionable.sol +59 -0
  319. package/contracts/test/TestFee.sol +25 -0
  320. package/contracts/test/TestRegisterable.sol +18 -0
  321. package/contracts/test/TestRoleId.sol +14 -0
  322. package/contracts/test/TestService.sol +25 -0
  323. package/contracts/test/TestToken.sol +26 -0
  324. package/contracts/test/TestVersion.sol +44 -0
  325. package/contracts/test/TestVersionable.sol +17 -0
  326. package/contracts/test/Usdc.sol +26 -0
  327. package/contracts/types/AddressSet.sol +58 -0
  328. package/contracts/types/Amount.sol +109 -0
  329. package/contracts/types/Blocknumber.sol +1 -0
  330. package/contracts/types/ClaimId.sol +75 -0
  331. package/contracts/types/DistributorType.sol +55 -0
  332. package/contracts/types/Fee.sol +53 -20
  333. package/contracts/types/Key32.sol +50 -0
  334. package/contracts/types/NftId.sol +30 -1
  335. package/contracts/types/NftIdSet.sol +62 -0
  336. package/contracts/types/NumberId.sol +52 -0
  337. package/contracts/types/ObjectType.sol +69 -15
  338. package/contracts/types/PayoutId.sol +82 -0
  339. package/contracts/types/Referral.sol +89 -0
  340. package/contracts/types/RiskId.sol +43 -0
  341. package/contracts/types/RoleId.sol +97 -0
  342. package/contracts/types/Seconds.sol +54 -0
  343. package/contracts/types/StateId.sol +23 -4
  344. package/contracts/types/Timestamp.sol +36 -6
  345. package/contracts/types/UFixed.sol +151 -31
  346. package/contracts/types/Version.sol +108 -0
  347. package/package.json +14 -5
  348. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  349. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  350. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  351. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  352. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  353. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  354. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  356. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  358. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  360. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  362. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  364. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  366. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  368. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  370. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  372. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  374. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  375. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  376. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  377. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  378. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  379. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  380. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  381. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  382. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  384. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  386. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  387. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  388. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  389. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  390. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  391. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  392. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  393. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  394. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  395. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  396. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  397. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  398. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  399. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  400. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  401. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  402. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  403. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  404. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  405. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  407. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  408. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  409. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  410. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  411. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  412. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  413. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  414. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  415. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  416. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  417. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  418. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  419. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  420. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  422. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  423. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  424. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  426. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  427. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  428. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  429. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  430. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  431. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  432. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  433. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  434. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  435. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  436. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  437. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  438. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  439. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  440. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  441. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  442. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  443. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  444. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  445. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  446. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  447. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  448. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  449. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  450. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  451. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  452. package/contracts/components/IPool.sol +0 -15
  453. package/contracts/components/IProduct.sol +0 -16
  454. package/contracts/experiment/errors/Require.sol +0 -38
  455. package/contracts/experiment/errors/Revert.sol +0 -44
  456. package/contracts/experiment/inheritance/A.sol +0 -53
  457. package/contracts/experiment/inheritance/B.sol +0 -28
  458. package/contracts/experiment/inheritance/C.sol +0 -34
  459. package/contracts/experiment/inheritance/IA.sol +0 -13
  460. package/contracts/experiment/inheritance/IB.sol +0 -10
  461. package/contracts/experiment/inheritance/IC.sol +0 -12
  462. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  463. package/contracts/experiment/statemachine/ISM.sol +0 -25
  464. package/contracts/experiment/statemachine/README.md +0 -112
  465. package/contracts/experiment/statemachine/SM.sol +0 -57
  466. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  467. package/contracts/experiment/types/TypeA.sol +0 -47
  468. package/contracts/experiment/types/TypeB.sol +0 -29
  469. package/contracts/instance/access/Access.sol +0 -165
  470. package/contracts/instance/access/IAccess.sol +0 -63
  471. package/contracts/instance/component/ComponentModule.sol +0 -274
  472. package/contracts/instance/component/IComponent.sol +0 -74
  473. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  474. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  475. package/contracts/instance/policy/IPolicy.sol +0 -50
  476. package/contracts/instance/policy/PolicyModule.sol +0 -114
  477. package/contracts/instance/pool/IPoolModule.sol +0 -23
  478. package/contracts/instance/pool/PoolModule.sol +0 -81
  479. package/contracts/instance/product/IProductService.sol +0 -36
  480. package/contracts/instance/product/ProductService.sol +0 -136
  481. package/contracts/instance/treasury/ITreasury.sol +0 -91
  482. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  483. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  484. package/contracts/registry/IChainNft.sol +0 -21
@@ -1,25 +1,77 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegisterable} from "../registry/IRegistry.sol";
5
- import {IAccessModule} from "./access/IAccess.sol";
6
- import {ILifecycleModule} from "./lifecycle/ILifecycle.sol";
7
- import {IComponentModule} from "./component/IComponent.sol";
8
- import {IProductModule} from "./product/IProductService.sol";
9
- import {IPolicyModule} from "./policy/IPolicy.sol";
10
- import {IPoolModule} from "./pool/IPoolModule.sol";
11
- import {ITreasuryModule} from "./treasury/ITreasury.sol";
12
-
13
- // solhint-disable-next-line no-empty-blocks
14
- interface IInstance is
15
- IRegisterable,
16
- IAccessModule,
17
- ILifecycleModule,
18
- IPolicyModule,
19
- IPoolModule,
20
- IComponentModule,
21
- IProductModule,
22
- ITreasuryModule
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {ClaimId} from "../types/ClaimId.sol";
7
+ import {DistributorType} from "../types/DistributorType.sol";
8
+ import {PayoutId} from "../types/PayoutId.sol";
9
+ import {NftId} from "../types/NftId.sol";
10
+ import {StateId} from "../types/StateId.sol";
11
+ import {ReferralId} from "../types/Referral.sol";
12
+ import {RiskId} from "../types/RiskId.sol";
13
+ import {VersionPart} from "../types/Version.sol";
14
+ import {Key32} from "../types/Key32.sol";
15
+ import {RoleId} from "../types/RoleId.sol";
16
+
17
+ import {IRegisterable} from "../shared/IRegisterable.sol";
18
+
19
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
20
+
21
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
22
+ import {BundleManager} from "./BundleManager.sol";
23
+ import {InstanceReader} from "./InstanceReader.sol";
24
+ import {InstanceStore} from "./InstanceStore.sol";
25
+
26
+ import {IKeyValueStore} from "./base/IKeyValueStore.sol";
27
+
28
+ import {IAccess} from "./module/IAccess.sol";
29
+
30
+ import {IBundleService} from "./service/IBundleService.sol";
31
+ import {IDistributionService} from "./service/IDistributionService.sol";
32
+ import {IPolicyService} from "./service/IPolicyService.sol";
33
+ import {IPoolService} from "./service/IPoolService.sol";
34
+ import {IProductService} from "./service/IProductService.sol";
35
+ import {IPolicyService} from "./service/IPolicyService.sol";
36
+ import {IBundleService} from "./service/IBundleService.sol";
37
+
38
+
39
+
40
+ interface IInstance is
41
+ IRegisterable,
42
+ ITransferInterceptor,
43
+ IAccessManaged
23
44
  {
45
+ error ErrorInstanceInstanceAccessManagerZero();
46
+ error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
47
+ error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
48
+
49
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
50
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
51
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
52
+
53
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
54
+
55
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
56
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
57
+
58
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
59
+ function grantRole(RoleId roleId, address account) external;
60
+ function revokeRole(RoleId roleId, address account) external;
61
+
62
+ function createTarget(address target, string memory name) external;
63
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
64
+ function setTargetLocked(address target, bool locked) external;
65
+
66
+ function getDistributionService() external view returns (IDistributionService);
67
+ function getProductService() external view returns (IProductService);
68
+ function getPoolService() external view returns (IPoolService);
69
+ function getPolicyService() external view returns (IPolicyService);
70
+ function getBundleService() external view returns (IBundleService);
24
71
 
25
- }
72
+ function getMajorVersion() external pure returns (VersionPart majorVersion);
73
+ function getInstanceReader() external view returns (InstanceReader);
74
+ function getBundleManager() external view returns (BundleManager);
75
+ function getInstanceAccessManager() external view returns (InstanceAccessManager);
76
+ function getInstanceStore() external view returns (InstanceStore);
77
+ }
@@ -0,0 +1,73 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../types/NftId.sol";
5
+ import {ObjectType} from "../types/ObjectType.sol";
6
+ import {RoleId} from "../types/RoleId.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+
9
+ import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
10
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
11
+ import {Instance} from "./Instance.sol";
12
+ import {InstanceReader} from "./InstanceReader.sol";
13
+ import {BundleManager} from "./BundleManager.sol";
14
+ import {InstanceStore} from "./InstanceStore.sol";
15
+
16
+ interface IInstanceService is IService {
17
+
18
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
19
+ error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
20
+ error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
21
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
22
+ error ErrorInstanceServiceInstanceAddressZero();
23
+
24
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
25
+ error ErrorInstanceServiceInstanceReaderAddressZero();
26
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
27
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
28
+
29
+ error ErrorInstanceServiceInstanceAccessManagerZero();
30
+ error ErrorInstanceServiceInstanceReaderZero();
31
+ error ErrorInstanceServiceBundleManagerZero();
32
+ error ErrorInstanceServiceInstanceStoreZero();
33
+
34
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
35
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
36
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
37
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
38
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
39
+
40
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
41
+ error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
42
+ error ErrorInstanceServiceNotInstance(NftId nftId);
43
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
44
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
45
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
46
+
47
+ event LogInstanceCloned(
48
+ address clonedOzAccessManager,
49
+ address clonedInstanceAccessManager,
50
+ address clonedInstance,
51
+ address clonedInstanceStore,
52
+ address clonedBundleManager,
53
+ address clonedInstanceReader,
54
+ NftId clonedInstanceNftId
55
+ );
56
+
57
+ function createInstanceClone()
58
+ external
59
+ returns (
60
+ Instance clonedInstance,
61
+ NftId instanceNftId
62
+ );
63
+
64
+ function createGifTarget(
65
+ NftId instanceNftId,
66
+ address targetAddress,
67
+ string memory targetName,
68
+ bytes4[][] memory selectors,
69
+ RoleId[] memory roles
70
+ ) external;
71
+
72
+ function setComponentLocked(bool locked) external;
73
+ }
@@ -1,72 +1,229 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {Registerable} from "../registry/Registry.sol";
5
- import {IRegistry} from "../registry/IRegistry.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {Key32} from "../types/Key32.sol";
7
+ import {NftId} from "../types/NftId.sol";
8
+ import {RiskId} from "../types/RiskId.sol";
9
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
10
+ import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
11
+ import {VersionPart, VersionPartLib} from "../types/Version.sol";
12
+ import {ClaimId} from "../types/ClaimId.sol";
13
+ import {ReferralId} from "../types/Referral.sol";
14
+ import {PayoutId} from "../types/PayoutId.sol";
15
+ import {DistributorType} from "../types/DistributorType.sol";
6
16
 
7
- import {IAccessModule, AccessModule} from "./access/Access.sol";
8
- import {LifecycleModule} from "./lifecycle/LifecycleModule.sol";
9
- import {ComponentModule} from "./component/ComponentModule.sol";
10
- import {ProductModule} from "./product/ProductService.sol";
11
- import {PolicyModule} from "./policy/PolicyModule.sol";
12
- import {PoolModule} from "./pool/PoolModule.sol";
13
- import {TreasuryModule} from "./treasury/TreasuryModule.sol";
17
+ import {Registerable} from "../shared/Registerable.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+
20
+ import {IRegistry} from "../registry/IRegistry.sol";
14
21
 
15
22
  import {IInstance} from "./IInstance.sol";
16
- import {ObjectType, INSTANCE} from "../types/ObjectType.sol";
17
- import {NftId, toNftId} from "../types/NftId.sol";
23
+ import {InstanceReader} from "./InstanceReader.sol";
24
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
25
+ import {BundleManager} from "./BundleManager.sol";
26
+ import {InstanceStore} from "./InstanceStore.sol";
27
+
28
+ import {KeyValueStore} from "./base/KeyValueStore.sol";
29
+
30
+ import {IBundle} from "./module/IBundle.sol";
31
+ import {IComponents} from "./module/IComponents.sol";
32
+ import {IDistribution} from "./module/IDistribution.sol";
33
+ import {IPolicy} from "./module/IPolicy.sol";
34
+ import {IRisk} from "./module/IRisk.sol";
35
+ import {ISetup} from "./module/ISetup.sol";
36
+
37
+ import {IDistributionService} from "./service/IDistributionService.sol";
38
+ import {IPoolService} from "./service/IPoolService.sol";
39
+ import {IProductService} from "./service/IProductService.sol";
40
+ import {IPolicyService} from "./service/IPolicyService.sol";
41
+ import {IBundleService} from "./service/IBundleService.sol";
18
42
 
19
43
  contract Instance is
20
- Registerable,
21
- AccessModule,
22
- LifecycleModule,
23
- ComponentModule,
24
- PolicyModule,
25
- PoolModule,
26
- ProductModule,
27
- TreasuryModule,
28
- IInstance
44
+ IInstance,
45
+ AccessManagedUpgradeable,
46
+ Registerable
29
47
  {
30
- constructor(
31
- address registry,
32
- address componentOwnerService,
33
- address productService
34
- )
35
- Registerable(registry)
36
- AccessModule()
37
- ComponentModule(componentOwnerService)
38
- PolicyModule(productService)
39
- ProductModule(productService)
40
- PoolModule(productService)
41
- // solhint-disable-next-line no-empty-blocks
48
+ uint256 public constant GIF_MAJOR_VERSION = 3;
49
+
50
+ bool private _initialized;
51
+
52
+ InstanceAccessManager internal _accessManager;
53
+ InstanceReader internal _instanceReader;
54
+ BundleManager internal _bundleManager;
55
+ InstanceStore internal _instanceStore;
56
+
57
+ modifier onlyChainNft() {
58
+ if(msg.sender != getRegistry().getChainNftAddress()) {
59
+ revert();
60
+ }
61
+ _;
62
+ }
63
+
64
+ function initialize(address authority, address registryAddress, address initialOwner)
65
+ external
66
+ initializer()
42
67
  {
68
+ if(authority == address(0)) {
69
+ revert ErrorInstanceInstanceAccessManagerZero();
70
+ }
43
71
 
72
+ __AccessManaged_init(authority);
73
+
74
+ IRegistry registry = IRegistry(registryAddress);
75
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
76
+
77
+ registerInterface(type(IInstance).interfaceId);
44
78
  }
45
79
 
46
- // from registerable
47
- function register() external override returns (NftId nftId) {
48
- require(
49
- address(_registry) != address(0),
50
- "ERROR:PRD-001:REGISTRY_ZERO"
51
- );
52
- return _registry.register(address(this));
80
+ //--- Roles ------------------------------------------------------------//
81
+
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) = _accessManager.createRole(roleName, adminName);
53
88
  }
54
89
 
55
- // from registerable
56
- function getParentNftId() public pure override returns (NftId) {
57
- // TODO add self registry and exchange 0 for_registry.getNftId();
58
- // define parent tree for all registerables
59
- // eg 0 <- chain(mainnet) <- global registry <- chain registry <- instance <- component <- policy/bundle
60
- return toNftId(0);
90
+ function grantRole(RoleId roleId, address account)
91
+ external
92
+ restricted // INSTANCE_OWNER_ROLE
93
+ {
94
+ _accessManager.grantRole(roleId, account);
61
95
  }
62
96
 
63
- // from registerable
64
- function getType() external pure override returns (ObjectType objectType) {
65
- return INSTANCE();
97
+ function revokeRole(RoleId roleId, address account)
98
+ external
99
+ restricted // INSTANCE_OWNER_ROLE
100
+ {
101
+ _accessManager.revokeRole(roleId, account);
102
+ }
103
+
104
+ //--- Targets ------------------------------------------------------------//
105
+
106
+ function createTarget(address target, string memory name)
107
+ external
108
+ restricted // INSTANCE_OWNER_ROLE
109
+ {
110
+ _accessManager.createTarget(target, name);
66
111
  }
67
112
 
68
- // from registerable
69
- function getData() external pure override returns (bytes memory data) {
70
- return bytes(abi.encode(0));
113
+ function setTargetFunctionRole(
114
+ string memory targetName,
115
+ bytes4[] calldata selectors,
116
+ RoleId roleId
117
+ )
118
+ external
119
+ restricted // INSTANCE_OWNER_ROLE
120
+ {
121
+ _accessManager.setTargetFunctionRole(targetName, selectors, roleId);
71
122
  }
72
- }
123
+
124
+ function setTargetLocked(address target, bool locked)
125
+ external
126
+ restricted // INSTANCE_OWNER_ROLE
127
+ {
128
+ _accessManager.setTargetLockedByInstance(target, locked);
129
+ }
130
+
131
+ //--- ITransferInterceptor ------------------------------------------------------------//
132
+
133
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
134
+ assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
135
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
136
+ }
137
+
138
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
139
+ assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
140
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
141
+ }
142
+
143
+ //--- initial setup functions -------------------------------------------//
144
+
145
+ function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
146
+ if(address(_accessManager) != address(0)) {
147
+ revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
148
+ }
149
+ if(accessManager.authority() != authority()) {
150
+ revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
151
+ }
152
+ _accessManager = accessManager;
153
+ }
154
+
155
+ function setBundleManager(BundleManager bundleManager) external restricted() {
156
+ if(address(_bundleManager) != address(0)) {
157
+ revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
158
+ }
159
+ if(bundleManager.getInstance() != Instance(this)) {
160
+ revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
161
+ }
162
+ if(bundleManager.authority() != authority()) {
163
+ revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
164
+ }
165
+ _bundleManager = bundleManager;
166
+ }
167
+
168
+ function setInstanceReader(InstanceReader instanceReader) external restricted() {
169
+ if(instanceReader.getInstance() != Instance(this)) {
170
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
171
+ }
172
+
173
+ _instanceReader = instanceReader;
174
+ }
175
+
176
+ //--- external view functions -------------------------------------------//
177
+
178
+ function getInstanceReader() external view returns (InstanceReader) {
179
+ return _instanceReader;
180
+ }
181
+
182
+ function getBundleManager() external view returns (BundleManager) {
183
+ return _bundleManager;
184
+ }
185
+
186
+ function getInstanceAccessManager() external view returns (InstanceAccessManager) {
187
+ return _accessManager;
188
+ }
189
+
190
+ function setInstanceStore(InstanceStore instanceStore) external restricted {
191
+ if(address(_instanceStore) != address(0)) {
192
+ revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
193
+ }
194
+ if(instanceStore.authority() != authority()) {
195
+ revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
196
+ }
197
+ _instanceStore = instanceStore;
198
+ }
199
+
200
+ function getInstanceStore() external view returns (InstanceStore) {
201
+ return _instanceStore;
202
+ }
203
+
204
+ function getMajorVersion() external pure returns (VersionPart majorVersion) {
205
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
206
+ }
207
+
208
+ function getDistributionService() external view returns (IDistributionService) {
209
+ return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
210
+ }
211
+
212
+ function getProductService() external view returns (IProductService) {
213
+ return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
214
+ }
215
+
216
+ function getPoolService() external view returns (IPoolService) {
217
+ return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
218
+ }
219
+
220
+ function getPolicyService() external view returns (IPolicyService) {
221
+ return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
222
+ }
223
+
224
+ function getBundleService() external view returns (IBundleService) {
225
+ return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
226
+ }
227
+
228
+ //--- internal view/pure functions --------------------------------------//
229
+ }