@etherisc/gif-next 0.0.2-b244df3-779 → 0.0.2-b38343e-249

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 (309) hide show
  1. package/README.md +73 -1
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +853 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +887 -242
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +160 -100
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +791 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +655 -43
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +654 -5
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +600 -217
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +543 -152
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  33. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  39. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  40. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +38 -62
  41. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  42. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +881 -121
  44. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +168 -166
  46. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/Instance.sol/Instance.json +791 -438
  48. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +118 -173
  50. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +61 -97
  52. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +390 -362
  54. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +299 -130
  56. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  57. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -32
  58. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +188 -168
  60. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
  64. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +24 -13
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  74. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +858 -0
  76. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +657 -0
  78. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +408 -246
  80. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +302 -81
  82. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +743 -0
  84. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
  86. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +443 -192
  88. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +322 -73
  90. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +200 -204
  92. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +170 -217
  94. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  95. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +154 -124
  96. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +197 -163
  98. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +138 -230
  100. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +23 -186
  102. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +29 -192
  104. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +392 -267
  106. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +339 -86
  108. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  109. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +216 -218
  110. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +299 -78
  112. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  113. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +217 -219
  114. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +305 -76
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +225 -133
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +149 -217
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  124. package/artifacts/contracts/registry/Registry.sol/Registry.json +238 -235
  125. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  126. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +195 -322
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +298 -145
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -53
  135. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  138. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  140. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  142. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  144. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +48 -0
  146. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  147. package/artifacts/contracts/shared/IService.sol/IService.json +23 -186
  148. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  149. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  150. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  151. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  152. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  153. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  154. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  155. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  156. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  158. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  159. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  160. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  161. package/artifacts/contracts/shared/Service.sol/Service.json +119 -173
  162. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  163. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  164. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  165. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  167. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  168. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  169. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  170. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  171. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  172. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  173. package/artifacts/contracts/test/TestService.sol/TestService.json +140 -230
  174. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  175. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  176. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  177. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  178. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  179. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  180. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  183. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  184. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  186. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  189. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  191. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  192. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  193. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  196. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  198. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  200. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  202. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  204. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  208. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  210. package/contracts/components/Component.sol +242 -0
  211. package/contracts/components/Distribution.sol +209 -64
  212. package/contracts/components/IComponent.sol +55 -0
  213. package/contracts/components/IDistributionComponent.sol +59 -3
  214. package/contracts/components/IPoolComponent.sol +50 -29
  215. package/contracts/components/IProductComponent.sol +7 -3
  216. package/contracts/components/Pool.sol +135 -152
  217. package/contracts/components/Product.sol +114 -121
  218. package/contracts/instance/BundleManager.sol +7 -11
  219. package/contracts/instance/IInstance.sol +42 -10
  220. package/contracts/instance/IInstanceService.sol +27 -2
  221. package/contracts/instance/Instance.sol +84 -69
  222. package/contracts/instance/InstanceAccessManager.sol +36 -41
  223. package/contracts/instance/InstanceReader.sol +3 -25
  224. package/contracts/instance/InstanceService.sol +271 -79
  225. package/contracts/instance/InstanceServiceManager.sol +6 -9
  226. package/contracts/instance/ObjectManager.sol +7 -24
  227. package/contracts/instance/base/ComponentService.sol +134 -0
  228. package/contracts/instance/module/IAccess.sol +4 -5
  229. package/contracts/instance/module/IPolicy.sol +4 -2
  230. package/contracts/instance/module/ISetup.sol +5 -4
  231. package/contracts/instance/service/ApplicationService.sol +268 -0
  232. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  233. package/contracts/instance/service/BundleService.sol +52 -14
  234. package/contracts/instance/service/BundleServiceManager.sol +6 -9
  235. package/contracts/instance/service/ClaimService.sol +151 -0
  236. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  237. package/contracts/instance/service/DistributionService.sol +208 -49
  238. package/contracts/instance/service/DistributionServiceManager.sol +7 -10
  239. package/contracts/instance/service/IApplicationService.sol +82 -0
  240. package/contracts/instance/service/IBundleService.sol +12 -3
  241. package/contracts/instance/service/IClaimService.sol +61 -0
  242. package/contracts/instance/service/IDistributionService.sol +53 -0
  243. package/contracts/instance/service/IPolicyService.sol +48 -46
  244. package/contracts/instance/service/PolicyService.sol +156 -190
  245. package/contracts/instance/service/PolicyServiceManager.sol +2 -2
  246. package/contracts/instance/service/PoolService.sol +27 -42
  247. package/contracts/instance/service/PoolServiceManager.sol +6 -9
  248. package/contracts/instance/service/ProductService.sol +100 -40
  249. package/contracts/instance/service/ProductServiceManager.sol +2 -2
  250. package/contracts/registry/ChainNft.sol +1 -1
  251. package/contracts/registry/IRegistry.sol +37 -19
  252. package/contracts/registry/IRegistryService.sol +30 -13
  253. package/contracts/registry/Registry.sol +233 -217
  254. package/contracts/registry/RegistryAccessManager.sol +216 -0
  255. package/contracts/registry/RegistryService.sol +96 -171
  256. package/contracts/registry/RegistryServiceManager.sol +21 -39
  257. package/contracts/registry/ReleaseManager.sol +322 -0
  258. package/contracts/registry/TokenRegistry.sol +22 -17
  259. package/contracts/shared/ERC165.sol +14 -12
  260. package/contracts/shared/INftOwnable.sol +11 -10
  261. package/contracts/shared/IPolicyHolder.sol +26 -0
  262. package/contracts/shared/IRegisterable.sol +4 -6
  263. package/contracts/shared/IRegistryLinked.sol +12 -0
  264. package/contracts/shared/IService.sol +2 -1
  265. package/contracts/shared/IVersionable.sol +4 -47
  266. package/contracts/shared/NftOwnable.sol +66 -80
  267. package/contracts/shared/PolicyHolder.sol +81 -0
  268. package/contracts/shared/ProxyManager.sol +100 -25
  269. package/contracts/shared/Registerable.sol +14 -30
  270. package/contracts/shared/RegistryLinked.sol +48 -0
  271. package/contracts/shared/Service.sol +25 -22
  272. package/contracts/shared/Versionable.sol +4 -92
  273. package/contracts/test/TestRegisterable.sol +1 -1
  274. package/contracts/test/TestService.sol +4 -3
  275. package/contracts/types/ClaimId.sol +52 -0
  276. package/contracts/types/DistributorType.sol +2 -2
  277. package/contracts/types/ObjectType.sol +9 -5
  278. package/contracts/types/PayoutId.sol +54 -0
  279. package/contracts/types/RoleId.sol +6 -8
  280. package/package.json +3 -3
  281. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  282. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  283. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  284. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  285. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  286. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  287. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  288. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
  289. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  290. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  291. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  292. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  293. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  294. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  295. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  296. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  297. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  298. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  299. package/contracts/components/BaseComponent.sol +0 -132
  300. package/contracts/components/IBaseComponent.sol +0 -31
  301. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  302. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  303. package/contracts/instance/IInstanceBase.sol +0 -26
  304. package/contracts/instance/InstanceBase.sol +0 -41
  305. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  306. package/contracts/instance/base/IInstanceBase.sol +0 -23
  307. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  308. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  309. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,48 +1,52 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
