@etherisc/gif-next 0.0.2-aa0bd77 → 0.0.2-aaa8646-641

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 (445) hide show
  1. package/README.md +358 -8
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +698 -35
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1345 -0
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +605 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +969 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +1064 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +830 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +1246 -65
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +1014 -60
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +288 -519
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +654 -0
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +530 -594
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
  32. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  33. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  34. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1403 -0
  36. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1025 -0
  38. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +673 -0
  40. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  41. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2663 -0
  42. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  43. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  44. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  45. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +639 -0
  46. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  47. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  48. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
  50. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  51. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
  52. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  53. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  54. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  55. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  56. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  57. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  58. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  60. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  61. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  62. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  63. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  64. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  65. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  66. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  68. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +10 -0
  70. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +902 -0
  72. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +649 -0
  74. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1326 -0
  76. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
  78. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1072 -0
  80. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
  82. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1515 -0
  84. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +757 -0
  86. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +501 -0
  88. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +714 -0
  90. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
  92. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +871 -0
  94. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +969 -0
  96. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +960 -0
  98. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +518 -0
  100. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +450 -0
  102. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1575 -0
  104. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
  106. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1481 -0
  108. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +709 -0
  110. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +988 -0
  112. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +689 -0
  114. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  115. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +872 -0
  116. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +548 -71
  122. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +866 -0
  124. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  126. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/Registry.sol/Registry.json +631 -78
  128. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  130. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1158 -0
  132. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +670 -0
  134. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -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 +138 -0
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +188 -0
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +18 -19
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IService.sol/IService.json +335 -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 +251 -0
  156. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  157. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  158. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +582 -0
  160. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +352 -0
  162. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  163. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -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} +261 -217
  166. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  167. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -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 +383 -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 +596 -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 +209 -0
  192. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  193. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  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 +288 -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 +161 -5
  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 +4 -0
  211. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  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 +4 -0
  223. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  224. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  225. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +280 -0
  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 +231 -40
  235. package/contracts/components/Distribution.sol +284 -0
  236. package/contracts/components/IComponent.sol +76 -0
  237. package/contracts/components/IDistributionComponent.sol +71 -0
  238. package/contracts/components/IPoolComponent.sol +113 -0
  239. package/contracts/components/IProductComponent.sol +40 -0
  240. package/contracts/components/Pool.sol +291 -18
  241. package/contracts/components/Product.sol +341 -32
  242. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  243. package/contracts/instance/BundleManager.sol +126 -0
  244. package/contracts/instance/Cloneable.sol +51 -0
  245. package/contracts/instance/IInstance.sol +75 -15
  246. package/contracts/instance/IInstanceService.sol +80 -0
  247. package/contracts/instance/Instance.sol +218 -44
  248. package/contracts/instance/InstanceAccessManager.sol +541 -0
  249. package/contracts/instance/InstanceAuthorizationsLib.sol +300 -0
  250. package/contracts/instance/InstanceReader.sol +320 -0
  251. package/contracts/instance/InstanceService.sol +309 -0
  252. package/contracts/instance/InstanceServiceManager.sol +54 -0
  253. package/contracts/instance/InstanceStore.sol +208 -0
  254. package/contracts/instance/ObjectManager.sol +82 -0
  255. package/contracts/instance/base/ComponentService.sol +148 -0
  256. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  257. package/contracts/instance/base/ILifecycle.sol +30 -0
  258. package/contracts/instance/base/KeyValueStore.sol +180 -0
  259. package/contracts/instance/base/Lifecycle.sol +117 -0
  260. package/contracts/instance/module/IAccess.sol +54 -0
  261. package/contracts/instance/module/IBundle.sol +23 -0
  262. package/contracts/instance/module/IComponents.sol +41 -0
  263. package/contracts/instance/module/IDistribution.sol +41 -0
  264. package/contracts/instance/module/IPolicy.sol +77 -0
  265. package/contracts/instance/module/IRisk.sol +11 -0
  266. package/contracts/instance/module/ISetup.sol +33 -0
  267. package/contracts/instance/module/ITreasury.sol +23 -0
  268. package/contracts/instance/service/ApplicationService.sol +185 -0
  269. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  270. package/contracts/instance/service/BundleService.sol +440 -0
  271. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  272. package/contracts/instance/service/ClaimService.sol +239 -0
  273. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  274. package/contracts/instance/service/DistributionService.sol +342 -0
  275. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  276. package/contracts/instance/service/IApplicationService.sol +61 -0
  277. package/contracts/instance/service/IBundleService.sol +102 -0
  278. package/contracts/instance/service/IClaimService.sol +92 -0
  279. package/contracts/instance/service/IDistributionService.sol +85 -0
  280. package/contracts/instance/service/IPolicyService.sol +142 -0
  281. package/contracts/instance/service/IPoolService.sol +102 -0
  282. package/contracts/instance/service/IPricingService.sol +36 -0
  283. package/contracts/instance/service/IProductService.sol +40 -0
  284. package/contracts/instance/service/PolicyService.sol +579 -0
  285. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  286. package/contracts/instance/service/PoolService.sol +338 -0
  287. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  288. package/contracts/instance/service/PricingService.sol +275 -0
  289. package/contracts/instance/service/PricingServiceManager.sol +51 -0
  290. package/contracts/instance/service/ProductService.sol +210 -0
  291. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  292. package/contracts/registry/ChainNft.sol +145 -108
  293. package/contracts/registry/IRegistry.sol +82 -49
  294. package/contracts/registry/IRegistryService.sol +68 -0
  295. package/contracts/registry/ITransferInterceptor.sol +7 -0
  296. package/contracts/registry/Registry.sol +403 -112
  297. package/contracts/registry/RegistryAccessManager.sol +216 -0
  298. package/contracts/registry/RegistryService.sol +286 -0
  299. package/contracts/registry/RegistryServiceManager.sol +62 -0
  300. package/contracts/registry/ReleaseManager.sol +324 -0
  301. package/contracts/registry/TokenRegistry.sol +116 -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 +26 -0
  306. package/contracts/shared/IRegisterable.sol +15 -0
  307. package/contracts/shared/IRegistryLinked.sol +12 -0
  308. package/contracts/shared/IService.sol +16 -0
  309. package/contracts/shared/IVersionable.sol +53 -0
  310. package/contracts/shared/NftOwnable.sol +120 -0
  311. package/contracts/shared/PolicyHolder.sol +81 -0
  312. package/contracts/shared/ProxyManager.sol +169 -0
  313. package/contracts/shared/Registerable.sol +74 -0
  314. package/contracts/shared/RegistryLinked.sol +48 -0
  315. package/contracts/shared/Service.sol +72 -0
  316. package/contracts/shared/TokenHandler.sol +33 -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 +70 -0
  329. package/contracts/types/Blocknumber.sol +119 -0
  330. package/contracts/types/ChainId.sol +24 -10
  331. package/contracts/types/ClaimId.sol +75 -0
  332. package/contracts/types/DistributorType.sol +55 -0
  333. package/contracts/types/Fee.sol +64 -0
  334. package/contracts/types/Key32.sol +50 -0
  335. package/contracts/types/NftId.sol +63 -8
  336. package/contracts/types/NftIdSet.sol +62 -0
  337. package/contracts/types/NumberId.sol +52 -0
  338. package/contracts/types/ObjectType.sol +161 -0
  339. package/contracts/types/PayoutId.sol +82 -0
  340. package/contracts/types/Referral.sol +89 -0
  341. package/contracts/types/RiskId.sol +43 -0
  342. package/contracts/types/RoleId.sol +97 -0
  343. package/contracts/types/Seconds.sol +54 -0
  344. package/contracts/types/StateId.sol +110 -0
  345. package/contracts/types/Timestamp.sol +132 -0
  346. package/contracts/types/UFixed.sol +326 -0
  347. package/contracts/types/Version.sol +108 -0
  348. package/package.json +21 -6
  349. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  350. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  351. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  352. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  353. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  354. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  355. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  357. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  359. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  361. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  363. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  365. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  366. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  367. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  368. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  369. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  370. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  371. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  372. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  373. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  374. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  375. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  376. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  377. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  378. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  379. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  380. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  381. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  382. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  383. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  384. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  385. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  386. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  388. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  389. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  390. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  391. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  392. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  393. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  395. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  396. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  397. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  398. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  399. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  400. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  401. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  402. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  403. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  404. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  405. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  406. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  407. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  408. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  409. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  411. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  412. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  413. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  415. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  416. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  417. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  418. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  419. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  420. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  421. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  422. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  423. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  424. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  425. package/contracts/components/IPool.sol +0 -9
  426. package/contracts/components/IProduct.sol +0 -11
  427. package/contracts/experiment/inheritance/A.sol +0 -56
  428. package/contracts/experiment/inheritance/B.sol +0 -23
  429. package/contracts/experiment/inheritance/C.sol +0 -28
  430. package/contracts/experiment/inheritance/IA.sol +0 -18
  431. package/contracts/experiment/inheritance/IB.sol +0 -9
  432. package/contracts/experiment/inheritance/IC.sol +0 -11
  433. package/contracts/experiment/types/TypeA.sol +0 -42
  434. package/contracts/experiment/types/TypeB.sol +0 -24
  435. package/contracts/instance/access/Access.sol +0 -218
  436. package/contracts/instance/access/IAccess.sol +0 -83
  437. package/contracts/instance/component/ComponentModule.sol +0 -259
  438. package/contracts/instance/component/IComponent.sol +0 -94
  439. package/contracts/instance/policy/IPolicy.sol +0 -66
  440. package/contracts/instance/policy/PolicyModule.sol +0 -106
  441. package/contracts/instance/pool/IPoolModule.sol +0 -40
  442. package/contracts/instance/pool/PoolModule.sol +0 -83
  443. package/contracts/instance/product/IProductService.sol +0 -45
  444. package/contracts/instance/product/ProductService.sol +0 -105
  445. package/contracts/registry/IChainNft.sol +0 -18
