@etherisc/gif-next 0.0.2-984cc08-642 → 0.0.2-989147f-853

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 (495) hide show
  1. package/README.md +8 -13
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +819 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +273 -1592
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -218
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +443 -2515
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +479 -178
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +442 -249
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +413 -390
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -95
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +93 -14
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  48. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  52. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  54. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  56. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +735 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  58. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +291 -276
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  60. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +438 -201
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  62. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  64. package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  66. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  68. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +747 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  70. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  72. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +687 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IApplicationService.sol/IApplicationService.json} +219 -172
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  80. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +182 -302
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +241 -230
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  86. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +239 -169
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +72 -166
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  90. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  92. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +779 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  94. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +727 -0
  97. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  98. package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  100. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +679 -0
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  104. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  106. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +170 -17
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +208 -229
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  111. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/Registry.sol/Registry.json +196 -43
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +50 -97
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +323 -258
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +331 -81
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +397 -81
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +142 -54
  123. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  124. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  125. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  126. package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
  127. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +199 -163
  129. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  131. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +163 -218
  133. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  135. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  136. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
  139. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  140. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  141. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  142. package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
  143. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  146. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -53
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  154. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  155. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  156. package/artifacts/contracts/shared/Service.sol/Service.json +173 -153
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  163. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  164. package/artifacts/contracts/{components/Component.sol/Component.json → staking/IStakingService.sol/IStakingService.json} +219 -194
  165. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  166. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  167. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  168. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  169. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  170. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  171. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  172. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  173. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  174. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  175. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  176. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  177. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  178. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  179. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  180. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  181. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  182. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  183. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  184. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  185. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  186. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  187. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  188. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  189. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  191. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  192. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  193. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  194. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  195. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  197. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  199. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  201. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  202. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  203. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  204. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  205. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  206. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  207. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  208. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  209. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  211. package/contracts/distribution/Distribution.sol +285 -0
  212. package/contracts/distribution/DistributionService.sol +351 -0
  213. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
  214. package/contracts/distribution/IDistributionComponent.sol +71 -0
  215. package/contracts/distribution/IDistributionService.sol +87 -0
  216. package/contracts/instance/BundleManager.sol +15 -14
  217. package/contracts/instance/IInstance.sol +55 -40
  218. package/contracts/instance/IInstanceService.sol +49 -16
  219. package/contracts/instance/Instance.sol +149 -179
  220. package/contracts/instance/InstanceAccessManager.sol +406 -166
  221. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  222. package/contracts/instance/InstanceReader.sol +101 -26
  223. package/contracts/instance/InstanceService.sol +192 -253
  224. package/contracts/instance/InstanceServiceManager.sol +11 -8
  225. package/contracts/instance/InstanceStore.sol +211 -0
  226. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  227. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  228. package/contracts/instance/base/ILifecycle.sol +3 -3
  229. package/contracts/instance/base/KeyValueStore.sol +44 -47
  230. package/contracts/instance/base/Lifecycle.sol +28 -7
  231. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  232. package/contracts/instance/module/IAccess.sol +24 -18
  233. package/contracts/instance/module/IBundle.sol +11 -8
  234. package/contracts/instance/module/IComponents.sol +41 -0
  235. package/contracts/instance/module/IDistribution.sol +7 -4
  236. package/contracts/instance/module/IPolicy.sol +50 -17
  237. package/contracts/instance/module/IRisk.sol +1 -1
  238. package/contracts/instance/module/ISetup.sol +9 -22
  239. package/contracts/instance/module/ITreasury.sol +2 -2
  240. package/contracts/pool/BundleService.sol +384 -0
  241. package/contracts/{instance/service → pool}/BundleServiceManager.sol +15 -12
  242. package/contracts/pool/IBundleService.sol +118 -0
  243. package/contracts/pool/IPoolComponent.sol +114 -0
  244. package/contracts/pool/IPoolService.sol +114 -0
  245. package/contracts/pool/Pool.sol +302 -0
  246. package/contracts/pool/PoolService.sol +416 -0
  247. package/contracts/{instance/service → pool}/PoolServiceManager.sol +15 -12
  248. package/contracts/product/ApplicationService.sol +187 -0
  249. package/contracts/product/ApplicationServiceManager.sol +38 -0
  250. package/contracts/product/ClaimService.sol +443 -0
  251. package/contracts/product/ClaimServiceManager.sol +38 -0
  252. package/contracts/product/IApplicationService.sol +62 -0
  253. package/contracts/product/IClaimService.sol +93 -0
  254. package/contracts/product/IPolicyService.sol +80 -0
  255. package/contracts/product/IPricingService.sol +37 -0
  256. package/contracts/product/IProductComponent.sol +41 -0
  257. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  258. package/contracts/product/PolicyService.sol +378 -0
  259. package/contracts/{instance/service → product}/PolicyServiceManager.sol +16 -13
  260. package/contracts/product/PricingService.sol +276 -0
  261. package/contracts/product/PricingServiceManager.sol +42 -0
  262. package/contracts/product/Product.sol +379 -0
  263. package/contracts/product/ProductService.sol +212 -0
  264. package/contracts/{instance/service → product}/ProductServiceManager.sol +16 -13
  265. package/contracts/registry/ChainNft.sol +8 -0
  266. package/contracts/registry/IRegistry.sol +36 -21
  267. package/contracts/registry/IRegistryService.sol +33 -32
  268. package/contracts/registry/ITransferInterceptor.sol +1 -0
  269. package/contracts/registry/Registry.sol +160 -89
  270. package/contracts/registry/RegistryAccessManager.sol +51 -129
  271. package/contracts/registry/RegistryService.sol +79 -165
  272. package/contracts/registry/RegistryServiceManager.sol +28 -18
  273. package/contracts/registry/ReleaseManager.sol +235 -197
  274. package/contracts/registry/TokenRegistry.sol +21 -15
  275. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  276. package/contracts/shared/Component.sol +271 -0
  277. package/contracts/shared/ComponentService.sol +141 -0
  278. package/contracts/shared/ERC165.sol +14 -12
  279. package/contracts/shared/IComponent.sol +90 -0
  280. package/contracts/shared/INftOwnable.sol +12 -11
  281. package/contracts/shared/IPolicyHolder.sol +40 -0
  282. package/contracts/shared/IRegisterable.sol +4 -4
  283. package/contracts/shared/IRegistryLinked.sol +11 -0
  284. package/contracts/shared/IService.sol +6 -4
  285. package/contracts/shared/IVersionable.sol +5 -48
  286. package/contracts/shared/NftOwnable.sol +64 -82
  287. package/contracts/shared/PolicyHolder.sol +94 -0
  288. package/contracts/shared/ProxyManager.sol +126 -25
  289. package/contracts/shared/Registerable.sol +26 -41
  290. package/contracts/shared/RegistryLinked.sol +43 -0
  291. package/contracts/shared/Service.sol +33 -21
  292. package/contracts/shared/TokenHandler.sol +14 -6
  293. package/contracts/shared/Versionable.sol +4 -92
  294. package/contracts/staking/IStakingService.sol +102 -0
  295. package/contracts/staking/StakingService.sol +169 -0
  296. package/contracts/staking/StakingServiceManager.sol +40 -0
  297. package/contracts/type/Amount.sol +109 -0
  298. package/contracts/{types → type}/Blocknumber.sol +1 -0
  299. package/contracts/type/ClaimId.sol +75 -0
  300. package/contracts/{types → type}/DistributorType.sol +2 -2
  301. package/contracts/{types → type}/Fee.sol +17 -8
  302. package/contracts/{types → type}/NftId.sol +8 -0
  303. package/contracts/{types → type}/NftIdSet.sol +1 -1
  304. package/contracts/{types → type}/ObjectType.sol +17 -7
  305. package/contracts/type/PayoutId.sol +82 -0
  306. package/contracts/{types → type}/Referral.sol +4 -0
  307. package/contracts/type/RoleId.sol +139 -0
  308. package/contracts/type/Seconds.sol +54 -0
  309. package/contracts/{types → type}/StateId.sol +7 -2
  310. package/contracts/{types → type}/Timestamp.sol +18 -13
  311. package/contracts/{types → type}/UFixed.sol +1 -0
  312. package/contracts/{types → type}/Version.sol +1 -0
  313. package/package.json +3 -3
  314. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  315. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  316. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  317. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -413
  318. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  319. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  320. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  321. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  322. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  323. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  324. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  325. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  327. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  328. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  329. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  330. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  331. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  332. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  333. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  334. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  335. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  336. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  337. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  338. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  340. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  342. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  344. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  346. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  349. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  351. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  353. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  355. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  357. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  359. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  361. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  363. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  365. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  366. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  367. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  368. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  369. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -619
  370. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  371. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  372. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  373. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  374. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  375. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  376. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  377. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  378. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1094
  379. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  381. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  382. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -764
  383. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  384. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  385. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  386. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  388. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  389. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  390. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  391. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1219
  392. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  393. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  394. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  395. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -798
  396. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  397. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  398. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  399. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -848
  400. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  401. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  402. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  403. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  404. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  405. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  406. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  407. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  408. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  409. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  410. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  411. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  412. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  413. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  414. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  415. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  416. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  417. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  418. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  419. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  420. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  421. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  422. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  423. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  424. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  425. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  426. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  427. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  428. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  429. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  430. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  431. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  432. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  433. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  434. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  435. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  436. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  437. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  438. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  439. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  440. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  441. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  442. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  443. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  444. package/contracts/components/Component.sol +0 -177
  445. package/contracts/components/Distribution.sol +0 -154
  446. package/contracts/components/IComponent.sol +0 -37
  447. package/contracts/components/IDistributionComponent.sol +0 -44
  448. package/contracts/components/IPoolComponent.sol +0 -66
  449. package/contracts/components/IProductComponent.sol +0 -35
  450. package/contracts/components/Pool.sol +0 -258
  451. package/contracts/components/Product.sol +0 -295
  452. package/contracts/experiment/cloning/Cloner.sol +0 -47
  453. package/contracts/experiment/errors/Require.sol +0 -38
  454. package/contracts/experiment/errors/Revert.sol +0 -44
  455. package/contracts/experiment/inheritance/A.sol +0 -53
  456. package/contracts/experiment/inheritance/B.sol +0 -28
  457. package/contracts/experiment/inheritance/C.sol +0 -34
  458. package/contracts/experiment/inheritance/IA.sol +0 -13
  459. package/contracts/experiment/inheritance/IB.sol +0 -10
  460. package/contracts/experiment/inheritance/IC.sol +0 -12
  461. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  462. package/contracts/experiment/statemachine/ISM.sol +0 -25
  463. package/contracts/experiment/statemachine/SM.sol +0 -57
  464. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  465. package/contracts/experiment/types/TypeA.sol +0 -47
  466. package/contracts/experiment/types/TypeB.sol +0 -29
  467. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  468. package/contracts/instance/IInstanceBase.sol +0 -27
  469. package/contracts/instance/InstanceBase.sol +0 -38
  470. package/contracts/instance/base/ComponentService.sol +0 -133
  471. package/contracts/instance/base/IInstanceBase.sol +0 -21
  472. package/contracts/instance/service/BundleService.sol +0 -293
  473. package/contracts/instance/service/DistributionService.sol +0 -115
  474. package/contracts/instance/service/IBundleService.sol +0 -44
  475. package/contracts/instance/service/IDistributionService.sol +0 -12
  476. package/contracts/instance/service/IPolicyService.sol +0 -94
  477. package/contracts/instance/service/IPoolService.sol +0 -20
  478. package/contracts/instance/service/PolicyService.sol +0 -538
  479. package/contracts/instance/service/PoolService.sol +0 -142
  480. package/contracts/instance/service/ProductService.sol +0 -241
  481. package/contracts/shared/ContractDeployerLib.sol +0 -72
  482. package/contracts/test/TestFee.sol +0 -25
  483. package/contracts/test/TestRegisterable.sol +0 -18
  484. package/contracts/test/TestRoleId.sol +0 -14
  485. package/contracts/test/TestService.sol +0 -25
  486. package/contracts/test/TestToken.sol +0 -26
  487. package/contracts/test/TestVersion.sol +0 -44
  488. package/contracts/test/TestVersionable.sol +0 -17
  489. package/contracts/test/Usdc.sol +0 -26
  490. package/contracts/types/ChainId.sol +0 -38
  491. package/contracts/types/NumberId.sol +0 -52
  492. package/contracts/types/RoleId.sol +0 -90
  493. /package/contracts/{types → type}/AddressSet.sol +0 -0
  494. /package/contracts/{types → type}/Key32.sol +0 -0
  495. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,258 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {POOL} from "../types/ObjectType.sol";
