@etherisc/gif-next 0.0.2-f752d2a-551 → 0.0.2-f7b8c9f-518

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 (282) hide show
  1. package/README.md +71 -0
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +417 -88
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +360 -51
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  36. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +913 -530
  38. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  40. package/artifacts/contracts/instance/Instance.sol/Instance.json +1043 -556
  41. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  42. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
  43. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
  45. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  47. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
  50. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +263 -45
  52. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
  54. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  55. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  56. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  58. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
  59. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
  64. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
  67. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
  69. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
  72. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  74. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
  76. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
  78. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -51
  81. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -51
  83. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -14
  86. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
  88. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
  91. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
  93. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +326 -221
  96. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  98. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +326 -221
  100. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +350 -79
  102. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
  104. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
  106. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
  108. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  109. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +235 -50
  110. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  111. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +325 -51
  112. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  113. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +335 -53
  114. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  115. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +466 -71
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
  118. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +298 -39
  122. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
  124. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  126. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/Registry.sol/Registry.json +489 -120
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +997 -0
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +468 -0
  132. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  134. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  135. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  136. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  137. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  140. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  141. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  142. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  144. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  145. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  146. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  148. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  150. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  152. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  153. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  156. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestPool.sol/TestPool.json +417 -88
  158. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +407 -56
  160. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  162. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  164. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestService.sol/TestService.json +267 -62
  166. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  167. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  168. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  169. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  170. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +89 -25
  171. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  172. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  173. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  183. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  185. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  186. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  187. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  189. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  191. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  196. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  197. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  198. package/contracts/components/BaseComponent.sol +12 -21
  199. package/contracts/components/Distribution.sol +155 -0
  200. package/contracts/components/IBaseComponent.sol +2 -2
  201. package/contracts/components/IDistributionComponent.sol +46 -0
  202. package/contracts/components/IPoolComponent.sol +15 -8
  203. package/contracts/components/IProductComponent.sol +26 -8
  204. package/contracts/components/Pool.sol +99 -27
  205. package/contracts/components/Product.sol +204 -22
  206. package/contracts/instance/IInstance.sol +12 -10
  207. package/contracts/instance/Instance.sol +28 -9
  208. package/contracts/instance/base/ComponentServiceBase.sol +13 -6
  209. package/contracts/instance/base/IInstanceBase.sol +11 -2
  210. package/contracts/instance/base/IKeyValueStore.sol +4 -3
  211. package/contracts/instance/base/InstanceBase.sol +19 -10
  212. package/contracts/instance/base/KeyValueStore.sol +12 -7
  213. package/contracts/instance/base/Lifecycle.sol +15 -10
  214. package/contracts/instance/base/ModuleBase.sol +22 -17
  215. package/contracts/instance/base/ServiceBase.sol +20 -13
  216. package/contracts/instance/module/access/Access.sol +3 -3
  217. package/contracts/instance/module/bundle/BundleModule.sol +10 -12
  218. package/contracts/instance/module/bundle/IBundle.sol +6 -11
  219. package/contracts/instance/module/component/ComponentModule.sol +34 -58
  220. package/contracts/instance/module/component/IComponent.sol +7 -32
  221. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  222. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  223. package/contracts/instance/module/policy/IPolicy.sol +13 -10
  224. package/contracts/instance/module/policy/PolicyModule.sol +35 -20
  225. package/contracts/instance/module/pool/IPoolModule.sol +4 -4
  226. package/contracts/instance/module/pool/PoolModule.sol +23 -15
  227. package/contracts/instance/module/risk/IRisk.sol +18 -2
  228. package/contracts/instance/module/risk/RiskModule.sol +56 -2
  229. package/contracts/instance/module/treasury/ITreasury.sol +32 -51
  230. package/contracts/instance/module/treasury/TokenHandler.sol +2 -2
  231. package/contracts/instance/module/treasury/TreasuryModule.sol +68 -89
  232. package/contracts/instance/service/ComponentOwnerService.sol +200 -95
  233. package/contracts/instance/service/DistributionService.sol +54 -0
  234. package/contracts/instance/service/IComponentOwnerService.sol +0 -2
  235. package/contracts/instance/service/IDistributionService.sol +12 -0
  236. package/contracts/instance/service/IPoolService.sol +7 -0
  237. package/contracts/instance/service/IProductService.sol +56 -7
  238. package/contracts/instance/service/PoolService.sol +49 -23
  239. package/contracts/instance/service/ProductService.sol +248 -92
  240. package/contracts/registry/ChainNft.sol +43 -15
  241. package/contracts/registry/IChainNft.sol +3 -2
  242. package/contracts/registry/IRegistry.sol +42 -26
  243. package/contracts/registry/IRegistryService.sol +29 -0
  244. package/contracts/registry/ITransferInterceptor.sol +6 -0
  245. package/contracts/registry/Registry.sol +384 -274
  246. package/contracts/registry/RegistryService.sol +368 -0
  247. package/contracts/registry/RegistryServiceManager.sol +43 -0
  248. package/contracts/shared/ContractDeployerLib.sol +72 -0
  249. package/contracts/shared/ERC165.sol +1 -1
  250. package/contracts/shared/INftOwnable.sol +22 -0
  251. package/contracts/shared/IRegisterable.sol +9 -16
  252. package/contracts/shared/IVersionable.sol +55 -11
  253. package/contracts/shared/NftOwnable.sol +136 -0
  254. package/contracts/shared/ProxyManager.sol +94 -0
  255. package/contracts/shared/Registerable.sol +62 -59
  256. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  257. package/contracts/shared/Versionable.sol +112 -54
  258. package/contracts/test/TestDistribution.sol +22 -0
  259. package/contracts/test/TestPool.sol +7 -2
  260. package/contracts/test/TestProduct.sol +37 -7
  261. package/contracts/test/TestRegisterable.sol +5 -6
  262. package/contracts/test/TestService.sol +5 -11
  263. package/contracts/types/Fee.sol +8 -3
  264. package/contracts/types/ObjectType.sol +24 -8
  265. package/contracts/types/ReferralId.sol +48 -0
  266. package/contracts/types/RiskId.sol +43 -0
  267. package/contracts/types/RoleId.sol +2 -2
  268. package/contracts/types/Version.sol +9 -0
  269. package/package.json +1 -1
  270. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  271. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  272. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  273. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  274. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  275. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  276. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  277. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  278. package/contracts/experiment/statemachine/README.md +0 -112
  279. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  280. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  281. package/contracts/registry/IRegistryLinked.sol +0 -8
  282. package/contracts/shared/IOwnable.sol +0 -6