@@ -0,0 +1,80 @@
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 "./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 ErrorInstanceServiceOzAccessManagerZero();
30
+ error ErrorInstanceServiceInstanceAccessManagerZero();
31
+ error ErrorInstanceServiceInstanceReaderZero();
32
+ error ErrorInstanceServiceBundleManagerZero();
33
+ error ErrorInstanceServiceInstanceStoreZero();
34
+
35
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
36
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
37
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
38
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
39
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
40
+
41
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
42
+ error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
43
+ error ErrorInstanceServiceNotInstance(NftId nftId);
44
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
45
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
46
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
47
+
48
+ event LogInstanceCloned(
49
+ address clonedOzAccessManager,
50
+ address clonedInstanceAccessManager,
51
+ address clonedInstance,
52
+ address clonedInstanceStore,
53
+ address clonedBundleManager,
54
+ address clonedInstanceReader,
55
+ NftId clonedInstanceNftId
56
+ );
57
+
58
+ function createInstanceClone()
59
+ external
60
+ returns (
61
+ AccessManagerUpgradeableInitializeable clonedOzAccessManager,
62
+ InstanceAccessManager clonedInstanceAccessManager,
63
+ Instance clonedInstance,
64
+ NftId instanceNftId,
65
+ InstanceReader clonedInstanceReader,
66
+ BundleManager clonedBundleManager,
67
+ InstanceStore clonedInstanceStore
68
+ );
69
+
70
+ function createGifTarget(
71
+ NftId instanceNftId,
72
+ address targetAddress,
73
+ string memory targetName,
74
+ bytes4[][] memory selectors,
75
+ RoleId[] memory roles
76
+ ) external;
77
+
78
+ function setComponentLocked(bool locked) external;
79
+ }
80
+
@@ -1,63 +1,237 @@
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 {ComponentModule} from "./component/ComponentModule.sol";
9
- import {ProductModule} from "./product/ProductService.sol";
10
- import {PolicyModule} from "./policy/PolicyModule.sol";
11
- import {PoolModule} from "./pool/PoolModule.sol";
17
+ import {Registerable} from "../shared/Registerable.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+
20
+ import {IRegistry} from "../registry/IRegistry.sol";
12
21
 