5
- import {IPoolService} from "../instance/service/IPoolService.sol";
6
- import {IBundleService} from "../instance/service/IBundleService.sol";
7
- import {NftId, NftIdLib} from "../types/NftId.sol";
8
- import {Fee} from "../types/Fee.sol";
9
- import {UFixed} from "../types/UFixed.sol";
10
- import {IPoolComponent} from "./IPoolComponent.sol";
11
- import {Component} from "./Component.sol";
12
- import {TokenHandler} from "../shared/TokenHandler.sol";
13
- import {ISetup} from "../instance/module/ISetup.sol";
14
-
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
-
17
- import {ISetup} from "../instance/module/ISetup.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
19
-
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
- import {Registerable} from "../shared/Registerable.sol";
22
-
23
- abstract contract Pool is Component, IPoolComponent {
24
- using NftIdLib for NftId;
25
-
26
- bool internal _isConfirmingApplication;
27
- UFixed internal _collateralizationLevel;
28
-
29
- Fee internal _initialPoolFee;
30
- Fee internal _initialStakingFee;
31
- Fee internal _initialPerformanceFee;
32
-
33
- TokenHandler internal _tokenHandler;
34
-
35
- // may be used to interact with instance by derived contracts
36
- IPoolService internal _poolService;
37
- IBundleService private _bundleService;
38
-
39
- modifier onlyPoolService() {
40
- require(
41
- msg.sender == address(_poolService),
42
- "ERROR:POL-001:NOT_POOL_SERVICE");
43
- _;
44
- }
45
-
46
- constructor(
47
- address registry,
48
- NftId instanceNftId,
49
- // TODO refactor into tokenNftId
50
- address token,
51
- bool isInterceptor,
52
- bool isConfirmingApplication,
53
- UFixed collateralizationLevel,
54
- Fee memory poolFee,
55
- Fee memory stakingFee,
56
- Fee memory performanceFee,
57
- address initialOwner
58
- )
59
- Component(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner)
60
- {
61
- _isConfirmingApplication = isConfirmingApplication;
62
- // TODO add validation
63
- _collateralizationLevel = collateralizationLevel;
64
- _initialPoolFee = poolFee;
65
- _initialStakingFee = stakingFee;
66
- _initialPerformanceFee = performanceFee;
67
-
68
- _tokenHandler = new TokenHandler(token);
69
-
70
- _poolService = _instance.getPoolService();
71
- // _productService = _instance.getProductService();
72
- _bundleService = _instance.getBundleService();
73
-
74
- _registerInterface(type(IPoolComponent).interfaceId);
75
- }
76
-
77
- function createBundle(
78
- Fee memory fee,
79
- uint256 initialAmount,
80
- uint256 lifetime,
81
- bytes memory filter
82
- )
83
- external
84
- virtual override
85
- returns(NftId bundleNftId)
86
- {
87
- address owner = msg.sender;
88
- bundleNftId = _bundleService.createBundle(
89
- owner,
90
- fee,
91
- initialAmount,
92
- lifetime,
93
- filter
94
- );
95
-
96
- // TODO add logging
97
- }
98
-
99
- /**
100
- * @dev see {IPool.underwrite}.
101
- * Default implementation that only writes a {LogUnderwrittenByPool} entry.
102
- */
103
- function underwrite(
104
- NftId policyNftId,
105
- bytes memory policyData,
106
- bytes memory bundleFilter,
107
- uint256 collateralizationAmount
108
- )
109
- external
110
- onlyProductService
111
- virtual override
112
- {
113
- _underwrite(policyNftId, policyData, bundleFilter, collateralizationAmount);
114
- }
115
-
116
- /**
117
- * @dev see {IPoolComponent.policyMatchesBundle}.
118
- * Default implementation always returns true
119
- */
120
- function policyMatchesBundle(
121
- bytes memory, // policyData
122
- bytes memory // bundleFilter
123
- )
124
- public
125
- view
126
- virtual override
127
- returns (bool isMatching)
128
- {
129
- return true;
130
- }
131
-
132
-
133
- function isConfirmingApplication() external view override returns (bool isConfirmingApplication) {
134
- return _isConfirmingApplication;
135
- }
136
-
137
- function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
138
- return _collateralizationLevel;
139
- }
140
-
141
- function setFees(
142
- Fee memory poolFee,
143
- Fee memory stakingFee,
144
- Fee memory performanceFee
145
- )
146
- external
147
- onlyOwner
148
- override
149
- {
150
- _poolService.setFees(poolFee, stakingFee, performanceFee);
151
- }
152
-
153
- function setBundleFee(
154
- NftId bundleNftId,
155
- Fee memory fee
156
- )
157
- external
158
- override
159
- // TODO add onlyBundleOwner
160
- {
161
- _bundleService.setBundleFee(bundleNftId, fee);
162
- }
163
-
164
- function lockBundle(
165
- NftId bundleNftId
166
- )
167
- external
168
- override
169
- // TODO add onlyBundleOwner
170
- {
171
- _bundleService.lockBundle(bundleNftId);
172
- }
173
-
174
- function unlockBundle(
175
- NftId bundleNftId
176
- )
177
- external
178
- override
179
- // TODO add onlyBundleOwner
180
- {
181
- _bundleService.unlockBundle(bundleNftId);
182
- }
183
-
184
- function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
185
- InstanceReader reader = _instance.getInstanceReader();
186
- return reader.getPoolSetupInfo(getNftId());
187
- }
188
-
189
- // from IRegisterable
190
-
191
- // TODO used only once, occupies space
192
- // TODO do not use super
193
- function getInitialInfo()
194
- public
195
- view
196
- override (IRegisterable, Registerable)
197
- returns (IRegistry.ObjectInfo memory, bytes memory)
198
- {
199
- (
200
- IRegistry.ObjectInfo memory info,
201
- ) = super.getInitialInfo();
202
-
203
- return (
204
- info,
205
- abi.encode(
206
- getName(),
207
- ISetup.PoolSetupInfo(
208
- _productNftId,
209
- _tokenHandler,
210
- _collateralizationLevel,
211
- _initialPoolFee,
212
- _initialStakingFee,
213
- _initialPerformanceFee,
214
- false,
215
- _isConfirmingApplication,
216
- _wallet
217
- )
218
- )
219
- );
220
- }
221
-
222
- // Internals
223
-
224
- function _underwrite(
225
- NftId policyNftId,
226
- bytes memory policyData,
227
- bytes memory bundleFilter,
228
- uint256 collateralizationAmount
229
- )
230
- internal
231
- {
232
- require(
233
- policyMatchesBundle(policyData, bundleFilter),
234
- "ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
235
- );
236
-
237
- emit LogUnderwrittenByPool(policyNftId, collateralizationAmount, address(this));
238
- }
239
-
240
- function _createBundle(
241
- address bundleOwner,
242
- Fee memory fee,
243
- uint256 amount,
244
- uint256 lifetime,
245
- bytes calldata filter
246
- )
247
- internal
248
- returns(NftId bundleNftId)
249
- {
250
- bundleNftId = _bundleService.createBundle(
251
- bundleOwner,
252
- fee,
253
- amount,
254
- lifetime,
255
- filter
256
- );
257
- }
258
- }
@@ -1,295 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRisk} from "../instance/module/IRisk.sol";
7
- import {IPolicyService} from "../instance/service/IPolicyService.sol";
8
- import {IProductComponent} from "./IProductComponent.sol";
9
- import {NftId, NftIdLib} from "../types/NftId.sol";
10
- import {PRODUCT} from "../types/ObjectType.sol";
11
- import {ReferralId} from "../types/Referral.sol";
12
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
13
- import {StateId} from "../types/StateId.sol";
14
- import {Timestamp} from "../types/Timestamp.sol";
15
- import {Fee} from "../types/Fee.sol";
16
- import {Component} from "./Component.sol";
17
-
18
- import {IRegistry} from "../registry/IRegistry.sol";
19
- import {IRegisterable} from "../shared/IRegisterable.sol";
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {TokenHandler} from "../shared/TokenHandler.sol";
22
-
23
- import {InstanceReader} from "../instance/InstanceReader.sol";
24
- import {ISetup} from "../instance/module/ISetup.sol";
25
- import {Pool} from "../components/Pool.sol";
26
- import {Distribution} from "../components/Distribution.sol";
27
-
28
- abstract contract Product is Component, IProductComponent {
29
- using NftIdLib for NftId;
30
-
31
- IPolicyService internal _policyService;
32
- Pool internal _pool;
33
- Distribution internal _distribution;
34
- Fee internal _initialProductFee;
35
- Fee internal _initialProcessingFee;
36
- TokenHandler internal _tokenHandler;
37
-
38
- NftId internal _poolNftId;
39
- NftId internal _distributionNftId;
40
-
41
- constructor(
42
- address registry,
43
- NftId instanceNftid,
44
- address token,
45
- bool isInterceptor,
46
- address pool,
47
- address distribution,
48
- Fee memory productFee,
49
- Fee memory processingFee,
50
- address initialOwner
51
- ) Component(registry, instanceNftid, token, PRODUCT(), isInterceptor, initialOwner) {
52
- // TODO add validation
53
- _policyService = _instance.getPolicyService();
54
- _pool = Pool(pool);
55
- _distribution = Distribution(distribution);
56
- _initialProductFee = productFee;
57
- _initialProcessingFee = processingFee;
58
-
59
- _tokenHandler = new TokenHandler(token);
60
-
61
- _poolNftId = getRegistry().getNftId(address(_pool));
62
- _distributionNftId = getRegistry().getNftId(address(_distribution));
63
-
64
- _registerInterface(type(IProductComponent).interfaceId);
65
- }
66
-
67
-
68
- function calculatePremium(
69
- uint256 sumInsuredAmount,
70
- RiskId riskId,
71
- uint256 lifetime,
72
- bytes memory applicationData,
73
- NftId bundleNftId,
74
- ReferralId referralId
75
- )
76
- external
77
- view
78
- override
79
- returns (uint256 premiumAmount)
80
- {
81
- (premiumAmount,,,,) = _policyService.calculatePremium(
82
- riskId,
83
- sumInsuredAmount,
84
- lifetime,
85
- applicationData,
86
- bundleNftId,
87
- referralId
88
- );
89
- }
90
-
91
-
92
- function calculateNetPremium(
93
- uint256 sumInsuredAmount,
94
- RiskId riskId,
95
- uint256 lifetime,
96
- bytes memory applicationData
97
- )
98
- external
99
- view
100
- virtual override
101
- returns (uint256 netPremiumAmount)
102
- {
103
- // default 10% of sum insured
104
- return sumInsuredAmount / 10;
105
- }
106
-
107
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
108
- return RiskIdLib.toRiskId(riskName);
109
- }
110
-
111
- function _createRisk(
112
- RiskId id,
113
- bytes memory data
114
- ) internal {
115
- _productService.createRisk(
116
- id,
117
- data
118
- );
119
- }
120
-
121
- function _updateRisk(
122
- RiskId id,
123
- bytes memory data
124
- ) internal {
125
- _productService.updateRisk(
126
- id,
127
- data
128
- );
129
- }
130
-
131
- function _updateRiskState(
132
- RiskId id,
133
- StateId state
134
- ) internal {
135
- _productService.updateRiskState(
136
- id,
137
- state
138
- );
139
- }
140
-
141
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
142
- return _instance.getInstanceReader().getRiskInfo(id);
143
- }
144
-
145
- function _createApplication(
146
- address applicationOwner,
147
- RiskId riskId,
148
- uint256 sumInsuredAmount,
149
- uint256 lifetime,
150
- bytes memory applicationData,
151
- NftId bundleNftId,
152
- ReferralId referralId
153
- ) internal returns (NftId nftId) {
154
- nftId = _policyService.createApplication(
155
- applicationOwner,
156
- riskId,
157
- sumInsuredAmount,
158
- lifetime,
159
- applicationData,
160
- bundleNftId,
161
- referralId
162
- );
163
- }
164
-
165
- function _underwrite(
166
- NftId policyNftId,
167
- bool requirePremiumPayment,
168
- Timestamp activateAt
169
- )
170
- internal
171
- {
172
- _policyService.underwrite(
173
- policyNftId,
174
- requirePremiumPayment,
175
- activateAt);
176
- }
177
-
178
- function _collectPremium(
179
- NftId policyNftId,
180
- Timestamp activateAt
181
- )
182
- internal
183
- {
184
- _policyService.collectPremium(
185
- policyNftId,
186
- activateAt);
187
- }
188
-
189
- function _activate(
190
- NftId policyNftId,
191
- Timestamp activateAt
192
- )
193
- internal
194
- {
195
- _policyService.activate(
196
- policyNftId,
197
- activateAt);
198
- }
199
-
200
- function _close(
201
- NftId policyNftId
202
- )
203
- internal
204
- {
205
- _policyService.close(policyNftId);
206
- }
207
-
208
- function getPoolNftId() external view override returns (NftId poolNftId) {
209
- return getRegistry().getNftId(address(_pool));
210
- }
211
-
212
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
213
- return getRegistry().getNftId(address(_distribution));
214
- }
215
-
216
- // from product component
217
- function setFees(
218
- Fee memory productFee,
219
- Fee memory processingFee
220
- )
221
- external
222
- onlyOwner
223
- override
224
- {
225
- _productService.setFees(productFee, processingFee);
226
- }
227
-
228
- function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
229
- InstanceReader reader = _instance.getInstanceReader();
230
- return reader.getProductSetupInfo(getNftId());
231
- }
232
-
233
- // from IRegisterable
234
-
235
- function getInitialInfo()
236
- public
237
- view
238
- override (IRegisterable, Registerable)
239
- returns (IRegistry.ObjectInfo memory, bytes memory)
240
- {
241
- // from Registerable
242
- (
243
- IRegistry.ObjectInfo memory productInfo,
244
- bytes memory data
245
- ) = super.getInitialInfo();
246
-
247
- // TODO read pool & distribution fees
248
- // 1) from pool -> the only option -> pool must be registered first?
249
- // 2) from instance -> all fees are set into instance at product registration which is ongoing here
250
- // checks are done in registryProduct() where THIS function is called
251
- //require(getRegistry().getObjectInfo(_poolNftId).objectType == POOL(), "POOL_NOT_REGISTERED");
252
- //require(getRegistry().getObjectInfo(_distributionNftId).objectType == DISTRIBUTION(), "DISTRIBUTION_NOT_REGISTERED");
253
-
254
- // from PoolComponent
255
- (
256
- ,
257
- bytes memory poolData
258
- ) = _pool.getInitialInfo();
259
-
260
- (
261
- , ISetup.PoolSetupInfo memory poolSetupInfo
262
- ) = abi.decode(poolData, (string, ISetup.PoolSetupInfo));
263
-
264
- // from DistributionComponent
265
- (
266
- ,
267
- bytes memory distributionData
268
- ) = _distribution.getInitialInfo();
269
-
270
- (
271
- , ISetup.DistributionSetupInfo memory distributionSetupInfo
272
- ) = abi.decode(distributionData, (string, ISetup.DistributionSetupInfo));
273
-
274
- return (
275
- productInfo,
276
- abi.encode(
277
- getName(),
278
- ISetup.ProductSetupInfo(
279
- _token,
280
- _tokenHandler,
281
- _distributionNftId,
282
- _poolNftId,
283
- distributionSetupInfo.distributionFee,
284
- _initialProductFee,
285
- _initialProcessingFee,
286
- poolSetupInfo.poolFee,
287
- poolSetupInfo.stakingFee,
288
- poolSetupInfo.performanceFee,
289
- false,
290
- _wallet
291
- )
292
- )
293
- );
294
- }
295
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
-
6
-
7
- contract Cloner {
8
-
9
- Mock1 public mock1;
10
- Mock2 public mock2;
11
-
12
- constructor() {
13
- mock1 = new Mock1();
14
- mock2 = new Mock2();
15
- }
16
-
17
- function createClone(address master)
18
- external
19
- returns (address cloned)
20
- {
21
- cloned = Clones.clone(master);
22
- }
23
- }
24
-
25
-
26
- contract Mock1 {
27
- function getValue() external virtual view returns (uint256) {
28
- return 42;
29
- }
30
- }
31
-
32
- contract Mock2 is Mock1 {
33
- uint256 internal _value;
34
-
35
- constructor() {
36
- _value = 42;
37
- }
38
-
39
- function setValue(uint256 value) external virtual {
40
- _value = value;
41
- }
42
-
43
- function getValue() external virtual override view returns (uint256) {
44
- return _value;
45
- }
46
- }
47
-
@@ -1,38 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- contract Require {
5
- error AsmallerThanB_S();
6
- error AsmallerThanB_M(uint a);
7
- error AsmallerThanB_L(uint a, uint b);
8
-
9
- uint256 private _b;
10
-
11
- constructor() {
12
- _b = 42;
13
- }
14
-
15
- function isAlargerThanBRequire_S(
16
- uint a
17
- ) external view returns (bool isLarger) {
18
- require(a > _b, "ERROR:ABC-001");
19
-
20
- return true;
21
- }
22
-
23
- function isAlargerThanBRequire_M(
24
- uint a
25
- ) external view returns (bool isLarger) {
26
- require(a > _b, "ERROR:ABC-002:A_IS_SMALLER");
27
-
28
- return true;
29
- }
30
-
31
- function isAlargerThanBRequire_L(
32
- uint a
33
- ) external view returns (bool isLarger) {
34
- require(a > _b, "ERROR:ABC-003:A_IS_SMALLER_THAN_B");
35
-
36
- return true;
37
- }
38
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- contract Revert {
5
- error AsmallerThanB_S();
6
- error AsmallerThanB_M(uint a);
7
- error AsmallerThanB_L(uint a, uint b);
8
-
9
- uint256 private _b;
10
-
11
- constructor() {
12
- _b = 42;
13
- }
14
-
15
- function isAlargerThanBRevert_S(
16
- uint a
17
- ) external view returns (bool isLarger) {
18
- if (a <= _b) {
19
- revert AsmallerThanB_S();
20
- }
21
-
22
- return true;
23
- }
24
-
25
- function isAlargerThanBRevert_M(
26
- uint a
27
- ) external view returns (bool isLarger) {
28
- if (a <= _b) {
29
- revert AsmallerThanB_M(a);
30
- }
31
-
32
- return true;
33
- }
34
-
35
- function isAlargerThanBRevert_L(
36
- uint a
37
- ) external view returns (bool isLarger) {
38
- if (a <= _b) {
39
- revert AsmallerThanB_L(a, _b);
40
- }
41
-
42
- return true;
43
- }
44
- }