@etherisc/gif-next 0.0.2-053932d-113 → 0.0.2-0620ba8-928

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 (471) hide show
  1. package/README.md +161 -2
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +842 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +964 -192
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → components/IComponent.sol/IComponent.json} +284 -147
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +816 -24
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +883 -127
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +656 -33
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +925 -265
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +712 -159
  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 +247 -1614
  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 +400 -1877
  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 +1289 -0
  36. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1064 -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 +2677 -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/{InstanceBase.sol/InstanceBase.json → ComponentService.sol/ComponentService.json} +250 -187
  46. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  48. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +67 -245
  51. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  53. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  55. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  56. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  57. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/{pool/IPoolModule.sol/IPool.json → IComponents.sol/IComponents.json} +2 -2
  59. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  60. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  61. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  62. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  63. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  64. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  65. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  66. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  67. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  68. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  69. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  70. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1039 -0
  71. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  72. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +673 -0
  73. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  74. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1231 -0
  75. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +721 -0
  77. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  78. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +817 -0
  79. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +641 -0
  81. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1412 -252
  83. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  84. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +801 -0
  85. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  86. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +622 -0
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +659 -0
  89. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  90. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IClaimService.sol/IClaimService.json} +217 -208
  91. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +804 -160
  93. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  94. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +606 -0
  95. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +437 -154
  97. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
  99. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1092 -0
  101. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +697 -0
  103. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +674 -190
  105. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
  107. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +300 -528
  109. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +373 -61
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +223 -229
  117. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  119. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  120. package/artifacts/contracts/registry/Registry.sol/Registry.json +333 -188
  121. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  122. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  123. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +227 -314
  125. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +306 -132
  127. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
  131. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  132. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  133. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  134. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  136. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/IPolicyHolder.sol/IPolicyHolder.json} +69 -57
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  140. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  141. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  142. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  143. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +102 -68
  144. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  146. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  149. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  151. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  154. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  155. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  156. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +185 -170
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  159. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  161. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  162. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  164. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  166. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  167. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  168. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  169. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  170. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  171. package/artifacts/contracts/test/TestService.sol/TestService.json +210 -198
  172. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  173. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  174. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  175. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  176. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -174
  177. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  178. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  179. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  180. package/artifacts/contracts/types/Amount.sol/AmountLib.json +161 -0
  181. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  183. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  185. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  186. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  187. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  188. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  190. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  192. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  194. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  195. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  196. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  198. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  200. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  201. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  202. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  203. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
  204. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  206. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  208. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  210. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  211. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  212. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  214. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  215. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  216. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  217. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  218. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  219. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  220. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  221. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  222. package/contracts/components/Component.sol +253 -0
  223. package/contracts/components/Distribution.sol +204 -79
  224. package/contracts/components/IComponent.sol +76 -0
  225. package/contracts/components/IDistributionComponent.sol +43 -18
  226. package/contracts/components/IPoolComponent.sol +88 -39
  227. package/contracts/components/IProductComponent.sol +12 -9
  228. package/contracts/components/Pool.sol +222 -165
  229. package/contracts/components/Product.sol +133 -139
  230. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  231. package/contracts/instance/BundleManager.sol +127 -0
  232. package/contracts/instance/Cloneable.sol +51 -0
  233. package/contracts/instance/IInstance.sol +47 -39
  234. package/contracts/instance/IInstanceService.sol +84 -0
  235. package/contracts/instance/Instance.sol +183 -67
  236. package/contracts/instance/InstanceAccessManager.sol +540 -0
  237. package/contracts/instance/InstanceAuthorizationsLib.sol +299 -0
  238. package/contracts/instance/InstanceReader.sol +293 -0
  239. package/contracts/instance/InstanceService.sol +320 -0
  240. package/contracts/instance/InstanceServiceManager.sol +54 -0
  241. package/contracts/instance/InstanceStore.sol +219 -0
  242. package/contracts/instance/ObjectManager.sol +82 -0
  243. package/contracts/instance/base/ComponentService.sol +121 -0
  244. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  245. package/contracts/instance/base/ILifecycle.sol +3 -3
  246. package/contracts/instance/base/KeyValueStore.sol +60 -41
  247. package/contracts/instance/base/Lifecycle.sol +12 -3
  248. package/contracts/instance/module/IAccess.sol +54 -0
  249. package/contracts/instance/module/IBundle.sol +23 -0
  250. package/contracts/instance/module/IComponents.sol +41 -0
  251. package/contracts/instance/module/IDistribution.sol +41 -0
  252. package/contracts/instance/module/IPolicy.sol +72 -0
  253. package/contracts/instance/module/IRisk.sol +11 -0
  254. package/contracts/instance/module/ISetup.sol +33 -0
  255. package/contracts/instance/module/ITreasury.sol +23 -0
  256. package/contracts/instance/service/ApplicationService.sol +350 -0
  257. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  258. package/contracts/instance/service/BundleService.sol +431 -0
  259. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  260. package/contracts/instance/service/ClaimService.sol +151 -0
  261. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  262. package/contracts/instance/service/DistributionService.sol +382 -22
  263. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  264. package/contracts/instance/service/IApplicationService.sol +82 -0
  265. package/contracts/instance/service/IBundleService.sol +93 -0
  266. package/contracts/instance/service/IClaimService.sol +61 -0
  267. package/contracts/instance/service/IDistributionService.sol +88 -1
  268. package/contracts/instance/service/IPolicyService.sol +72 -0
  269. package/contracts/instance/service/IPoolService.sol +80 -18
  270. package/contracts/instance/service/IProductService.sol +9 -76
  271. package/contracts/instance/service/PolicyService.sol +363 -0
  272. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  273. package/contracts/instance/service/PoolService.sol +248 -94
  274. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  275. package/contracts/instance/service/ProductService.sol +133 -433
  276. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  277. package/contracts/registry/ChainNft.sol +47 -24
  278. package/contracts/registry/IRegistry.sol +52 -8
  279. package/contracts/registry/IRegistryService.sol +53 -20
  280. package/contracts/registry/ITransferInterceptor.sol +1 -0
  281. package/contracts/registry/Registry.sol +277 -236
  282. package/contracts/registry/RegistryAccessManager.sol +216 -0
  283. package/contracts/registry/RegistryService.sol +114 -273
  284. package/contracts/registry/RegistryServiceManager.sol +24 -26
  285. package/contracts/registry/ReleaseManager.sol +324 -0
  286. package/contracts/registry/TokenRegistry.sol +116 -0
  287. package/contracts/shared/ERC165.sol +14 -8
  288. package/contracts/shared/INftOwnable.sol +11 -10
  289. package/contracts/shared/IPolicyHolder.sol +26 -0
  290. package/contracts/shared/IRegisterable.sol +4 -6
  291. package/contracts/shared/IRegistryLinked.sol +12 -0
  292. package/contracts/shared/IService.sol +16 -0
  293. package/contracts/shared/IVersionable.sol +4 -47
  294. package/contracts/shared/NftOwnable.sol +67 -83
  295. package/contracts/shared/PolicyHolder.sol +81 -0
  296. package/contracts/shared/ProxyManager.sol +100 -25
  297. package/contracts/shared/Registerable.sol +16 -31
  298. package/contracts/shared/RegistryLinked.sol +48 -0
  299. package/contracts/shared/Service.sol +72 -0
  300. package/contracts/shared/TokenHandler.sol +33 -0
  301. package/contracts/shared/Versionable.sol +4 -92
  302. package/contracts/test/TestRegisterable.sol +1 -1
  303. package/contracts/test/TestRoleId.sol +1 -1
  304. package/contracts/test/TestService.sol +6 -7
  305. package/contracts/types/Amount.sol +60 -0
  306. package/contracts/types/Blocknumber.sol +1 -0
  307. package/contracts/types/ClaimId.sol +52 -0
  308. package/contracts/types/DistributorType.sol +55 -0
  309. package/contracts/types/Fee.sol +13 -5
  310. package/contracts/types/Key32.sol +8 -3
  311. package/contracts/types/NftId.sol +8 -0
  312. package/contracts/types/NftIdSet.sol +26 -24
  313. package/contracts/types/NumberId.sol +52 -0
  314. package/contracts/types/ObjectType.sol +40 -14
  315. package/contracts/types/PayoutId.sol +54 -0
  316. package/contracts/types/Referral.sol +89 -0
  317. package/contracts/types/RoleId.sol +67 -15
  318. package/contracts/types/Seconds.sol +54 -0
  319. package/contracts/types/StateId.sol +6 -1
  320. package/contracts/types/Timestamp.sol +17 -13
  321. package/contracts/types/UFixed.sol +1 -0
  322. package/contracts/types/Version.sol +5 -1
  323. package/package.json +3 -3
  324. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  325. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  326. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -254
  327. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  329. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  331. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  333. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  334. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  335. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  337. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  339. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  340. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  341. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  342. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  343. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  344. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  345. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  346. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  347. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  349. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  351. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  352. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  353. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  354. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  356. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  358. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  360. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  362. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  364. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  366. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  367. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  368. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  369. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  370. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  371. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  372. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -421
  373. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  374. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  375. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  376. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  377. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  378. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  379. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  380. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  381. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  382. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  383. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  384. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  385. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  386. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  388. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  389. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  391. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  393. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
  394. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  395. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
  396. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  397. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  398. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  399. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  400. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  401. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  402. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  403. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  404. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  405. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  406. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  407. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  408. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  409. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  410. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  411. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  412. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  413. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  415. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  416. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  417. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  418. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  419. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -557
  420. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  421. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -716
  422. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  423. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -744
  424. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  425. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  426. package/contracts/components/BaseComponent.sol +0 -79
  427. package/contracts/components/IBaseComponent.sol +0 -19
  428. package/contracts/experiment/cloning/Cloner.sol +0 -47
  429. package/contracts/experiment/errors/Require.sol +0 -38
  430. package/contracts/experiment/errors/Revert.sol +0 -44
  431. package/contracts/experiment/inheritance/A.sol +0 -53
  432. package/contracts/experiment/inheritance/B.sol +0 -28
  433. package/contracts/experiment/inheritance/C.sol +0 -34
  434. package/contracts/experiment/inheritance/IA.sol +0 -13
  435. package/contracts/experiment/inheritance/IB.sol +0 -10
  436. package/contracts/experiment/inheritance/IC.sol +0 -12
  437. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  438. package/contracts/experiment/statemachine/ISM.sol +0 -25
  439. package/contracts/experiment/statemachine/SM.sol +0 -57
  440. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  441. package/contracts/experiment/types/TypeA.sol +0 -47
  442. package/contracts/experiment/types/TypeB.sol +0 -29
  443. package/contracts/instance/IInstanceLinked.sol +0 -8
  444. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  445. package/contracts/instance/base/IInstanceBase.sol +0 -23
  446. package/contracts/instance/base/IService.sol +0 -15
  447. package/contracts/instance/base/InstanceBase.sol +0 -89
  448. package/contracts/instance/base/ModuleBase.sol +0 -57
  449. package/contracts/instance/base/ServiceBase.sol +0 -44
  450. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  451. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  452. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  453. package/contracts/instance/module/component/IComponent.sol +0 -28
  454. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  455. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  456. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  457. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  458. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  459. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  460. package/contracts/instance/module/risk/IRisk.sol +0 -26
  461. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  462. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  463. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  464. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  465. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  466. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  467. package/contracts/registry/IChainNft.sol +0 -22
  468. package/contracts/test/TestDistribution.sol +0 -22
  469. package/contracts/test/TestPool.sol +0 -27
  470. package/contracts/test/TestProduct.sol +0 -74
  471. package/contracts/types/ReferralId.sol +0 -48