- import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
7
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
8
5
 
9
- import {IAccess} from "./module/IAccess.sol";
10
- import {IBundle} from "./module/IBundle.sol";
11
- import {IPolicy} from "./module/IPolicy.sol";
12
- import {IRisk} from "./module/IRisk.sol";
13
- import {ISetup} from "./module/ISetup.sol";
14
6
  import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
15
- import {KeyValueStore} from "./base/KeyValueStore.sol";
16
- import {IInstance} from "./IInstance.sol";
17
- import {InstanceReader} from "./InstanceReader.sol";
18
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
19
- import {BundleManager} from "./BundleManager.sol";
20
7
  import {NftId} from "../types/NftId.sol";
8
+ import {ClaimId} from "../types/ClaimId.sol";
21
9
  import {NumberId} from "../types/NumberId.sol";
22
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
23
11
  import {RiskId, RiskIdLib} from "../types/RiskId.sol";
24
12
  import {RoleId, RoleIdLib} from "../types/RoleId.sol";
25
13
  import {StateId, ACTIVE} from "../types/StateId.sol";
26
14
  import {TimestampLib} from "../types/Timestamp.sol";
15
+ import {VersionPart} from "../types/Version.sol";
16
+
27
17
  import {ERC165} from "../shared/ERC165.sol";
28
18
  import {Registerable} from "../shared/Registerable.sol";