package/README.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # gif-next (Generic Insurance Framework next version)
2
2
 
3
+ ## Add OpenZeppelin V5 Dependencies
4
+
5
+ ```shell
6
+ forge install openzeppelin-contracts-500=OpenZeppelin/openzeppelin-contracts@v5.0.0
7
+ cd cd lib/openzeppelin-contracts-500
8
+ git checkout tags/v5.0.0
9
+ cd ../..
10
+ ```
11
+
12
+ See `remappings.txt` to see how to work with different OpenZeppelin versions in parallel
13
+
14
+ ```
15
+ cat remappings.txt
16
+ @openzeppelin5/contracts/=lib/openzeppelin-contracts-500/contracts/
17
+ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
18
+ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
19
+ ```
20
+
21
+
3
22
  ## Submodules checkout
4
23
 
5
24
  This repository uses submodules. To checkout or update to the latest submodules, run the following command after updating to any revision (or checking out the repository)
@@ -23,11 +42,22 @@ npm run coverage
23
42
 
24
43
  ### Deployment
25
44
 
45
+ Install the dependencies before running the script below for the first time.
46
+
47
+ ```bash
48
+ npm install
49
+ ```
50
+
26
51
  The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
27
52
 
28
53
  ```bash
29
54
  # run deployment on a locally created ganache instance
55
+ export SKIP_VERIFICATION=true
30
56
  hh run scripts/deploy_all.ts
57
+ ```
58
+
59
+ ```bash
60
+ # set appropriate values vor env variables (see below)
31
61
 
32
62
  # run deployment on another network
33
63
  hh run --network <networkname> scripts/deploy_all.ts
@@ -190,6 +220,7 @@ sudo apt update
190
220
  sudo apt install python3-pip
191
221
  pip install eth-brownie
192
222
  brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
223
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
193
224
  ```
194
225
 
195
226
  ```bash
@@ -241,3 +272,43 @@ pool_id = pool.getNftId()
241
272
  product_id = product.getNftId()
242
273
  ```
243
274
 
275
+ ## Registry and Services
276
+
277
+ ### Principles
278
+
279
+ - 1 service per object type and major version
280
+ - registry service guards write access to registry
281
+ - all other objects registered via registry service
282
+ - root object for the complete tree is the protocol object
283
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
284
+
285
+
286
+ ### Service Responsibilities
287
+
288
+ Registry Service
289
+
290
+ - deployed and registered during bootstrapping of registry
291
+ - used to register tokens and other services by registry owner
292
+ - an object may only be registered by the service designated by the type of the object
293
+ - to register an object the parent object needs already be registered
294
+ - the type of the object to be registered needs to match a valid child type/parent type combination
295
+
296
+ Instance Service
297
+
298
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
299
+ - registered via registry service by registry owner
300
+ - registeres master instance during its own registration by regsitry owner
301
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
302
+ - provides upgrade functionality to instance owners
303
+
304
+ Product Service
305
+
306
+ - registered via registry service by registry owner
307
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
308
+ - registers applications/policies for registered products via registry service
309
+
310
+ Distribution Service
311
+
312
+ - registered via registry service by registry owner
313
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
314
+ - registers distributors for registered distribution components via registry service
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ac8b1a0ba35c3a8a508882d70043ad3f.json"
3
+ "buildInfo": "../../../build-info/012ca89f3ac4e827547ee6f4d256fa06.json"
4
4
  }