package/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # gif-next (Generic Insurance Framework next version)
1
+ # GIF-Next (Generic Insurance Framework, next version)
2
+
2
3
 
3
4
  ## Add OpenZeppelin V5 Dependencies
4
5
 
@@ -51,7 +52,7 @@ hh docgen
51
52
  The resulting markdown files are written to `docs`
52
53
 
53
54
 
54
- ### Deployment
55
+ ### Full protocol deployment
55
56
 
56
57
  Install the dependencies before running the script below for the first time.
57
58
 
@@ -81,6 +82,25 @@ Environment variables:
81
82
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
82
83
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
83
84
 
85
+ ### Create a new instance
86
+
87
+ Requires previous step to be completed.
88
+
89
+ ```bash
90
+ # set appropriate values vor env variables (see below)
91
+
92
+ hh run --network <networkname> scripts/new_instance.ts
93
+ ```
94
+
95
+ Currently an HD wallet is expected to be used for the deployment. The mnemonic of the wallet needs to be provided via the `WALLET_MNEMONIC` environment variable.
96
+ The instance owner will be the 11th address of the wallet.
97
+
98
+ Environment variables:
99
+
100
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
101
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
102
+ - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
103
+
84
104
 
85
105
  ### Console
86
106
 
@@ -119,7 +139,11 @@ forge test -vvvv --mt test_decimals
119
139
  # provide gas report for a single test