29
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
30
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
19
+
20
+ import {IInstance} from "./IInstance.sol";
21
+ import {InstanceReader} from "./InstanceReader.sol";
22
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
23
+ import {BundleManager} from "./BundleManager.sol";
24
+
25
+ import {KeyValueStore} from "./base/KeyValueStore.sol";
26
+
27
+ import {IAccess} from "./module/IAccess.sol";
28
+ import {IBundle} from "./module/IBundle.sol";
29
+ import {IDistribution} from "./module/IDistribution.sol";
30
+ import {IPolicy} from "./module/IPolicy.sol";
31
+ import {IRisk} from "./module/IRisk.sol";
32
+ import {ISetup} from "./module/ISetup.sol";
33
+
31
34
  import {IDistributionService} from "./service/IDistributionService.sol";
32
35
  import {IPoolService} from "./service/IPoolService.sol";
33
36
  import {IProductService} from "./service/IProductService.sol";
34
37
  import {IPolicyService} from "./service/IPolicyService.sol";
35
38
  import {IBundleService} from "./service/IBundleService.sol";
36
- import {VersionPart} from "../types/Version.sol";
37
- import {InstanceBase} from "./InstanceBase.sol";
39
+ import {VersionPart, VersionPartLib} from "../types/Version.sol";
38
40
 
39
41
  contract Instance is
40
- AccessManagedUpgradeable,
41
42
  IInstance,
42
- // Initializable,
43
- InstanceBase
43
+ AccessManagedUpgradeable,
44
+ Registerable,
45
+ KeyValueStore
44
46
  {
45
47
 
48
+ uint256 public constant GIF_MAJOR_VERSION = 3;
49
+
46
50
  uint64 public constant ADMIN_ROLE = type(uint64).min;
47
51
  uint64 public constant PUBLIC_ROLE = type(uint64).max;
48
52
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
@@ -57,18 +61,12 @@ contract Instance is
57
61
 
58
62
  function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
59
63
  public
60
- initializer
64
+ initializer()
61
65
  {
62
- require(!_initialized, "Contract instance has already been initialized");
63
-
64
66
  __AccessManaged_init(accessManagerAddress);
65
-
66
- _accessManager = InstanceAccessManager(accessManagerAddress);
67
67
 
68
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
69
-
70
- _registerInterface(type(IInstance).interfaceId);
71
- _initialized = true;
68
+ initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
69
+ registerInterface(type(IInstance).interfaceId);
72
70
  }
73
71
 
74
72
  //--- ProductSetup ------------------------------------------------------//
@@ -110,43 +108,43 @@ contract Instance is
110
108
  updateState(_toNftKey32(poolNftId, POOL()), newState);
111
109
  }
112
110
 
113
- //--- DistributorType ---------------------------------------------------//
114
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
115
- create(toPolicyKey32(policyNftId), abi.encode(payout));
111
+ //--- DistributorType -------------------------------------------------------//
112
+ function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
113
+ create(distributorKey, abi.encode(info));
116
114
  }
117
115
 
118
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
119
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
116
+ function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
117
+ update(distributorKey, abi.encode(info), newState);
120
118
  }
121
119
 
122
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
123
- updateState(toPolicyKey32(policyNftId), newState);
120
+ function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
121
+ updateState(distributorKey, newState);
124
122
  }
125
123
 
126
124
  //--- Distributor -------------------------------------------------------//
127
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
128
- create(toPolicyKey32(policyNftId), abi.encode(payout));
125
+ function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
126
+ create(toDistributorKey32(nftId), abi.encode(info));
129
127
  }
130
128
 
131
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
132
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
129
+ function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
130
+ update(toDistributorKey32(nftId), abi.encode(info), newState);
133
131
  }
134
132
 
135
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
136
- updateState(toPolicyKey32(policyNftId), newState);
133
+ function updateDistributorState(NftId nftId, StateId newState) external restricted() {
134
+ updateState(toDistributorKey32(nftId), newState);
137
135
  }
138
136
 
139
137
  //--- Referral ----------------------------------------------------------//
140
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
141
- create(toPolicyKey32(policyNftId), abi.encode(payout));
138
+ function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
139
+ create(referralKey, abi.encode(referralInfo));
142
140
  }
143
141
 
144
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
145
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
142
+ function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
143
+ update(referralKey, abi.encode(referralInfo), newState);
146
144
  }
147
145
 
148
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
149
- updateState(toPolicyKey32(policyNftId), newState);
146
+ function updateReferralState(Key32 referralKey, StateId newState) external restricted() {
147
+ updateState(referralKey, newState);
150
148
  }
151
149
 
