@etherisc/gif-next 0.0.2-ec436bf-674 → 0.0.2-ed3b1b0-046

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 (488) hide show
  1. package/README.md +71 -14
  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 +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +454 -554
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +314 -178
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +452 -3054
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
  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 +443 -257
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +452 -364
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +320 -117
  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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  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 +71 -45
  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/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +338 -354
  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 +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/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
  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/product/IPolicyService.sol/IPolicyService.json +651 -0
  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} +237 -288
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  86. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +162 -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 +283 -220
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +332 -225
  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 +303 -324
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +238 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +346 -331
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +319 -143
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +846 -0
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +132 -57
  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/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentService.sol/ComponentService.json} +271 -180
  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/shared/IComponent.sol/IComponent.json +636 -0
  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 +84 -178
  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 +185 -165
  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/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → staking/IStakingService.sol/IStakingService.json} +226 -145
  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/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  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/distribution/DistributionServiceManager.sol +54 -0
  214. package/contracts/distribution/IDistributionComponent.sol +71 -0
  215. package/contracts/distribution/IDistributionService.sol +87 -0
  216. package/contracts/instance/BundleManager.sol +126 -0
  217. package/contracts/instance/IInstance.sol +62 -24
  218. package/contracts/instance/IInstanceService.sol +56 -13
  219. package/contracts/instance/Instance.sol +151 -365
  220. package/contracts/instance/InstanceAccessManager.sol +432 -177
  221. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  222. package/contracts/instance/InstanceReader.sol +109 -47
  223. package/contracts/instance/InstanceService.sol +243 -124
  224. package/contracts/instance/InstanceServiceManager.sol +12 -24
  225. package/contracts/instance/InstanceStore.sol +211 -0
  226. package/contracts/instance/base/Cloneable.sol +51 -0
  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/base/ObjectManager.sol +82 -0
  232. package/contracts/instance/module/IAccess.sol +37 -21
  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 +11 -22
  239. package/contracts/instance/module/ITreasury.sol +2 -2
  240. package/contracts/pool/BundleService.sol +384 -0
  241. package/contracts/pool/BundleServiceManager.sol +42 -0
  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 +404 -0
  247. package/contracts/pool/PoolServiceManager.sol +42 -0
  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/product/IProductService.sol +40 -0
  258. package/contracts/product/PolicyService.sol +378 -0
  259. package/contracts/product/PolicyServiceManager.sol +42 -0
  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/product/ProductServiceManager.sol +42 -0
  265. package/contracts/registry/ChainNft.sol +9 -1
  266. package/contracts/registry/IRegistry.sol +56 -42
  267. package/contracts/registry/IRegistryService.sol +41 -16
  268. package/contracts/registry/ITransferInterceptor.sol +1 -0
  269. package/contracts/registry/Registry.sol +250 -268
  270. package/contracts/registry/RegistryAccessManager.sol +132 -0
  271. package/contracts/registry/RegistryService.sol +94 -262
  272. package/contracts/registry/RegistryServiceManager.sol +34 -42
  273. package/contracts/registry/ReleaseManager.sol +382 -0
  274. package/contracts/registry/TokenRegistry.sol +22 -17
  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 -6
  283. package/contracts/shared/IRegistryLinked.sol +11 -0
  284. package/contracts/shared/IService.sol +7 -4
  285. package/contracts/shared/IVersionable.sol +5 -48
  286. package/contracts/shared/NftOwnable.sol +65 -83
  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 +41 -24
  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/type/NftIdSet.sol +62 -0
  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/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  315. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  316. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  317. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  318. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  319. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  320. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  321. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  322. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  323. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  324. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  325. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  326. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  327. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  328. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  329. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  330. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  331. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  332. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  333. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  334. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  335. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  336. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  337. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  338. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  340. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  342. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  344. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  346. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  348. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  349. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  350. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  351. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  353. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  355. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  357. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  359. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  361. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  363. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  365. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  366. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  367. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  368. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  369. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  370. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  371. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  372. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  373. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  374. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.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 -113
  377. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  378. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  379. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  380. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  381. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -448
  383. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  384. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  385. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  386. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  388. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -855
  389. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  390. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  391. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  392. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  393. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  394. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  395. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  396. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  397. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  398. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  399. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  400. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  401. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  402. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  403. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  404. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  405. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  406. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  407. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  408. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  409. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  410. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  411. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  412. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  413. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  414. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  415. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  416. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  417. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  418. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  419. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  420. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  421. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  422. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  423. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  424. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  425. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  426. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  427. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  428. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  429. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  430. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  431. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  432. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  433. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  434. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  435. package/contracts/components/BaseComponent.sol +0 -91
  436. package/contracts/components/Distribution.sol +0 -160
  437. package/contracts/components/IBaseComponent.sol +0 -25
  438. package/contracts/components/IDistributionComponent.sol +0 -44
  439. package/contracts/components/IPoolComponent.sol +0 -62
  440. package/contracts/components/IProductComponent.sol +0 -35
  441. package/contracts/components/Pool.sol +0 -243
  442. package/contracts/components/Product.sol +0 -297
  443. package/contracts/experiment/cloning/Cloner.sol +0 -47
  444. package/contracts/experiment/errors/Require.sol +0 -38
  445. package/contracts/experiment/errors/Revert.sol +0 -44
  446. package/contracts/experiment/inheritance/A.sol +0 -53
  447. package/contracts/experiment/inheritance/B.sol +0 -28
  448. package/contracts/experiment/inheritance/C.sol +0 -34
  449. package/contracts/experiment/inheritance/IA.sol +0 -13
  450. package/contracts/experiment/inheritance/IB.sol +0 -10
  451. package/contracts/experiment/inheritance/IC.sol +0 -12
  452. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  453. package/contracts/experiment/statemachine/ISM.sol +0 -25
  454. package/contracts/experiment/statemachine/SM.sol +0 -57
  455. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  456. package/contracts/experiment/types/TypeA.sol +0 -47
  457. package/contracts/experiment/types/TypeB.sol +0 -29
  458. package/contracts/instance/AccessManagedSimple.sol +0 -115
  459. package/contracts/instance/AccessManagerSimple.sol +0 -692
  460. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  461. package/contracts/instance/base/ComponentServiceBase.sol +0 -118
  462. package/contracts/instance/base/IInstanceBase.sol +0 -23
  463. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  464. package/contracts/instance/service/DistributionService.sol +0 -87
  465. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  466. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  467. package/contracts/instance/service/IDistributionService.sol +0 -12
  468. package/contracts/instance/service/IPoolService.sol +0 -37
  469. package/contracts/instance/service/IProductService.sol +0 -107
  470. package/contracts/instance/service/PoolService.sol +0 -193
  471. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  472. package/contracts/shared/ContractDeployerLib.sol +0 -72
  473. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  474. package/contracts/test/TestFee.sol +0 -25
  475. package/contracts/test/TestRegisterable.sol +0 -18
  476. package/contracts/test/TestRoleId.sol +0 -14
  477. package/contracts/test/TestService.sol +0 -24
  478. package/contracts/test/TestToken.sol +0 -26
  479. package/contracts/test/TestVersion.sol +0 -44
  480. package/contracts/test/TestVersionable.sol +0 -17
  481. package/contracts/test/Usdc.sol +0 -26
  482. package/contracts/types/ChainId.sol +0 -38
  483. package/contracts/types/NftIdSet.sol +0 -60
  484. package/contracts/types/NumberId.sol +0 -52
  485. package/contracts/types/RoleId.sol +0 -89
  486. /package/contracts/{types → type}/AddressSet.sol +0 -0
  487. /package/contracts/{types → type}/Key32.sol +0 -0
  488. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,123 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ReferralLib",