120
140
  forge test --mt test_decimals --gas-report
121
141
 
142
+ # provide code coverage report
122
143
  forge coverage
144
+ forge coverage --report lcov
145
+
146
+
123
147
  ```
124
148
 
125
149
  Chisel session
@@ -283,6 +307,98 @@ pool_id = pool.getNftId()
283
307
  product_id = product.getNftId()
284
308
  ```
285
309
 
310
+ ## Objects
311
+
312
+ ### Registry
313
+
314
+ Mandatory properties
315
+
316
+ * One registry per chain
317
+ * Global registry: the registry on mainnet
318
+ * One entry per protocol object
319
+ * Once registered object properties are immutable
320
+ * Globally unique NFT minted per protocol object (chain id is embedded in NFT id)
321
+ * Object ownership defined by NFT ownernship
322
+ * Typed objects (instance, product, policy, ...)
323
+ * Each object has parent object (only one exception: protocol object does not have parent object)
324
+ * Parent object type is defined by type of child object
325
+
326
+ Object properties (for smart contracts)
327
+ * Objects that represent a smart contract record its contract address
328
+ * With one exception (see next point) smart contract addresses refer to the address on the same chain as the registry
329
+ * The global registry also holds entries for all the registries on different chains than mainnet, in these cases the addresses refer to the chains of these chain specific registries (this is the only case where registered addresses do not refer to the same chain)
330
+
331
+ Optional properties
332
+
333
+ * Objects can have names
334
+ * Object names are unique per chain
335
+ * Objects may define an intercepting property, in which case a predefined smart contract is involved in NFT transfers of the objects NFT (transfer may trigger actions, transfer may be blocked etc)
336
+ *
337
+
338
+ Ownership property
339
+
340
+ * Object ownership defined by ownership of NFT representing the object
341
+ * Protocol
342
+ * Fixed/predefined owner (address without private key)
343
+ * Registry
344
+ * Allows registration of token and services (per major release)
345
+ * May transfer ownership
346
+ * Token
347
+ * Fixed/predefined owner (address without private key)
348
+ * TODO add whitelisting for token per major release
349
+ * Service
350
+ * Allows upgrades of services as long as major version is same
351
+ * Until further notice the same entity as the registry owner
352
+ * May transfer ownership
353
+ * Instance
354
+ * Granting/revoking of roles (both default + custom)
355
+ * Management of custom roles and targets
356
+ * May lock instance and/or components
357
+ * May transfer ownership
358
+ * Component (Product, Pool, Distribution, Oracle)
359
+ * Register component
360
+ * Set component wallet (which receives fees, holds funds)
361
+ * May lock component
362
+ * May transfer ownership
363
+ * Additional use case specific features
364
+ * Policy
365
+ * Represents policy holder
366
+ * Receive payouts (GIF default behaviour)
367
+ * May transfer ownership
368
+ * Bundle
369
+ * Represents funds owner
370
+ * May withdraw funds not locked by active policies
371
+ * May transfer ownership
372
+ * Distributor
373
+ * Receives commissions from sales (GIF default behaviour)
374
+ * May transfer ownership
375
+
376
+ Intercepting property
377
+ * Service owner is indirectly owner of service manager contract
378
+
379
+ * Instance
380
+ * intercepts transfer of instance owner (new owner needs access manager admin rights for custom roles and targets)
381
+ * intercepts transfer of components, to do what? check that new owner has necessary roles?
382
+ * Product
383
+ * intercepts transfer of policies (use case specific: eg. limit/disallow transfers)
384
+ * Pool:
385
+ * intercepts transfer of bundles (use case specific: eg. limit/disallow transfers)
386
+ * Distribution
387
+ * intercepts transfer of distributors (bookkeeping: only one distributor per address allowed)
388
+ * Oracle
389
+ * likely meaningless
390
+
391
+
392
+ ### Instance
393
+
394
+ ### Product
395
+
396
+ ### Pool
397
+
398
+ ### Distribution
399
+
400
+ ### Oracle
401
+
286
402
  ## Registry and Services