152
150
  //--- Bundle ------------------------------------------------------------//
@@ -175,11 +173,20 @@ contract Instance is
175
173
  updateState(riskId.toKey32(), newState);
176
174
  }
177
175
 
178
- //--- Policy ------------------------------------------------------------//
179
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
180
- create(toPolicyKey32(policyNftId), abi.encode(policy));
176
+ //--- Application (Policy) ----------------------------------------------//
177
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
178
+ create(toPolicyKey32(applicationNftId), abi.encode(policy));
181
179
  }
182
180
 
181
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
182
+ update(toPolicyKey32(applicationNftId), abi.encode(policy), newState);
183
+ }
184
+
185
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
186
+ updateState(toPolicyKey32(applicationNftId), newState);
187
+ }
188
+
189
+ //--- Policy ------------------------------------------------------------//
183
190
  function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
184
191
  update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
185
192
  }
@@ -189,15 +196,15 @@ contract Instance is
189
196
  }
190
197
 
191
198
  //--- Claim -------------------------------------------------------------//
192
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
199
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
193
200
  create(toPolicyKey32(policyNftId), abi.encode(claim));
194
201
  }
195
202
 
196
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
203
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
197
204
  update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
198
205
  }
199
206
 
200
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
207
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
201
208
  updateState(toPolicyKey32(policyNftId), newState);
202
209
  }
203
210
 
@@ -206,7 +213,7 @@ contract Instance is
206
213
  create(toPolicyKey32(policyNftId), abi.encode(payout));
207
214
  }
208
215
 
209
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
216
+ function updatePayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
210
217
  update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
211
218
  }
212
219
 
@@ -227,46 +234,54 @@ contract Instance is
227
234
  return policyNftId.toKey32(POLICY());
228
235
  }
229
236
 
230
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
231
- return ComponentOwnerService(_registry.getServiceAddress("ComponentOwnerService", VersionPart.wrap(3)));
237
+ function toDistributionKey32(NftId distNftId) public pure returns (Key32) {
238
+ return distNftId.toKey32(DISTRIBUTION());
239
+ }
240
+
241
+ function toDistributorTypeKey32(NftId distNftId) public pure returns (Key32) {
242
+ return distNftId.toKey32(DISTRIBUTOR_TYPE());
232
243
  }
233
244
 
245
+ function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
246
+ return distNftId.toKey32(DISTRIBUTOR());
247
+ }
248
+
234
249
  function getDistributionService() external view returns (IDistributionService) {
235
- return IDistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
250
+ return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
236
251
  }
237
252
 
238
253
  function getProductService() external view returns (IProductService) {
239
- return IProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
254
+ return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
240
255
  }
241
256
 
242
257
  function getPoolService() external view returns (IPoolService) {
243
- return IPoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
258
+ return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
244
259
  }
245
260
 
246
261
  function getPolicyService() external view returns (IPolicyService) {
247
- return IPolicyService(_registry.getServiceAddress("PolicyService", VersionPart.wrap(3)));
262
+ return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
248
263
  }
249
264
 
250
265
  function getBundleService() external view returns (IBundleService) {
251
- return IBundleService(_registry.getServiceAddress("BundleService", VersionPart.wrap(3)));
252
- }
253
-
254
- function getInstanceAccessManager() external view returns (InstanceAccessManager) {
255
- return _accessManager;
266
+ return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
256
267
  }
257
268
 
258
269
  function setInstanceReader(InstanceReader instanceReader) external restricted() {
259
- require(instanceReader.getInstanceNftId() == getNftId(), "NFT ID of InstanceReader does not match");
270
+ require(instanceReader.getInstance() == Instance(this), "InstanceReader instance mismatch");
260
271
  _instanceReader = instanceReader;
261
272
  }
262
273
 
274
+ function getMajorVersion() external pure returns (VersionPart majorVersion) {
275
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
276
+ }
277
+
263
278
  function getInstanceReader() external view returns (InstanceReader) {
264
279
  return _instanceReader;
265
280
  }
266
281
 
267
282
  function setBundleManager(BundleManager bundleManager) external restricted() {
268
283
  require(address(_bundleManager) == address(0), "BundleManager is set");
269
- require(bundleManager.getInstanceNftId() == getNftId(), "NFT ID of BundleManager does not match");
284
+ require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
270
285
  _bundleManager = bundleManager;
271
286
  }
272
287
 
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
4
6
  import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
7
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
7
8
 