13
22
  import {IInstance} from "./IInstance.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";
14
42
 
15
43
  contract Instance is
16
- Registerable,
17
- AccessModule,
18
- ComponentModule,
19
- PolicyModule,
20
- PoolModule,
21
- ProductModule,
22
- IInstance
44
+ IInstance,
45
+ AccessManagedUpgradeable,
46
+ Registerable
23
47
  {
48
+ /* error ErrorInstanceInstanceReaderInstanceMismatch(address expectedInstance, address foundInstance);
49
+
50
+ error InstanceErrorBundleManagerAlreadySet();
51
+ error InstanceErrorBundleManagerAuthorityMismatch();
52
+ error InstanceErrorBundleManagerInstanceMismatch(address expectedInstance, address foundInstance);
24
53
 
25
- constructor(
26
- address registry,
27
- address componentOwnerService,
28
- address productService
29
- )
30
- Registerable(registry)
31
- AccessModule()
32
- ComponentModule(componentOwnerService)
33
- PolicyModule(productService)
34
- ProductModule(productService)
35
- PoolModule(productService)
36
- { }
54
+ error InstanceErrorAccessManagerAlreadySet();
55
+ error InstanceErrorAccessManagerAuthorityMismatch();
37
56
 
38
- // from registerable
39
- function register() external override returns(uint256 id) {
40
- require(address(_registry) != address(0), "ERROR:PRD-001:REGISTRY_ZERO");
41
- return _registry.register(address(this));
57
+ error InstanceErrorInstanceStoreAlreadySet();
58
+ error InstanceErrorInstanceStoreAuthorityMismatch();*/
59
+
60
+ uint256 public constant GIF_MAJOR_VERSION = 3;
61
+
62
+ bool private _initialized;
63
+
64
+ InstanceAccessManager internal _accessManager;
65
+ InstanceReader internal _instanceReader;
66
+ BundleManager internal _bundleManager;
67
+ InstanceStore internal _instanceStore;
68
+
69
+ modifier onlyChainNft() {
70
+ if(msg.sender != getRegistry().getChainNftAddress()) {
71
+ revert();
72
+ }
73
+ _;
42
74
  }
43
75
 
44
- // from registerable
45
- function getParentNftId() public view override returns(uint256) {
46
- // TODO add self registry and exchange 0 for_registry.getNftId();
47
- // define parent tree for all registerables
48
- // eg 0 <- chain(mainnet) <- global registry <- chain registry <- instance <- component <- policy/bundle
49
- return 0;
76
+ function initialize(address authority, address registryAddress, address initialOwner)
77
+ external
78
+ initializer()
79
+ {
80
+ __AccessManaged_init(authority);
81
+
82
+ IRegistry registry = IRegistry(registryAddress);
83
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
84
+
85
+ registerInterface(type(IInstance).interfaceId);
50
86
  }
51
87
 
52
- // from registerable
53
- function getType() external view override returns(uint256 objectType) {
54
- return _registry.INSTANCE();
88
+ //--- Roles ------------------------------------------------------------//
89
+
90
+ function createRole(string memory roleName, string memory adminName)
91
+ external
92
+ restricted // INSTANCE_OWNER_ROLE
93
+ returns (RoleId roleId, RoleId admin)
94
+ {
95
+ (roleId, admin) = _accessManager.createRole(roleName, adminName);
55
96
  }
56
97
 
57
- // from registerable
58
- function getData() external view override returns(bytes memory data) {
59
- return bytes(abi.encode(0));
98
+ function grantRole(RoleId roleId, address account)
99
+ external
100
+ restricted // INSTANCE_OWNER_ROLE
101
+ {
102
+ _accessManager.grantRole(roleId, account);
60
103
  }
61
104
 
105
+ function revokeRole(RoleId roleId, address account)
106
+ external
107
+ restricted // INSTANCE_OWNER_ROLE
108
+ {
109
+ _accessManager.revokeRole(roleId, account);
110
+ }
111
+
112
+ //--- Targets ------------------------------------------------------------//
113
+
114
+ function createTarget(address target, string memory name)
115
+ external
116
+ restricted // INSTANCE_OWNER_ROLE
117
+ {
118
+ _accessManager.createTarget(target, name);
119
+ }
120
+
121
+ function setTargetFunctionRole(
122
+ string memory targetName,
123
+ bytes4[] calldata selectors,
124
+ RoleId roleId
125
+ )
126
+ external
127
+ restricted // INSTANCE_OWNER_ROLE
128
+ {
129
+ _accessManager.setTargetFunctionRole(targetName, selectors, roleId);
130
+ }
131
+
132
+ function setTargetLocked(address target, bool locked)
133
+ external
134
+ restricted // INSTANCE_OWNER_ROLE
135
+ {
136
+ _accessManager.setTargetLockedByInstance(target, locked);
137
+ }
138
+
139
+ //--- ITransferInterceptor ------------------------------------------------------------//
140
+
141
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
142
+ assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
143
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
144
+ }
145
+
146
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
147
+ assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
148
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
149
+ }
150
+
151
+ //--- initial setup functions -------------------------------------------//
152
+
153
+ function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
154
+ if(address(_accessManager) != address(0)) {
155
+ revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
156
+ }
157
+ if(accessManager.authority() != authority()) {
158
+ revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
159
+ }
160
+ _accessManager = accessManager;
161
+ }
162
+
163
+ function setBundleManager(BundleManager bundleManager) external restricted() {
164
+ if(address(_bundleManager) != address(0)) {
165
+ revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
166
+ }
167
+ if(bundleManager.getInstance() != Instance(this)) {
168
+ revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
169
+ }
170
+ if(bundleManager.authority() != authority()) {
171
+ revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
172
+ }
173
+ _bundleManager = bundleManager;
174
+ }
175
+
176
+ function setInstanceReader(InstanceReader instanceReader) external restricted() {
177
+ if(instanceReader.getInstance() != Instance(this)) {
178
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
179
+ }
180
+
181
+ _instanceReader = instanceReader;
182
+ }
183
+
184
+ //--- external view functions -------------------------------------------//
185
+
186
+ function getInstanceReader() external view returns (InstanceReader) {
187
+ return _instanceReader;
188
+ }
189
+
190
+ function getBundleManager() external view returns (BundleManager) {
191
+ return _bundleManager;
192
+ }
193
+
194
+ function getInstanceAccessManager() external view returns (InstanceAccessManager) {
195
+ return _accessManager;
196
+ }
197
+
198
+ function setInstanceStore(InstanceStore instanceStore) external restricted {
199
+ if(address(_instanceStore) != address(0)) {
200
+ revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
201
+ }
202
+ if(instanceStore.authority() != authority()) {
203
+ revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
204
+ }
205
+ _instanceStore = instanceStore;
206
+ }
207
+
208
+ function getInstanceStore() external view returns (InstanceStore) {
209
+ return _instanceStore;
210
+ }
211
+
212
+ function getMajorVersion() external pure returns (VersionPart majorVersion) {
213
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
214
+ }
215
+
216
+ function getDistributionService() external view returns (IDistributionService) {
217
+ return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
218
+ }
219
+
220
+ function getProductService() external view returns (IProductService) {
221
+ return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
222
+ }
223
+
224
+ function getPoolService() external view returns (IPoolService) {
225
+ return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
226
+ }
227
+
228
+ function getPolicyService() external view returns (IPolicyService) {
229
+ return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
230
+ }
231
+
232
+ function getBundleService() external view returns (IBundleService) {
233
+ return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
234
+ }
62
235
 
63
- }
236
+ //--- internal view/pure functions --------------------------------------//
237
+ }