@etherisc/gif-next 0.0.2-9dd1984-554 → 0.0.2-9dd41ff-671

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 (527) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1395 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1575 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +851 -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 +73 -83
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +269 -1417
  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 +459 -2504
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +746 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +188 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +432 -280
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +415 -380
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +362 -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 +13 -159
  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 +1307 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  56. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +767 -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/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
  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 +1426 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  66. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1641 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  68. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +779 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  70. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +937 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  72. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +719 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1405 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +819 -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 +1300 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  92. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +811 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  94. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1023 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +759 -0
  97. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  98. package/artifacts/contracts/product/Product.sol/Product.json +1217 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  100. package/artifacts/contracts/product/ProductService.sol/ProductService.json +883 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +711 -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 +209 -17
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +222 -227
  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 +235 -43
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  114. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +305 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +338 -251
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +351 -84
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +566 -78
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +148 -62
  123. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  125. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1747 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1765 -0
  133. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  134. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  136. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +360 -326
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +215 -160
  139. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  141. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  142. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  143. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  144. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1594 -0
  145. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  146. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +163 -218
  147. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  149. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  150. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  151. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
  153. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  154. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  155. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
  157. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  159. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  160. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -47
  161. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  162. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  163. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  164. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +342 -61
  165. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -53
  167. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  168. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  169. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  170. package/artifacts/contracts/shared/Service.sol/Service.json +189 -150
  171. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  172. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  173. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  174. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  175. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  176. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  177. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  178. package/artifacts/contracts/{components/Component.sol/Component.json → staking/IStakingService.sol/IStakingService.json} +219 -194
  179. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  180. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +786 -0
  181. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +699 -0
  183. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  184. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  185. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  186. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  187. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  188. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  189. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  191. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  192. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  193. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  194. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  195. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  196. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  197. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  199. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  201. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  202. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  203. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  204. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  205. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  206. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  207. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  208. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  209. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  211. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  213. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  214. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  215. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  217. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  219. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  220. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  221. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  223. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  224. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  225. package/contracts/distribution/Distribution.sol +285 -0
  226. package/contracts/distribution/DistributionService.sol +351 -0
  227. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  228. package/contracts/distribution/IDistributionComponent.sol +71 -0
  229. package/contracts/distribution/IDistributionService.sol +87 -0
  230. package/contracts/instance/BundleManager.sol +22 -25
  231. package/contracts/instance/IInstance.sol +55 -38
  232. package/contracts/instance/IInstanceService.sol +50 -17
  233. package/contracts/instance/Instance.sol +151 -183
  234. package/contracts/instance/InstanceAdmin.sol +354 -0
  235. package/contracts/instance/InstanceAuthorizationsLib.sol +320 -0
  236. package/contracts/instance/InstanceReader.sol +102 -49
  237. package/contracts/instance/InstanceService.sol +200 -247
  238. package/contracts/instance/InstanceServiceManager.sol +12 -22
  239. package/contracts/instance/InstanceStore.sol +211 -0
  240. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  241. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  242. package/contracts/instance/base/ILifecycle.sol +3 -3
  243. package/contracts/instance/base/KeyValueStore.sol +44 -47
  244. package/contracts/instance/base/Lifecycle.sol +28 -7
  245. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
  246. package/contracts/instance/module/IAccess.sol +17 -21
  247. package/contracts/instance/module/IBundle.sol +11 -8
  248. package/contracts/instance/module/IComponents.sol +41 -0
  249. package/contracts/instance/module/IDistribution.sol +7 -4
  250. package/contracts/instance/module/IPolicy.sol +50 -17
  251. package/contracts/instance/module/IRisk.sol +1 -1
  252. package/contracts/instance/module/ISetup.sol +9 -22
  253. package/contracts/instance/module/ITreasury.sol +2 -2
  254. package/contracts/pool/BundleService.sol +384 -0
  255. package/contracts/pool/BundleServiceManager.sol +42 -0
  256. package/contracts/pool/IBundleService.sol +118 -0
  257. package/contracts/pool/IPoolComponent.sol +114 -0
  258. package/contracts/pool/IPoolService.sol +114 -0
  259. package/contracts/pool/Pool.sol +302 -0
  260. package/contracts/pool/PoolService.sol +404 -0
  261. package/contracts/pool/PoolServiceManager.sol +42 -0
  262. package/contracts/product/ApplicationService.sol +187 -0
  263. package/contracts/product/ApplicationServiceManager.sol +38 -0
  264. package/contracts/product/ClaimService.sol +443 -0
  265. package/contracts/product/ClaimServiceManager.sol +38 -0
  266. package/contracts/product/IApplicationService.sol +62 -0
  267. package/contracts/product/IClaimService.sol +93 -0
  268. package/contracts/product/IPolicyService.sol +80 -0
  269. package/contracts/product/IPricingService.sol +37 -0
  270. package/contracts/product/IProductComponent.sol +41 -0
  271. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  272. package/contracts/product/PolicyService.sol +378 -0
  273. package/contracts/product/PolicyServiceManager.sol +42 -0
  274. package/contracts/product/PricingService.sol +276 -0
  275. package/contracts/product/PricingServiceManager.sol +42 -0
  276. package/contracts/product/Product.sol +379 -0
  277. package/contracts/product/ProductService.sol +212 -0
  278. package/contracts/product/ProductServiceManager.sol +42 -0
  279. package/contracts/registry/ChainNft.sol +8 -0
  280. package/contracts/registry/IRegistry.sol +42 -21
  281. package/contracts/registry/IRegistryService.sol +36 -35
  282. package/contracts/registry/ITransferInterceptor.sol +1 -0
  283. package/contracts/registry/Registry.sol +165 -96
  284. package/contracts/registry/RegistryAdmin.sol +143 -0
  285. package/contracts/registry/RegistryService.sol +81 -169
  286. package/contracts/registry/RegistryServiceManager.sol +22 -24
  287. package/contracts/registry/ReleaseManager.sol +321 -198
  288. package/contracts/registry/TokenRegistry.sol +23 -15
  289. package/contracts/shared/AccessManagerCustom.sol +736 -0
  290. package/contracts/shared/AccessManagerExtended.sol +469 -0
  291. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  292. package/contracts/shared/AccessManagerExtendedWithDisable.sol +125 -0
  293. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  294. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  295. package/contracts/shared/Component.sol +271 -0
  296. package/contracts/shared/ComponentService.sol +141 -0
  297. package/contracts/shared/ERC165.sol +14 -12
  298. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  299. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +17 -0
  300. package/contracts/shared/IComponent.sol +90 -0
  301. package/contracts/shared/INftOwnable.sol +12 -11
  302. package/contracts/shared/IPolicyHolder.sol +40 -0
  303. package/contracts/shared/IRegisterable.sol +4 -4
  304. package/contracts/shared/IRegistryLinked.sol +11 -0
  305. package/contracts/shared/IService.sol +6 -4
  306. package/contracts/shared/IVersionable.sol +5 -48
  307. package/contracts/shared/NftOwnable.sol +68 -87
  308. package/contracts/shared/PolicyHolder.sol +94 -0
  309. package/contracts/shared/ProxyManager.sol +131 -25
  310. package/contracts/shared/Registerable.sol +26 -41
  311. package/contracts/shared/RegistryLinked.sol +43 -0
  312. package/contracts/shared/Service.sol +33 -21
  313. package/contracts/shared/TokenHandler.sol +14 -6
  314. package/contracts/shared/Versionable.sol +4 -92
  315. package/contracts/staking/IStakingService.sol +102 -0
  316. package/contracts/staking/StakingService.sol +169 -0
  317. package/contracts/staking/StakingServiceManager.sol +40 -0
  318. package/contracts/type/Amount.sol +109 -0
  319. package/contracts/{types → type}/Blocknumber.sol +1 -0
  320. package/contracts/type/ClaimId.sol +75 -0
  321. package/contracts/{types → type}/DistributorType.sol +2 -2
  322. package/contracts/{types → type}/Fee.sol +17 -8
  323. package/contracts/{types → type}/NftId.sol +8 -0
  324. package/contracts/{types → type}/NftIdSet.sol +1 -1
  325. package/contracts/{types → type}/ObjectType.sol +17 -7
  326. package/contracts/type/PayoutId.sol +82 -0
  327. package/contracts/{types → type}/Referral.sol +4 -0
  328. package/contracts/type/RoleId.sol +139 -0
  329. package/contracts/type/Seconds.sol +54 -0
  330. package/contracts/{types → type}/StateId.sol +7 -2
  331. package/contracts/{types → type}/Timestamp.sol +18 -13
  332. package/contracts/{types → type}/UFixed.sol +1 -0
  333. package/contracts/{types → type}/Version.sol +1 -0
  334. package/package.json +3 -3
  335. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  336. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  337. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  338. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -413
  339. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  340. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  341. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  342. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  343. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  344. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  345. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  346. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  349. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  351. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  353. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  355. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  357. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  359. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  361. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  363. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  365. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  366. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  367. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  368. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  370. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  372. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  374. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  375. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  376. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  377. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  378. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  379. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  380. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  381. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  382. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  384. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  386. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  387. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  388. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  389. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  390. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
  391. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  392. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  393. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  394. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  395. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  397. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  399. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  400. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  401. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1094
  402. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  403. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  404. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -764
  406. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  408. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  409. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1219
  415. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  417. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  418. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -798
  419. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  420. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  421. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  422. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -848
  423. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  424. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  425. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  426. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  427. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  428. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  429. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  430. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  431. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  432. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  433. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  434. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  435. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  436. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  437. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  438. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  439. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  440. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  441. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  442. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  443. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  444. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  445. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  446. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  447. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  448. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  449. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  451. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  452. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  453. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  455. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  456. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  458. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  459. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  460. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  461. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  462. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  463. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  465. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  469. package/contracts/components/Component.sol +0 -177
  470. package/contracts/components/Distribution.sol +0 -154
  471. package/contracts/components/IComponent.sol +0 -37
  472. package/contracts/components/IDistributionComponent.sol +0 -44
  473. package/contracts/components/IPoolComponent.sol +0 -66
  474. package/contracts/components/IProductComponent.sol +0 -35
  475. package/contracts/components/Pool.sol +0 -258
  476. package/contracts/components/Product.sol +0 -295
  477. package/contracts/experiment/cloning/Cloner.sol +0 -47
  478. package/contracts/experiment/errors/Require.sol +0 -38
  479. package/contracts/experiment/errors/Revert.sol +0 -44
  480. package/contracts/experiment/inheritance/A.sol +0 -53
  481. package/contracts/experiment/inheritance/B.sol +0 -28
  482. package/contracts/experiment/inheritance/C.sol +0 -34
  483. package/contracts/experiment/inheritance/IA.sol +0 -13
  484. package/contracts/experiment/inheritance/IB.sol +0 -10
  485. package/contracts/experiment/inheritance/IC.sol +0 -12
  486. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  487. package/contracts/experiment/statemachine/ISM.sol +0 -25
  488. package/contracts/experiment/statemachine/SM.sol +0 -57
  489. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  490. package/contracts/experiment/types/TypeA.sol +0 -47
  491. package/contracts/experiment/types/TypeB.sol +0 -29
  492. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  493. package/contracts/instance/IInstanceBase.sol +0 -25
  494. package/contracts/instance/InstanceAccessManager.sol +0 -303
  495. package/contracts/instance/InstanceBase.sol +0 -39
  496. package/contracts/instance/base/ComponentService.sol +0 -133
  497. package/contracts/instance/base/IInstanceBase.sol +0 -21
  498. package/contracts/instance/service/BundleService.sol +0 -293
  499. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  500. package/contracts/instance/service/DistributionService.sol +0 -115
  501. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  502. package/contracts/instance/service/IBundleService.sol +0 -44
  503. package/contracts/instance/service/IDistributionService.sol +0 -12
  504. package/contracts/instance/service/IPolicyService.sol +0 -94
  505. package/contracts/instance/service/IPoolService.sol +0 -20
  506. package/contracts/instance/service/PolicyService.sol +0 -538
  507. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  508. package/contracts/instance/service/PoolService.sol +0 -142
  509. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  510. package/contracts/instance/service/ProductService.sol +0 -241
  511. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  512. package/contracts/registry/RegistryAccessManager.sol +0 -210
  513. package/contracts/shared/ContractDeployerLib.sol +0 -72
  514. package/contracts/test/TestFee.sol +0 -25
  515. package/contracts/test/TestRegisterable.sol +0 -18
  516. package/contracts/test/TestRoleId.sol +0 -14
  517. package/contracts/test/TestService.sol +0 -25
  518. package/contracts/test/TestToken.sol +0 -26
  519. package/contracts/test/TestVersion.sol +0 -44
  520. package/contracts/test/TestVersionable.sol +0 -17
  521. package/contracts/test/Usdc.sol +0 -26
  522. package/contracts/types/ChainId.sol +0 -38
  523. package/contracts/types/NumberId.sol +0 -52
  524. package/contracts/types/RoleId.sol +0 -90
  525. /package/contracts/{types → type}/AddressSet.sol +0 -0
  526. /package/contracts/{types → type}/Key32.sol +0 -0
  527. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,538 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