8
- import {AccessManagerUpgradeableInitializeable} from "../../contracts/instance/AccessManagerUpgradeableInitializeable.sol";
9
- import {RoleId, RoleIdLib, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, POLICY_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_SERVICE_ROLE } from "../types/RoleId.sol";
9
+ import {RoleId, RoleIdLib } from "../types/RoleId.sol";
10
10
  import {TimestampLib} from "../types/Timestamp.sol";
11
11
  import {IAccess} from "./module/IAccess.sol";
12
12
 
@@ -32,41 +32,23 @@ contract InstanceAccessManager is
32
32
  mapping(ShortString name => address target) internal _targetForName;
33
33
  address [] internal _targets;
34
34
 
35
- AccessManagerUpgradeableInitializeable internal _accessManager;
35
+ AccessManager internal _accessManager;
36
36
 
37
- function __InstanceAccessManager_initialize(address initialAdmin) external initializer
37
+ function initialize(address initialAdmin) external initializer
38
38
  {
39
39
  // if size of the contract gets too large, this can be externalized which will reduce the contract size considerably
40
- _accessManager = new AccessManagerUpgradeableInitializeable();
41
- // this service required adin rights to access manager to be able to grant/revoke roles
42
- _accessManager.__AccessManagerUpgradeableInitializeable_init(address(this));
40
+ _accessManager = new AccessManager(address(this));
41
+ // this service required admin rights to access manager to be able to grant/revoke roles
43
42
  _accessManager.grantRole(_accessManager.ADMIN_ROLE(), initialAdmin, 0);
44
43
 
45
44
  __AccessManaged_init(address(_accessManager));
46
45
 
47
46
  _createRole(RoleIdLib.toRoleId(_accessManager.ADMIN_ROLE()), ADMIN_ROLE_NAME, false, false);
48
47
  _createRole(RoleIdLib.toRoleId(_accessManager.PUBLIC_ROLE()), PUBLIC_ROLE_NAME, false, false);
49
-
50
- createDefaultGifRoles();
51
- }
52
-
53
- function createDefaultGifRoles() public restricted() {
54
- // DISTRIBUTION_OWNER_ROLE
55
- _createRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", false, true);
56
- _createRole(POOL_OWNER_ROLE(), "PoolOwnerRole", false, true);
57
- _createRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", false, true);
58
-
59
- _createRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole", false, true);
60
- _createRole(POOL_SERVICE_ROLE(), "PoolServiceRole", false, true);
61
- _createRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole", false, true);
62
- _createRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole", false, true);
63
- _createRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole", false, true);
64
- _createRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole", false, true);
65
48
  }
66
49
 
67
50
  //--- Role ------------------------------------------------------//