@@ -3,10 +3,169 @@
3
3
  "contractName": "BaseComponent",
4
4
  "sourceName": "contracts/components/BaseComponent.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "nftId",
16
+ "type": "uint96"
17
+ }
18
+ ],
19
+ "name": "ErrorAlreadyLinked",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "contractAddress",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "name": "ErrorContractNotRegistered",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "account",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "ErrorNotOwner",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "registryAddress",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorNotRegistry",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "registryAddress",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorRegisterableNotRegistry",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ErrorRegistryAddressZero",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "registry",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorRegistryAlreadyInitialized",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [],
84
+ "name": "ErrorRegistryNotInitialized",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "InvalidInitialization",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "NotInitializing",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint64",
103
+ "name": "version",
104
+ "type": "uint64"
105
+ }
106
+ ],
107
+ "name": "Initialized",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "inputs": [],
112
+ "name": "REGISTERABLE_LOCATION_V1",
113
+ "outputs": [
114
+ {
115
+ "internalType": "bytes32",
116
+ "name": "",
117
+ "type": "bytes32"
118
+ }
119
+ ],
120
+ "stateMutability": "view",
121
+ "type": "function"
122
+ },
6
123
  {
7
124
  "inputs": [],
8
- "name": "getData",
125
+ "name": "getInitialInfo",
9
126
  "outputs": [
127
+ {
128
+ "components": [
129
+ {
130
+ "internalType": "NftId",
131
+ "name": "nftId",
132
+ "type": "uint96"
133
+ },
134
+ {
135
+ "internalType": "NftId",
136
+ "name": "parentNftId",
137
+ "type": "uint96"
138
+ },
139
+ {
140
+ "internalType": "ObjectType",
141
+ "name": "objectType",
142
+ "type": "uint8"
143
+ },
144
+ {
145
+ "internalType": "bool",
146
+ "name": "isInterceptor",
147
+ "type": "bool"
148
+ },
149
+ {
150
+ "internalType": "address",
151
+ "name": "objectAddress",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "internalType": "address",
156
+ "name": "initialOwner",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "internalType": "bytes",
161
+ "name": "data",
162
+ "type": "bytes"
163
+ }
164
+ ],
165
+ "internalType": "struct IRegistry.ObjectInfo",
166
+ "name": "",
167
+ "type": "tuple"
168
+ },
10
169
  {
11
170
  "internalType": "bytes",
12
171
  "name": "data",
@@ -35,7 +194,7 @@
35
194
  "outputs": [
36
195
  {
37
196
  "internalType": "NftId",
38
- "name": "nftId",
197
+ "name": "",
39
198
  "type": "uint96"
40
199
  }
41
200
  ],
@@ -48,33 +207,20 @@
48
207
  "outputs": [
49
208
  {
50
209
  "internalType": "address",
51
- "name": "owner",
210
+ "name": "",
52
211
  "type": "address"
53
212
  }
54
213
  ],
55
214
  "stateMutability": "view",
56
215
  "type": "function"
57
216
  },
58
- {
59
- "inputs": [],
60
- "name": "getParentNftId",
61
- "outputs": [
62
- {
63
- "internalType": "NftId",
64
- "name": "nftId",
65
- "type": "uint96"
66
- }
67
- ],
68
- "stateMutability": "view",
69
- "type": "function"
70
- },
71
217
  {
72
218
  "inputs": [],
73
219
  "name": "getRegistry",
74
220
  "outputs": [
75
221
  {
76
222
  "internalType": "contract IRegistry",
77
- "name": "registry",
223
+ "name": "",
78
224
  "type": "address"
79
225
  }
80
226
  ],
@@ -94,19 +240,6 @@
94
240
  "stateMutability": "view",
95
241
  "type": "function"
96
242
  },
97
- {
98
- "inputs": [],
99
- "name": "getType",
100
- "outputs": [
101
- {
102
- "internalType": "ObjectType",
103
- "name": "objectType",
104
- "type": "uint8"
105
- }
106
- ],
107
- "stateMutability": "pure",
108
- "type": "function"
109
- },
110
243
  {
111
244
  "inputs": [],
112
245
  "name": "getWallet",
@@ -122,21 +255,15 @@
122
255
  },
123
256
  {
124
257
  "inputs": [],
125
- "name": "lock",
258
+ "name": "linkToRegisteredNftId",
126
259
  "outputs": [],
127
260
  "stateMutability": "nonpayable",
128
261
  "type": "function"
129
262
  },
130
263
  {
131
264
  "inputs": [],
132
- "name": "register",
133
- "outputs": [
134
- {
135
- "internalType": "NftId",
136
- "name": "componentId",
137
- "type": "uint96"
138
- }
139
- ],
265
+ "name": "lock",
266
+ "outputs": [],
140
267
  "stateMutability": "nonpayable",
141
268
  "type": "function"
142
269
  },
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/012ca89f3ac4e827547ee6f4d256fa06.json"
4
+ }