4
- "sourceName": "contracts/types/Referral.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "ReferralId",
10
- "name": "id",
11
- "type": "bytes8"
12
- }
13
- ],
14
- "name": "toKey32",
15
- "outputs": [
16
- {
17
- "internalType": "Key32",
18
- "name": "key",
19
- "type": "bytes32"
20
- }
21
- ],
22
- "stateMutability": "pure",
23
- "type": "function"
24
- },
25
- {
26
- "inputs": [
27
- {
28
- "internalType": "ReferralId",
29
- "name": "id",
30
- "type": "bytes8"
31
- }
32
- ],
33
- "name": "toKeyId",
34
- "outputs": [
35
- {
36
- "internalType": "KeyId",
37
- "name": "keyId",
38
- "type": "bytes31"
39
- }
40
- ],
41
- "stateMutability": "pure",
42
- "type": "function"
43
- },
44
- {
45
- "inputs": [
46
- {
47
- "internalType": "NftId",
48
- "name": "distributionNftId",
49
- "type": "uint96"
50
- },
51
- {
52
- "internalType": "string",
53
- "name": "referral",
54
- "type": "string"
55
- }
56
- ],
57
- "name": "toReferralId",
58
- "outputs": [
59
- {
60
- "internalType": "ReferralId",
61
- "name": "",
62
- "type": "bytes8"
63
- }
64
- ],
65
- "stateMutability": "pure",
66
- "type": "function"
67
- },
68
- {
69
- "inputs": [
70
- {
71
- "internalType": "uint8",
72
- "name": "status",
73
- "type": "uint8"
74
- }
75
- ],
76
- "name": "toReferralStatus",
77
- "outputs": [
78
- {
79
- "internalType": "ReferralStatus",
80
- "name": "",
81
- "type": "uint8"
82
- }
83
- ],
84
- "stateMutability": "pure",
85
- "type": "function"
86
- },
87
- {
88
- "inputs": [],
89
- "name": "zero",
90
- "outputs": [
91
- {
92
- "internalType": "ReferralId",
93
- "name": "",
94
- "type": "bytes8"
95
- }
96
- ],
97
- "stateMutability": "pure",
98
- "type": "function"
99
- }
100
- ],
101
- "bytecode": "0x6103cf61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c80632cf96bf9146100665780633f093cd61461009957806355ee6275146100c5578063a420c787146100e6578063bc1b392d14610109575b600080fd5b6100816100743660046101dd565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100ac6100a7366004610224565b610110565b6040516001600160c01b03199091168152602001610090565b6100d86100d33660046101dd565b610143565b604051908152602001610090565b6100f76100f43660046102f9565b90565b60405160ff9091168152602001610090565b60006100ac565b6000828260405160200161012592919061031c565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce607b6001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610380565b92915050565b6000602082840312156101ef57600080fd5b81356001600160c01b03198116811461020757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561023757600080fd5b82356bffffffffffffffffffffffff8116811461025357600080fd5b9150602083013567ffffffffffffffff8082111561027057600080fd5b818501915085601f83011261028457600080fd5b8135818111156102965761029661020e565b604051601f8201601f19908116603f011681019083821181831017156102be576102be61020e565b816040528281528860208487010111156102d757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561030b57600080fd5b813560ff8116811461020757600080fd5b6bffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b8181101561035e57858101830151858201606001528201610342565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561039257600080fd5b505191905056fea2646970667358221220e3067e33abc10c92bca6b263bfc1f83fba9fd0597a869d4ffec064e06a9d7c1464736f6c63430008140033",
102
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c80632cf96bf9146100665780633f093cd61461009957806355ee6275146100c5578063a420c787146100e6578063bc1b392d14610109575b600080fd5b6100816100743660046101dd565b6001600160c01b03191690565b60405160ff1990911681526020015b60405180910390f35b6100ac6100a7366004610224565b610110565b6040516001600160c01b03199091168152602001610090565b6100d86100d33660046101dd565b610143565b604051908152602001610090565b6100f76100f43660046102f9565b90565b60405160ff9091168152602001610090565b60006100ac565b6000828260405160200161012592919061031c565b60405160208183030381529060405280519060200120905092915050565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce607b6001600160c01b031985166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610380565b92915050565b6000602082840312156101ef57600080fd5b81356001600160c01b03198116811461020757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561023757600080fd5b82356bffffffffffffffffffffffff8116811461025357600080fd5b9150602083013567ffffffffffffffff8082111561027057600080fd5b818501915085601f83011261028457600080fd5b8135818111156102965761029661020e565b604051601f8201601f19908116603f011681019083821181831017156102be576102be61020e565b816040528281528860208487010111156102d757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561030b57600080fd5b813560ff8116811461020757600080fd5b6bffffffffffffffffffffffff8316815260006020604081840152835180604085015260005b8181101561035e57858101830151858201606001528201610342565b506000606082860101526060601f19601f830116850101925050509392505050565b60006020828403121561039257600080fd5b505191905056fea2646970667358221220e3067e33abc10c92bca6b263bfc1f83fba9fd0597a869d4ffec064e06a9d7c1464736f6c63430008140033",
103
- "linkReferences": {
104
- "contracts/types/Key32.sol": {
105
- "Key32Lib": [
106
- {
107
- "length": 20,
108
- "start": 385
109
- }
110
- ]
111
- }
112
- },
113
- "deployedLinkReferences": {
114
- "contracts/types/Key32.sol": {
115
- "Key32Lib": [
116
- {
117
- "length": 20,
118
- "start": 327
119
- }
120
- ]
121
- }
122
- }
123
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c27b27bd5efa2769b918607b39615b4f.json"
4
- }
@@ -1,91 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Registerable} from "../shared/Registerable.sol";
7
-
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
- import {IInstance} from "../instance/IInstance.sol";
10
-
11
- import {IInstance} from "../instance/IInstance.sol";
12
- import {IComponentOwnerService} from "../instance/service/IComponentOwnerService.sol";
13
- import {IBaseComponent} from "./IBaseComponent.sol";
14
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
15
- import {ObjectType} from "../types/ObjectType.sol";
16
-
17
- abstract contract BaseComponent is
18
- Registerable,
19
- IBaseComponent
20
- {
21
- using NftIdLib for NftId;
22
-
23
- IComponentOwnerService internal _componentOwnerService;
24
-
25
- address internal _deployer;
26
- address internal _wallet;
27
- IERC20Metadata internal _token;
28
- IInstance internal _instance;
29
- NftId internal _productNftId;
30
-
31
- constructor(
32
- address registry,
33
- NftId instanceNftId,
34
- address token,
35
- ObjectType componentType,
36
- bool isInterceptor,
37
- address initialOwner
38
- )
39
- {
40
- bytes memory data = "";
41
- _initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
42
-
43
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
44
- _instance = IInstance(instanceInfo.objectAddress);
45
- require(
46
- _instance.supportsInterface(type(IInstance).interfaceId),
47
- ""
48
- );
49
-
50
- _componentOwnerService = _instance.getComponentOwnerService();
51
- _wallet = address(this);
52
- _token = IERC20Metadata(token);
53
-
54
- _registerInterface(type(IBaseComponent).interfaceId);
55
- }
56
-
57
- // from component contract
58
- function lock() external onlyOwner override {
59
- _componentOwnerService.lock(this);
60
- }
61
-
62
- function unlock() external onlyOwner override {
63
- _componentOwnerService.unlock(this);
64
- }
65
-
66
- function getWallet()
67
- external
68
- view
69
- override
70
- returns (address walletAddress)
71
- {
72
- return _wallet;
73
- }
74
-
75
- function getToken() public view override returns (IERC20Metadata token) {
76
- return _token;
77
- }
78
-
79
- function getInstance() public view override returns (IInstance instance) {
80
- return _instance;
81
- }
82
-
83
- function setProductNftId(NftId productNftId) public override onlyOwner {
84
- require(_productNftId.eq(zeroNftId()), "product nft id already set");
85
- _productNftId = productNftId;
86
- }
87
-
88
- function getProductNftId() public view override returns (NftId productNftId) {
89
- return _productNftId;
90
- }
91
- }
@@ -1,160 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {DISTRIBUTION} from "../types/ObjectType.sol";
5
- import {IDistributionService} from "../instance/service/IDistributionService.sol";
6
- import {IProductService} from "../instance/service/IProductService.sol";
7
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {Fee, FeeLib} from "../types/Fee.sol";
10
- import {BaseComponent} from "./BaseComponent.sol";
11
- import {IDistributionComponent} from "./IDistributionComponent.sol";
12
- import {IRegistry} from "../registry/IRegistry.sol";
13
- import {IRegisterable} from "../shared/IRegisterable.sol";
14
- import {ISetup} from "../instance/module/ISetup.sol";
15
- import {Registerable} from "../shared/Registerable.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {InstanceReader} from "../instance/InstanceReader.sol";
18
-
19
- contract Distribution is
20
- BaseComponent,
21
- IDistributionComponent
22
- {
23
- using NftIdLib for NftId;
24
-
25
- Fee internal _initialDistributionFee;
26
- bool internal _isVerifying;
27
-
28
- IDistributionService private _distributionService;
29
- IProductService private _productService;
30
-
31
- modifier onlyProductService() {
32
- require(
33
- msg.sender == address(_productService),
34
- "ERROR:POL-002:NOT_PRODUCT_SERVICE");
35
- _;
36
- }
37
-
38
- constructor(
39
- address registry,
40
- NftId instanceNftId,
41
- // TODO refactor into tokenNftId
42
- address token,
43
- bool verifying,
44
- Fee memory distributionFee,
45
- address initialOwner
46
- )
47
- BaseComponent(registry, instanceNftId, token, DISTRIBUTION(), true, initialOwner)
48
- {
49
- _isVerifying = verifying;
50
- _initialDistributionFee = distributionFee;
51
-
52
- _distributionService = _instance.getDistributionService();
53
- // TODO: reactivate when services are available again
54
- // _productService = _instance.getProductService();
55
-
56
- _registerInterface(type(IDistributionComponent).interfaceId);
57
- }
58
-
59
-
60
- function setFees(
61
- Fee memory distributionFee
62
- )
63
- external
64
- override
65
- {
66
- _distributionService.setFees(distributionFee);
67
- }
68
-
69
- function calculateFeeAmount(
70
- ReferralId referralId,
71
- uint256 netPremiumAmount
72
- )
73
- external
74
- view
75
- virtual override
76
- returns (uint256 feeAmount)
77
- {
78
- ISetup.DistributionSetupInfo memory setupInfo = getSetupInfo();
79
- Fee memory fee = setupInfo.distributionFee;
80
- (feeAmount,) = FeeLib.calculateFee(fee, netPremiumAmount);
81
- }
82
-
83
-
84
- function calculateRenewalFeeAmount(
85
- ReferralId referralId,
86
- uint256 netPremiumAmount
87
- )
88
- external
89
- view
90
- virtual override
91
- returns (uint256 feeAmount)
92
- {
93
- // default is no fees
94
- return 0 * netPremiumAmount;
95
- }
96
-
97
- function processSale(
98
- ReferralId referralId,
99
- uint256 feeAmount
100
- )
101
- external
102
- onlyProductService
103
- virtual override
104
- {
105
- // default is no action
106
- }
107
-
108
- function processRenewal(
109
- ReferralId referralId,
110
- uint256 feeAmount
111
- )
112
- external
113
- onlyProductService
114
- virtual override
115
- {
116
- // default is no action
117
- }
118
-
119
- function referralIsValid(ReferralId referralId) external view returns (bool isValid) {
120
- // default is invalid
121
- return false;
122
- }
123
-
124
- function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
125
- InstanceReader reader = _instance.getInstanceReader();
126
- return reader.getDistributionSetupInfo(getNftId());
127
- }
128
-
129
-
130
- /// @dev returns true iff the component needs to be called when selling/renewing policis
131
- function isVerifying() external view returns (bool verifying) {
132
- return _isVerifying;
133
- }
134
-
135
- // from IRegisterable
136
-
137
- function getInitialInfo()
138
- public
139
- view
140
- override (IRegisterable, Registerable)
141
- returns(IRegistry.ObjectInfo memory, bytes memory)
142
- {
143
- (
144
- IRegistry.ObjectInfo memory info,
145
- ) = super.getInitialInfo();
146
-
147
- return (
148
- info,
149
- abi.encode(
150
- ISetup.DistributionSetupInfo(
151
- _productNftId,
152
- TokenHandler(address(_token)),
153
- _initialDistributionFee,
154
- _isVerifying,
155
- address(this)
156
- )
157
- )
158
- );
159
- }
160
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegisterable} from "../shared/IRegisterable.sol";
7
- import {IInstance} from "../instance/IInstance.sol";
8
- import {NftId} from "../types/NftId.sol";
9
-
10
- interface IBaseComponent is IRegisterable {
11
-
12
- function lock() external;
13
-
14
- function unlock() external;
15
-
16
- function getToken() external view returns (IERC20Metadata token);
17
-
18
- function getWallet() external view returns (address walletAddress);
19
-
20
- function getInstance() external view returns (IInstance instance);
21
-
22
- function setProductNftId(NftId productNftId) external;
23
- function getProductNftId() external view returns (NftId productNftId);
24
-
25
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {ReferralId} from "../types/Referral.sol";
6
- import {NftId} from "../types/NftId.sol";
7
- import {ISetup} from "../instance/module/ISetup.sol";
8
-
9
- interface IDistributionComponent {
10
-
11
- function setFees(
12
- Fee memory distributionFee
13
- ) external;
14
-
15
- function calculateFeeAmount(
16
- ReferralId referralId,
17
- uint256 netPremiumAmount
18
- ) external view returns (uint256 feeAmount);
19
-
20
- function calculateRenewalFeeAmount(
21
- ReferralId referralId,
22
- uint256 netPremiumAmount
23
- ) external view returns (uint256 feeAmount);
24
-
25
- /// @dev callback from product service when selling a policy for a specific referralId
26
- /// the used referral id and the collected fee are provided as parameters
27
- /// the component implementation can then process this information accordingly
28
- function processSale(
29
- ReferralId referralId,
30
- uint256 feeAmount
31
- ) external;
32
-
33
- /// @dev callback from product service when a policy is renews for a specific referralId
34
- function processRenewal(
35
- ReferralId referralId,
36
- uint256 feeAmount
37
- ) external;
38
-
39
- /// @dev returns true iff the referral id is valid
40
- function referralIsValid(ReferralId referralId) external view returns (bool isValid);
41
-
42
- /// @dev returns true iff the component needs to be called when selling/renewing policis
43
- function isVerifying() external view returns (bool verifying);
44
- }
@@ -1,62 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {NftId} from "../types/NftId.sol";
5
- import {Fee} from "../types/Fee.sol";
6
- import {UFixed} from "../types/UFixed.sol";
7
-
8
- interface IPoolComponent {
9
-
10
- event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
11
-
12
- function setFees(
13
- Fee memory poolFee,
14
- Fee memory stakingFee,
15
- Fee memory performanceFee
16
- ) external;
17
-
18
- /**
19
- * @dev creates a new bundle for this pool.
20
- */
21
- function createBundle(
22
- Fee memory fee,
23
- uint256 initialAmount,
24
- uint256 lifetime,
25
- bytes memory filter
26
- ) external returns(NftId bundleNftId);
27
-
28
- function setBundleFee(
29
- NftId policyNftId,
30
- Fee memory fee
31
- ) external;
32
-
33
- /**
34
- * @dev this is a callback function that is called by the product service when underwriting a policy.
35
- * the pool has the option to check the details and object to underwriting by reverting.
36
- * the function is only called for "active" pools that ask to be involved/notified
37
- * by product related state changes.
38
- */
39
- function underwrite(
40
- NftId policyNftId,
41
- bytes memory policyData,
42
- bytes memory bundleFilter,
43
- uint256 collateralizationAmount
44
- ) external;
45
-
46
- /**
47
- * @dev returns true iff the policy application data in policyData matches
48
- * with the bundle filter criteria encoded in bundleFilter.
49
- */
50
- function policyMatchesBundle(
51
- bytes memory policyData,
52
- bytes memory bundleFilter
53
- )
54
- external
55
- view
56
- returns (bool isMatching);
57
-
58
- function isVerifying() external view returns (bool verifying);
59
-
60
- function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
61
-
62
- }
@@ -1,35 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {NftId} from "../types/NftId.sol";
6
- import {ReferralId} from "../types/Referral.sol";
7
- import {RiskId} from "../types/RiskId.sol";
8
-
9
- interface IProductComponent {
10
-
11
- function setFees(
12
- Fee memory productFee,
13
- Fee memory processingFee
14
- ) external;
15
-
16
- function calculatePremium(
17
- uint256 sumInsuredAmount,
18
- RiskId riskId,
19
- uint256 lifetime,
20
- bytes memory applicationData,
21
- ReferralId referralId,
22
- NftId bundleNftId
23
- ) external view returns (uint256 premiumAmount);
24
-
25
- function calculateNetPremium(
26
- uint256 sumInsuredAmount,
27
- RiskId riskId,
28
- uint256 lifetime,
29
- bytes memory applicationData
30
- ) external view returns (uint256 netPremiumAmount);
31
-
32
-
33
- function getPoolNftId() external view returns (NftId poolNftId);
34
- function getDistributionNftId() external view returns (NftId distributionNftId);
35
- }