68
-
69
- function createDefaultRole(RoleId roleId, string memory name) external restricted() {
51
+ function createGifRole(RoleId roleId, string memory name) external restricted() {
70
52
  _createRole(roleId, name, false, true);
71
53
  }
72
54
 
@@ -76,7 +58,7 @@ contract InstanceAccessManager is
76
58
 
77
59
  function setRoleLocked(RoleId roleId, bool locked) external restricted() {
78
60
  if (!roleExists(roleId)) {
79
- revert IAccess.ErrorIAccessSetLockedForNonexstentRole(roleId);
61
+ revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
80
62
  }
81
63
 
82
64
  _role[roleId].isLocked = locked;
@@ -89,7 +71,7 @@ contract InstanceAccessManager is
89
71
 
90
72
  function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
91
73
  if (!roleExists(roleId)) {
92
- revert IAccess.ErrorIAccessGrantNonexstentRole(roleId);
74
+ revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
93
75
  }
94
76
 
95
77
  if (_role[roleId].isLocked) {
@@ -167,6 +149,10 @@ contract InstanceAccessManager is
167
149
  }
168
150
 
169
151
  //--- Target ------------------------------------------------------//
152
+ function createGifTarget(address target, string memory name) external restricted() {
153
+ _createTarget(target, name, false, true);
154
+ }
155
+
170
156
  function createTarget(address target, string memory name) external restricted() {
171
157
  _createTarget(target, name, true, true);
172
158
  }
@@ -175,7 +161,7 @@ contract InstanceAccessManager is
175
161
  address target = _targetForName[ShortStrings.toShortString(targetName)];
176
162
 
177
163
  if (target == address(0)) {
178
- revert IAccess.ErrorIAccessSetLockedForNonexstentTarget(target);
164
+ revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
179
165
  }
180
166
 
181
167
  _target[target].isLocked = locked;
@@ -249,6 +235,13 @@ contract InstanceAccessManager is
249
235
  _validateTargetParameters(target, name, isCustom);
250
236
  }
251
237
 
238
+ if (_target[target].createdAt.gtz()) {
239
+ revert IAccess.ErrorIAccessTargetExists(target, _target[target].name);
240
+ }
241
+ if (_targetForName[ShortStrings.toShortString(name)] != address(0)) {
242
+ revert IAccess.ErrorIAccessTargetNameExists(target, _targetForName[ShortStrings.toShortString(name)], ShortStrings.toShortString(name));
243
+ }
244
+
252
245
  IAccess.TargetInfo memory info = IAccess.TargetInfo(
253
246
  ShortStrings.toShortString(name),
254
247
  isCustom,
@@ -265,33 +258,35 @@ contract InstanceAccessManager is
265
258
  // TODO: implement
266
259
  }
267
260
 
268
- function setTargetFunctionRole(
269
- address target,
270
- bytes4[] calldata selectors,
271
- uint64 roleId
272
- ) public virtual restricted() {
273
- _accessManager.setTargetFunctionRole(target, selectors, roleId);
274
- }
275
-
276
261
  function setTargetFunctionRole(
277
262
  string memory targetName,
278
263
  bytes4[] calldata selectors,
279
264
  RoleId roleId
280
265
  ) public virtual restricted() {
281
266
  address target = _targetForName[ShortStrings.toShortString(targetName)];
267
+
268
+ if (target == address(0)) {
269
+ revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
270
+ }
271
+ if (! roleExists(roleId)) {
272
+ revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
273
+ }
282
274
  uint64 roleIdInt = RoleId.unwrap(roleId);
283
275
  _accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
284
276
  }
285
277
 
286
- function getAccessManager() public restricted() returns (AccessManagerUpgradeableInitializeable) {
287
- return _accessManager;
288
- }
289
-
290
278
  function setTargetClosed(string memory targetName, bool closed) public restricted() {
291
279
  address target = _targetForName[ShortStrings.toShortString(targetName)];
280
+ if (target == address(0)) {
281
+ revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
282
+ }
292
283
  _accessManager.setTargetClosed(target, closed);
293
284
  }
294
285
 
286
+ function isTargetLocked(address target) public view returns (bool locked) {
287
+ return _accessManager.isTargetClosed(target);
288
+ }
289
+
295
290
  function canCall(
296
291
  address caller,
297
292
  address target,
@@ -31,39 +31,21 @@ contract InstanceReader {
31
31
  bool private _initialized;
32
32
 
33
33
  IRegistry internal _registry;
34
- NftId internal _instanceNftId;
35
34
  IInstance internal _instance;
36
35
  IKeyValueStore internal _store;
37
36
 
38
- constructor(
39
- address registry,
40
- NftId instanceNftId
41
- )
42
- {
43
- initialize(registry, instanceNftId);
44
- }
45
-
46
- function initialize(address registry, NftId instanceNftId) public {
37
+ function initialize(address registry, address instance) public {
47
38
  require(!_initialized, "ERROR:CRD-000:ALREADY_INITIALIZED");
48
39
 
49
40
  require(
50
41
  address(registry) != address(0),
51
42
  "ERROR:CRD-001:REGISTRY_ZERO");
52
43
 
53
- require(
54
- instanceNftId.gtz(),
55
- "ERROR:CRD-002:NFT_ID_ZERO");
56
44
 
57
45
  _registry = IRegistry(registry);
58
- _instanceNftId = instanceNftId;
59
- IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(_instanceNftId);
60
46
 
61
- require(
62
- instanceInfo.objectType == INSTANCE(),
63
- "ERROR:CRD-003:PARENT_NOT_INSTANCE");
64
-
65
- _instance = IInstance(instanceInfo.objectAddress);
66
- _store = IKeyValueStore(instanceInfo.objectAddress);
47
+ _instance = IInstance(instance);
48
+ _store = IKeyValueStore(instance);
67
49
 
68
50
  _initialized = true;
69
51
  }
@@ -301,10 +283,6 @@ contract InstanceReader {
301
283
  return _store;
302
284
  }
303
285
 
304
- function getInstanceNftId() external view returns (NftId nftId) {
305
- return _instanceNftId;
306
- }
307
-
308
286
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
309
287
  return UFixedLib.toUFixed(value, exp);
310
288
  }