8
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
9
- import {IInstance} from "../IInstance.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
- import {IRisk} from "../module/IRisk.sol";
12
- import {IBundle} from "../module/IBundle.sol";
13
- import {IProductService} from "./IProductService.sol";
14
- import {ITreasury} from "../module/ITreasury.sol";
15
- import {ISetup} from "../module/ISetup.sol";
16
-
17
- import {TokenHandler} from "../../shared/TokenHandler.sol";
18
-
19
- import {IVersionable} from "../../shared/IVersionable.sol";
20
- import {Versionable} from "../../shared/Versionable.sol";
21
-
22
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
24
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
25
- import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
26
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
27
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
28
- import {Fee, FeeLib} from "../../types/Fee.sol";
29
- import {ReferralId} from "../../types/Referral.sol";
30
- import {RiskId} from "../../types/RiskId.sol";
31
- import {StateId} from "../../types/StateId.sol";
32
- import {Version, VersionLib} from "../../types/Version.sol";
33
- //import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
34
-
35
- import {IService} from "../../shared/IService.sol";
36
- import {Service} from "../../shared/Service.sol";
37
- import {ComponentService} from "../base/ComponentService.sol";
38
- import {IPolicyService} from "./IPolicyService.sol";
39
- import {InstanceReader} from "../InstanceReader.sol";
40
- import {IPoolService} from "./IPoolService.sol";
41
- import {IBundleService} from "./IBundleService.sol";
42
-
43
-
44
- contract PolicyService is ComponentService, IPolicyService {
45
- using NftIdLib for NftId;
46
- using TimestampLib for Timestamp;
47
-
48
- IPoolService internal _poolService;
49
- IBundleService internal _bundleService;
50
-
51
- event LogProductServiceSender(address sender);
52
-
53
- function _initialize(
54
- address owner,
55
- bytes memory data
56
- )
57
- internal
58
- initializer
59
- virtual override
60
- {
61
- address registryAddress;
62
- address initialOwner;
63
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
64
-
65
- _initializeService(registryAddress, owner);
66
-
67
- _poolService = IPoolService(_registry.getServiceAddress(POOL(), getMajorVersion()));
68
- _bundleService = IBundleService(_registry.getServiceAddress(BUNDLE(), getMajorVersion()));
69
-
70
- _registerInterface(type(IPolicyService).interfaceId);
71
- }
72
-
73
-
74
- function getDomain() public pure override(IService, Service) returns(ObjectType) {
75
- return POLICY();
76
- }
77
-
78
-
79
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
80
- IRegistry.ObjectInfo memory productInfo;
81
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
82
- product = Product(productInfo.objectAddress);
83
- }
84
- // TODO: no access restrictions
85
- function calculatePremium(
86
- RiskId riskId,
87
- uint256 sumInsuredAmount,
88
- uint256 lifetime,
89
- bytes memory applicationData,
90
- NftId bundleNftId,
91
- ReferralId referralId
92
- )
93
- public
94
- view
95
- override
96
- returns (
97
- uint256 premiumAmount,
98
- uint256 productFeeAmount,
99
- uint256 poolFeeAmount,
100
- uint256 bundleFeeAmount,
101
- uint256 distributionFeeAmount
102
- )
103
- {
104
- Product product = _getAndVerifyInstanceAndProduct();
105
- uint256 netPremiumAmount = product.calculateNetPremium(
106
- sumInsuredAmount,
107
- riskId,
108
- lifetime,
109
- applicationData
110
- );
111
-
112
- (
113
- productFeeAmount,
114
- poolFeeAmount,
115
- bundleFeeAmount,
116
- distributionFeeAmount
117
- ) = _calculateFeeAmounts(
118
- netPremiumAmount,
119
- product,
120
- bundleNftId,
121
- referralId
122
- );
123
-
124
- premiumAmount = netPremiumAmount + productFeeAmount;
125
- premiumAmount += poolFeeAmount + bundleFeeAmount;
126
- premiumAmount += distributionFeeAmount;
127
- }
128
-
129
- function _calculateFeeAmounts(
130
- uint256 netPremiumAmount,
131
- Product product,
132
- NftId bundleNftId,
133
- ReferralId referralId
134
- )
135
- internal
136
- view
137
- returns (
138
- uint256 productFeeAmount,
139
- uint256 poolFeeAmount,
140
- uint256 bundleFeeAmount,
141
- uint256 distributionFeeAmount
142
- )
143
- {
144
- InstanceReader instanceReader;
145
- {
146
- IInstance instance = product.getInstance();
147
- instanceReader = instance.getInstanceReader();
148
- }
149
-
150
- NftId poolNftId = product.getPoolNftId();
151
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
152
- require(bundleInfo.poolNftId == poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
153
-
154
- {
155
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
156
- (productFeeAmount,) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
157
- }
158
- {
159
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
160
- (poolFeeAmount,) = FeeLib.calculateFee(poolSetupInfo.poolFee, netPremiumAmount);
161
- }
162
- {
163
- NftId distributionNftId = product.getDistributionNftId();
164
- ISetup.DistributionSetupInfo memory distributionSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
165
- (distributionFeeAmount,) = FeeLib.calculateFee(distributionSetupInfo.distributionFee, netPremiumAmount);
166
- }
167
-
168
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
169
- }
170
-
171
-
172
- function createApplication(
173
- address applicationOwner,
174
- RiskId riskId,
175
- uint256 sumInsuredAmount,
176
- uint256 lifetime,
177
- bytes memory applicationData,
178
- NftId bundleNftId,
179
- ReferralId referralId
180
- ) external override returns (NftId policyNftId) {
181
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
182
- // TODO: add validations (see create bundle in pool service)
183
-
184
- policyNftId = getRegistryService().registerPolicy(
185
- IRegistry.ObjectInfo(
186
- zeroNftId(),
187
- productInfo.nftId,
188
- POLICY(),
189
- false, // intercepting property for policies is defined on product
190
- address(0),
191
- applicationOwner,
192
- ""
193
- )
194
- );
195
-
196
- (uint256 premiumAmount,,,,) = calculatePremium(
197
- riskId,
198
- sumInsuredAmount,
199
- lifetime,
200
- applicationData,
201
- bundleNftId,
202
- referralId
203
- );
204
-
205
- IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
206
- productInfo.nftId,
207
- bundleNftId,
208
- referralId,
209
- riskId,
210
- sumInsuredAmount,
211
- premiumAmount,
212
- 0,
213
- lifetime,
214
- applicationData,
215
- "",
216
- 0,
217
- 0,
218
- 0,
219
- zeroTimestamp(),
220
- zeroTimestamp(),
221
- zeroTimestamp()
222
- );
223
-
224
- instance.createPolicy(policyNftId, policyInfo);
225
- instance.updatePolicyState(policyNftId, APPLIED());
226
-
227
- // TODO: add logging
228
- }
229
-
230
- function _getAndVerifyUnderwritingSetup(
231
- IInstance instance,
232
- InstanceReader instanceReader,
233
- IPolicy.PolicyInfo memory policyInfo,
234
- ISetup.ProductSetupInfo memory productSetupInfo
235
- )
236
- internal
237
- view
238
- returns (
239
- NftId bundleNftId,
240
- IBundle.BundleInfo memory bundleInfo,
241
- uint256 collateralAmount
242
- )
243
- {
244
- // check match between policy and bundle (via pool)
245
- bundleNftId = policyInfo.bundleNftId;
246
- bundleInfo = instanceReader.getBundleInfo(bundleNftId);
247
- require(bundleInfo.poolNftId == productSetupInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
248
-
249
- // calculate required collateral
250
- NftId poolNftId = productSetupInfo.poolNftId;
251
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
252
-
253
- // obtain remaining return values
254
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
255
- }
256
-
257
- function _lockCollateralInBundle(
258
- IInstance instance,
259
- NftId bundleNftId,
260
- IBundle.BundleInfo memory bundleInfo,
261
- NftId policyNftId,
262
- uint256 collateralAmount
263
- )
264
- internal
265
- returns (IBundle.BundleInfo memory)
266
- {
267
- bundleInfo.lockedAmount += collateralAmount;
268
- // TODO: track policy associated to bundle in bundlemanager (tbd) and how much is locked for it
269
- return bundleInfo;
270
- }
271
-
272
- function _underwriteByPool(
273
- NftId poolNftId,
274
- NftId policyNftId,
275
- IPolicy.PolicyInfo memory policyInfo,
276
- bytes memory bundleFilter,
277
- uint256 collateralAmount
278
- )
279
- internal
280
- {
281
- address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
282
- IPoolComponent pool = IPoolComponent(poolAddress);
283
- pool.underwrite(
284
- policyNftId,
285
- policyInfo.applicationData,
286
- bundleFilter,
287
- collateralAmount);
288
- }
289
-
290
-
291
- function revoke(
292
- NftId policyNftId
293
- )
294
- external
295
- override
296
- {
297
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
298
- }
299
-
300
-
301
- function underwrite(
302
- NftId policyNftId,
303
- bool requirePremiumPayment,
304
- Timestamp activateAt
305
- )
306
- external
307
- override
308
- {
309
- // check caller is registered product
310
- (
311
- IRegistry.ObjectInfo memory productInfo,
312
- IInstance instance
313
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
314
- InstanceReader instanceReader = instance.getInstanceReader();
315
-
316
- // check match between policy and calling product
317
- NftId productNftId = productInfo.nftId;
318
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
319
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
320
- require(instanceReader.getPolicyState(policyNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
321
-
322
- NftId bundleNftId;
323
- IBundle.BundleInfo memory bundleInfo;
324
- uint256 collateralAmount;
325
- uint256 netPremiumAmount = 0; // > 0 if immediate premium payment
326
- {
327
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
328
- IBundle.BundleInfo memory bundleInfo;
329
-
330
- (
331
- bundleNftId,
332
- bundleInfo,
333
- collateralAmount
334
- ) = _getAndVerifyUnderwritingSetup(
335
- instance,
336
- instanceReader,
337
- policyInfo,
338
- productSetupInfo
339
- );
340
- }
341
-
342
- // lock bundle collateral
343
- bundleInfo = _lockCollateralInBundle(
344
- instance,
345
- bundleNftId,
346
- bundleInfo,
347
- policyNftId,
348
- collateralAmount);
349
- StateId newPolicyState = UNDERWRITTEN();
350
-
351
- // optional activation of policy
352
- if(activateAt > zeroTimestamp()) {
353
- newPolicyState = ACTIVE();
354
- policyInfo.activatedAt = activateAt;
355
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
356
- }
357
-
358
- // optional collection of premium
359
- if(requirePremiumPayment) {
360
- netPremiumAmount = _processPremiumByTreasury(
361
- instance,
362
- productInfo.nftId,
363
- policyNftId,
364
- policyInfo.premiumAmount);
365
-
366
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
367
- }
368
-
369
- _bundleService.underwritePolicy(instance, policyNftId, bundleNftId, collateralAmount, netPremiumAmount);
370
- instance.updatePolicy(policyNftId, policyInfo, newPolicyState);
371
-
372
- // involve pool if necessary
373
- {
374
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(bundleInfo.poolNftId);
375
-
376
- if(poolInfo.isConfirmingApplication) {
377
- _underwriteByPool(
378
- bundleInfo.poolNftId,
379
- policyNftId,
380
- policyInfo,
381
- bundleInfo.filter,
382
- collateralAmount
383
- );
384
- }
385
- }
386
-
387
- // TODO: add logging
388
- }
389
-
390
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
391
- UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
392
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
393
- return collateralUFixed.toInt();
394
- }
395
-
396
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
397
- // check caller is registered product
398
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
399
- InstanceReader instanceReader = instance.getInstanceReader();
400
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
401
-
402
- if (policyInfo.premiumPaidAmount == policyInfo.premiumAmount) {
403
- revert ErrorIPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
404
- }
405
-
406
- uint256 unpaidPremiumAmount = policyInfo.premiumAmount - policyInfo.premiumPaidAmount;
407
-
408
- uint256 netPremiumAmount = _processPremiumByTreasury(
409
- instance,
410
- productInfo.nftId,
411
- policyNftId,
412
- unpaidPremiumAmount);
413
-
414
- policyInfo.premiumPaidAmount += unpaidPremiumAmount;
415
-
416
- _bundleService.increaseBalance(instance, policyInfo.bundleNftId, netPremiumAmount);
417
- instance.updatePolicy(policyNftId, policyInfo, KEEP_STATE());
418
-
419
- if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
420
- activate(policyNftId, activateAt);
421
- }
422
-
423
- // TODO: add logging
424
- }
425
-
426
- function activate(NftId policyNftId, Timestamp activateAt) public override {
427
- // check caller is registered product
428
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
429
- InstanceReader instanceReader = instance.getInstanceReader();
430
-
431
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
432
-
433
- require(
434
- policyInfo.activatedAt.eqz(),
435
- "ERROR:PRS-020:ALREADY_ACTIVATED");
436
-
437
- policyInfo.activatedAt = activateAt;
438
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
439
-
440
- instance.updatePolicy(policyNftId, policyInfo, ACTIVE());
441
-
442
- // TODO: add logging
443
- }
444
-
445
- function close(
446
- NftId policyNftId
447
- ) external override // solhint-disable-next-line no-empty-blocks
448
- {
449
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
450
- InstanceReader instanceReader = instance.getInstanceReader();
451
-
452
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
453
-
454
- if (policyInfo.activatedAt.eqz()) {
455
- revert ErrorIPolicyServicePolicyNotActivated(policyNftId);
456
- }
457
-
458
- StateId state = instanceReader.getPolicyState(policyNftId);
459
- if (state != ACTIVE()) {
460
- revert ErrorIPolicyServicePolicyNotActive(policyNftId, state);
461
- }
462
-
463
- if (policyInfo.closedAt.gtz()) {
464
- revert ErrorIPolicyServicePolicyAlreadyClosed(policyNftId);
465
- }
466
-
467
- if (policyInfo.premiumAmount != policyInfo.premiumPaidAmount) {
468
- revert ErrorIPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
469
- }
470
-
471
- if (policyInfo.openClaimsCount > 0) {
472
- revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
473
- }
474
-
475
- if (TimestampLib.blockTimestamp().lte(policyInfo.expiredAt) && (policyInfo.payoutAmount < policyInfo.sumInsuredAmount)) {
476
- revert ErrorIPolicyServicePolicyHasNotExpired(policyNftId, policyInfo.expiredAt);
477
- }
478
-
479
- policyInfo.closedAt = TimestampLib.blockTimestamp();
480
-
481
- _bundleService.closePolicy(instance, policyNftId, policyInfo.bundleNftId, policyInfo.sumInsuredAmount);
482
- instance.updatePolicy(policyNftId, policyInfo, CLOSED());
483
- }
484
-
485
- function _getPoolNftId(
486
- IInstance instance,
487
- NftId productNftId
488
- )
489
- internal
490
- view
491
- returns (NftId poolNftid)
492
- {
493
- InstanceReader instanceReader = instance.getInstanceReader();
494
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
495
- return productSetupInfo.poolNftId;
496
- }
497
-
498
-
499
- function _processPremiumByTreasury(
500
- IInstance instance,
501
- NftId productNftId,
502
- NftId policyNftId,
503
- uint256 premiumAmount
504
- )
505
- internal
506
- returns (uint256 netPremiumAmount)
507
- {
508
- // process token transfer(s)
509
- if(premiumAmount > 0) {
510
- ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
511
- TokenHandler tokenHandler = productSetupInfo.tokenHandler;
512
- address policyOwner = getRegistry().ownerOf(policyNftId);
513
- ISetup.PoolSetupInfo memory poolSetupInfo = instance.getInstanceReader().getPoolSetupInfo(productSetupInfo.poolNftId);
514
- address poolWallet = poolSetupInfo.wallet;
515
- netPremiumAmount = premiumAmount;
516
- Fee memory productFee = productSetupInfo.productFee;
517
-
518
- if (FeeLib.feeIsZero(productFee)) {
519
- tokenHandler.transfer(
520
- policyOwner,
521
- poolWallet,
522
- premiumAmount
523
- );
524
- } else {
525
- (uint256 productFeeAmount, uint256 netAmount) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
526
- address productWallet = productSetupInfo.wallet;
527
- if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premiumAmount) {
528
- revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premiumAmount);
529
- }
530
- tokenHandler.transfer(policyOwner, productWallet, productFeeAmount);
531
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
532
- netPremiumAmount = netAmount;
533
- }
534
- }
535
-
536
- // TODO: add logging
537
- }
538
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {PolicyService} from "./PolicyService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {VersionLib} from "../../types/Version.sol";
10
-
11
- contract PolicyServiceManager is ProxyManager {
12
-
13
- PolicyService private _policyService;
14
-
15
- /// @dev initializes proxy manager with product service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager()
20
- {
21
- PolicyService svc = new PolicyService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(svc),
25
- data);
26
-
27
- _policyService = PolicyService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- _isDeployed = true;
43
- }
44
-
45
- //--- view functions ----------------------------------------------------//
46
- function getPolicyService()
47
- external
48
- view
49
- returns (PolicyService policyService)
50
- {
51
- return _policyService;
52
- }
53
-
54
- }