@etherisc/gif-next 0.0.2-294e557-752 → 0.0.2-29a3069-699

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 (373) hide show
  1. package/README.md +136 -2
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +814 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +932 -231
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +196 -175
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +739 -22
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +745 -58
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +564 -9
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +802 -251
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +604 -194
  18. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  19. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +783 -0
  20. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  21. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
  22. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  23. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +977 -382
  24. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -165
  26. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  27. package/artifacts/contracts/instance/Instance.sol/Instance.json +877 -1268
  28. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +211 -144
  30. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +122 -260
  32. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +420 -305
  34. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +297 -112
  36. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
  38. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +189 -177
  40. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  44. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  46. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
  48. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  50. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  51. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  53. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  56. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
  58. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  59. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
  60. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1093 -0
  62. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +661 -0
  64. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  65. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
  66. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
  68. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1077 -240
  70. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -79
  72. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
  74. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +630 -0
  76. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  77. package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/service/IClaimService.sol/IClaimService.json} +146 -179
  78. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +596 -184
  80. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +519 -0
  82. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -322
  84. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +38 -414
  86. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1000 -0
  88. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +689 -0
  90. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +264 -419
  92. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +297 -104
  94. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +201 -571
  96. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +286 -125
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +225 -133
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +158 -215
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  106. package/artifacts/contracts/registry/Registry.sol/Registry.json +238 -235
  107. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +202 -318
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +298 -145
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
  115. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -53
  117. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  118. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  119. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  120. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  121. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  122. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  123. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  124. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  125. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  126. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  127. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  128. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IService.sol/IService.json +31 -183
  130. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  132. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  133. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  134. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  135. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  136. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  138. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  140. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  141. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  142. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  143. package/artifacts/contracts/shared/Service.sol/Service.json +127 -170
  144. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  145. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  146. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  147. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  148. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  150. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  152. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  154. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  156. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestService.sol/TestService.json +148 -227
  158. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  161. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  163. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  164. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  165. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  167. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  169. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  170. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  172. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/Fee.sol/FeeLib.json +2 -2
  174. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  176. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  178. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  179. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  180. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  183. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  184. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  185. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  187. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  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/Seconds.sol/SecondsLib.dbg.json +4 -0
  192. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  193. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  195. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
  197. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  199. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  201. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  203. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  204. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  205. package/contracts/components/Component.sol +241 -0
  206. package/contracts/components/Distribution.sol +206 -76
  207. package/contracts/components/IComponent.sol +74 -0
  208. package/contracts/components/IDistributionComponent.sol +44 -9
  209. package/contracts/components/IPoolComponent.sol +88 -37
  210. package/contracts/components/IProductComponent.sol +10 -5
  211. package/contracts/components/Pool.sol +215 -163
  212. package/contracts/components/Product.sol +125 -121
  213. package/contracts/instance/BundleManager.sol +127 -0
  214. package/contracts/instance/Cloneable.sol +46 -0
  215. package/contracts/instance/IInstance.sol +51 -12
  216. package/contracts/instance/IInstanceService.sol +34 -4
  217. package/contracts/instance/Instance.sol +116 -264
  218. package/contracts/instance/InstanceAccessManager.sol +87 -78
  219. package/contracts/instance/InstanceReader.sol +7 -28
  220. package/contracts/instance/InstanceService.sol +399 -107
  221. package/contracts/instance/InstanceServiceManager.sol +6 -9
  222. package/contracts/instance/ObjectManager.sol +84 -0
  223. package/contracts/instance/base/ComponentService.sol +134 -0
  224. package/contracts/instance/base/KeyValueStore.sol +5 -2
  225. package/contracts/instance/base/Lifecycle.sol +11 -2
  226. package/contracts/instance/module/IAccess.sol +27 -18
  227. package/contracts/instance/module/IBundle.sol +2 -1
  228. package/contracts/instance/module/IComponents.sol +35 -0
  229. package/contracts/instance/module/IDistribution.sol +2 -0
  230. package/contracts/instance/module/IPolicy.sol +30 -3
  231. package/contracts/instance/module/ISetup.sol +7 -21
  232. package/contracts/instance/service/ApplicationService.sol +350 -0
  233. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  234. package/contracts/instance/service/BundleService.sol +336 -0
  235. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  236. package/contracts/instance/service/ClaimService.sol +151 -0
  237. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  238. package/contracts/instance/service/DistributionService.sol +334 -28
  239. package/contracts/instance/service/DistributionServiceManager.sol +7 -10
  240. package/contracts/instance/service/IApplicationService.sol +82 -0
  241. package/contracts/instance/service/IBundleService.sol +62 -0
  242. package/contracts/instance/service/IClaimService.sol +61 -0
  243. package/contracts/instance/service/IDistributionService.sol +74 -0
  244. package/contracts/instance/service/IPolicyService.sol +70 -0
  245. package/contracts/instance/service/IPoolService.sol +20 -28
  246. package/contracts/instance/service/IProductService.sol +2 -72
  247. package/contracts/instance/service/PolicyService.sol +410 -0
  248. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  249. package/contracts/instance/service/PoolService.sol +95 -136
  250. package/contracts/instance/service/PoolServiceManager.sol +6 -9
  251. package/contracts/instance/service/ProductService.sol +123 -451
  252. package/contracts/instance/service/ProductServiceManager.sol +2 -2
  253. package/contracts/registry/ChainNft.sol +1 -1
  254. package/contracts/registry/IRegistry.sol +37 -19
  255. package/contracts/registry/IRegistryService.sol +30 -13
  256. package/contracts/registry/Registry.sol +233 -217
  257. package/contracts/registry/RegistryAccessManager.sol +216 -0
  258. package/contracts/registry/RegistryService.sol +96 -171
  259. package/contracts/registry/RegistryServiceManager.sol +21 -39
  260. package/contracts/registry/ReleaseManager.sol +322 -0
  261. package/contracts/registry/TokenRegistry.sol +22 -17
  262. package/contracts/shared/ERC165.sol +14 -12
  263. package/contracts/shared/INftOwnable.sol +11 -10
  264. package/contracts/shared/IPolicyHolder.sol +26 -0
  265. package/contracts/shared/IRegisterable.sol +4 -6
  266. package/contracts/shared/IRegistryLinked.sol +12 -0
  267. package/contracts/shared/IService.sol +4 -1
  268. package/contracts/shared/IVersionable.sol +4 -47
  269. package/contracts/shared/NftOwnable.sol +66 -80
  270. package/contracts/shared/PolicyHolder.sol +81 -0
  271. package/contracts/shared/ProxyManager.sol +100 -25
  272. package/contracts/shared/Registerable.sol +16 -32
  273. package/contracts/shared/RegistryLinked.sol +48 -0
  274. package/contracts/shared/Service.sol +25 -22
  275. package/contracts/shared/TokenHandler.sol +11 -5
  276. package/contracts/shared/Versionable.sol +4 -92
  277. package/contracts/test/TestRegisterable.sol +1 -1
  278. package/contracts/test/TestService.sol +4 -3
  279. package/contracts/types/Blocknumber.sol +1 -0
  280. package/contracts/types/ClaimId.sol +52 -0
  281. package/contracts/types/DistributorType.sol +2 -2
  282. package/contracts/types/Fee.sol +1 -0
  283. package/contracts/types/NftId.sol +8 -0
  284. package/contracts/types/NftIdSet.sol +26 -24
  285. package/contracts/types/ObjectType.sol +10 -5
  286. package/contracts/types/PayoutId.sol +54 -0
  287. package/contracts/types/RoleId.sol +19 -14
  288. package/contracts/types/Seconds.sol +54 -0
  289. package/contracts/types/StateId.sol +1 -0
  290. package/contracts/types/Timestamp.sol +13 -13
  291. package/contracts/types/UFixed.sol +1 -0
  292. package/contracts/types/Version.sol +1 -0
  293. package/package.json +3 -3
  294. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  295. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  296. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  297. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  298. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  299. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  300. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  301. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  302. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  303. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  304. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  305. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  306. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  307. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  308. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  309. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  310. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  311. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  312. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  313. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  314. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  315. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  316. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  317. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  318. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  319. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  320. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  321. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  322. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  323. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  324. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  325. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  327. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  329. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  331. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  333. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  334. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  335. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  337. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  338. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  339. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  340. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  341. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  342. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  343. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  344. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  345. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  346. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  347. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  348. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  349. package/contracts/components/BaseComponent.sol +0 -91
  350. package/contracts/components/IBaseComponent.sol +0 -25
  351. package/contracts/experiment/cloning/Cloner.sol +0 -47
  352. package/contracts/experiment/errors/Require.sol +0 -38
  353. package/contracts/experiment/errors/Revert.sol +0 -44
  354. package/contracts/experiment/inheritance/A.sol +0 -53
  355. package/contracts/experiment/inheritance/B.sol +0 -28
  356. package/contracts/experiment/inheritance/C.sol +0 -34
  357. package/contracts/experiment/inheritance/IA.sol +0 -13
  358. package/contracts/experiment/inheritance/IB.sol +0 -10
  359. package/contracts/experiment/inheritance/IC.sol +0 -12
  360. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  361. package/contracts/experiment/statemachine/ISM.sol +0 -25
  362. package/contracts/experiment/statemachine/SM.sol +0 -57
  363. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  364. package/contracts/experiment/types/TypeA.sol +0 -47
  365. package/contracts/experiment/types/TypeB.sol +0 -29
  366. package/contracts/instance/AccessManagedSimple.sol +0 -115
  367. package/contracts/instance/AccessManagerSimple.sol +0 -692
  368. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  369. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  370. package/contracts/instance/base/IInstanceBase.sol +0 -23
  371. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  372. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  373. package/contracts/shared/RegisterableUpgradable.sol +0 -16