287
403
 
288
404
  ### Principles
@@ -323,3 +439,46 @@ Distribution Service
323
439
  - registered via registry service by registry owner
324
440
  - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
325
441
  - registers distributors for registered distribution components via registry service
442
+
443
+ ## Contract Organisation
444
+
445
+ now
446
+
447
+ contracts
448
+ components
449
+ instance
450
+ registry
451
+ shared
452
+ types
453
+
454
+
455
+ contracts
456
+ component
457
+ pool
458
+ Pool.sol
459
+ PoolService.sol
460
+ oracle
461
+ distribution
462
+ product
463
+ Product.sol
464
+ ProductService.sol
465
+ Component.sol
466
+ ComponentService.sol
467
+ instance
468
+ Instance.sol
469
+ InstanceAccessManager.sol
470
+ InstanceReader.sol
471
+ InstanceService.sol
472
+ InstanceServiceManager.sol
473
+ registry
474
+ ChainNft.sol
475
+ Registry.sol
476
+ RegistryService.sol
477
+ RegistryServiceManager.sol
478
+ shared
479
+ Registerable.sol
480
+ RegisterableUpgradable.sol
481
+ type
482
+ NftId.sol
483
+ ObjectType.sol
484
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/0751760451190278b6b81c6012f4db57.json"
4
+ }