package/README.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # GIF-Next (Generic Insurance Framework, next version)
2
2
 
3
+
4
+ ```mermaid
5
+ graph TD
6
+ IPoolComponent --> IComponent
7
+ IComponent --> IRegisterable
8
+ IComponent --> ITransferInterceptor
9
+ IRegistryService --> IService
10
+ IService-->IRegisterable
11
+ IService-->IVersionable
12
+ IRegisterable-->INftOwnable
13
+ INftOwnable-->IERC165
14
+ ```
15
+
3
16
  ## Add OpenZeppelin V5 Dependencies
4
17
 
5
18
  ```shell
@@ -51,7 +64,7 @@ hh docgen
51
64
  The resulting markdown files are written to `docs`
52
65
 
53
66
 
54
- ### Deployment
67
+ ### Full protocol deployment
55
68
 
56
69
  Install the dependencies before running the script below for the first time.
57
70
 
@@ -81,6 +94,25 @@ Environment variables:
81
94
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
82
95
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
83
96
 
97
+ ### Create a new instance
98
+
99
+ Requires previous step to be completed.
100
+
101
+ ```bash
102
+ # set appropriate values vor env variables (see below)
103
+
104
+ hh run --network <networkname> scripts/new_instance.ts
105
+ ```
106
+
107
+ 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.
108
+ The instance owner will be the 11th address of the wallet.
109
+
110
+ Environment variables:
111
+
112
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
113
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
114
+ - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
115
+
84
116
 
85
117
  ### Console
86
118
 
@@ -373,9 +405,68 @@ Intercepting property
373
405
 
374
406
  ### Product
375
407
 
408
+ ### Payout Handling
409
+
410
+ Pool specifies **retention level**.
411
+ Retention level defines up to which percentage of the sum insured the pool is payout out using its own/current funds.
412
+ Depending on the amount of a new payout the poolService decides to either execute the payout directly or to add the payout as a pending payout with a notification of the pool.
413
+
414
+ The sequence below sketches the small payout flow (payout < retention amount)
415
+ - retention level: 30%
416
+ - sum insured: 1000
417
+ - payout: 200
418
+
419
+ ```mermaid
420
+ sequenceDiagram
421
+ participant customer
422
+ participant product
423
+ participant claimService
424
+ participant poolService
425
+ participant pool
426
+ product->>claimService: createPayout()
427
+ claimService ->> poolService: requestPayout()
428
+ poolService -->> pool: verifyPayout() *
429
+ poolService ->> poolService: processPayout()
430
+ poolService ->> customer: transfer token for payout
431
+ poolService ->> claimService: payoutExecuted()
432
+ poolService -->> customer: payoutExecutedCallback() **
433
+ ```
434
+
435
+ *: if pool is configured to verify payouts before execution
436
+
437
+ **: callback only if customer is contract (IPolicyHolder)
438
+
439
+ The sequence below sketches the call flow for payouts larger than the retention amount
440
+ - retention level: 30%
441
+ - sum insured: 1000
442
+ - payout: 500
443
+ * locally available: 300
444
+ * via policy (re-insurance): 200
445
+
446
+ ```mermaid
447
+ sequenceDiagram
448
+ participant customer
449
+ participant product
450
+ participant claimService
451
+ participant poolService
452
+ participant pool
453
+ pool ->> reinsuranceProduct: applyForPolicy()
454
+ product->>claimService: createPayout()
455
+ claimService ->> poolService: requestPayout()
456
+ poolService ->> pool: pendingPayoutAdded()
457
+ pool ->> pool: getReinsurancePolicy()
458
+ pool ->> reinsuranceProduct: claim()
459
+ reinsuranceProduct -->> reinsurancePool: createPayout
460
+ reinsurancePool ->> pool: transfer token for payout
461
+ reinsurancePool ->> pool: payoutExecutedCallback()
462
+ pool ->> poolService: processPendingPayout()
463
+ poolService ->> customer: transfer token for payout
464
+ poolService ->> claimService: payoutExecuted()
465
+ ```
466
+
376
467
  ### Pool
377
468
 
378
- ### Distribution
469
+ ### Distribution
379
470
 
380
471
  ### Oracle
381
472
 
@@ -419,3 +510,46 @@ Distribution Service
419
510
  - registered via registry service by registry owner
420
511
  - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
421
512
  - registers distributors for registered distribution components via registry service
513
+
514
+ ## Contract Organisation
515
+
516
+ now
517
+
518
+ contracts
519
+ components
520
+ instance
521
+ registry
522
+ shared
523
+ types
524
+
525
+
526
+ contracts
527
+ component
528
+ pool
529
+ Pool.sol
530
+ PoolService.sol
531
+ oracle
532
+ distribution
533
+ product
534
+ Product.sol
535
+ ProductService.sol
536
+ Component.sol
537
+ ComponentService.sol
538
+ instance
539
+ Instance.sol
540
+ InstanceAccessManager.sol
541
+ InstanceReader.sol
542
+ InstanceService.sol
543
+ InstanceServiceManager.sol
544
+ registry
545
+ ChainNft.sol
546
+ Registry.sol
547
+ RegistryService.sol
548
+ RegistryServiceManager.sol
549
+ shared
550
+ Registerable.sol
551
+ RegisterableUpgradable.sol
552
+ type
553
+ NftId.sol
554
+ ObjectType.sol
555
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/7172c659589981b1aa04eda17b72c116.json"
4
+ }