@etherisc/gif-next 0.0.2-c630f3f-038 → 0.0.2-c6d46bb-892

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 (493) hide show
  1. package/README.md +337 -19
  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 +780 -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 +312 -1138
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +443 -1231
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
  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 +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1574 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
  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/base/Cloneable.sol/Cloneable.json +190 -0
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +478 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +581 -0
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  43. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  46. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  48. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  50. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  51. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  52. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  53. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  54. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  55. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  57. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  58. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +735 -0
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  70. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  71. package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +651 -0
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +510 -0
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.json +442 -0
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  104. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  105. package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +595 -27
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +858 -0
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  118. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/Registry.sol/Registry.json +654 -52
  120. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  121. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1150 -0
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  127. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  128. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
  130. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  132. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  133. package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
  134. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  135. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  138. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +636 -0
  140. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
  142. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  144. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +175 -0
  146. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  147. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  148. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IService.sol/IService.json +327 -0
  150. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  152. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  154. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  155. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  156. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +569 -0
  158. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +339 -0
  160. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  161. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  162. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  163. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +256 -220
  164. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  165. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
  166. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  168. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  170. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  171. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  172. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  174. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  175. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  176. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  177. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  178. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  179. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  180. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  181. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  182. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  183. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  184. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  185. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  186. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  187. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  188. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  189. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  190. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  191. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  192. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  193. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  194. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  195. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  196. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  197. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  198. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  199. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  200. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  201. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  202. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  203. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  204. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  205. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  206. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  208. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  209. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  210. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  211. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  212. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  213. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  214. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  216. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  217. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  218. package/contracts/distribution/Distribution.sol +285 -0
  219. package/contracts/distribution/DistributionService.sol +349 -0
  220. package/contracts/distribution/DistributionServiceManager.sol +51 -0
  221. package/contracts/distribution/IDistributionComponent.sol +71 -0
  222. package/contracts/distribution/IDistributionService.sol +87 -0
  223. package/contracts/instance/BundleManager.sol +126 -0
  224. package/contracts/instance/IInstance.sol +74 -22
  225. package/contracts/instance/IInstanceService.sol +73 -0
  226. package/contracts/instance/Instance.sol +210 -53
  227. package/contracts/instance/InstanceAccessManager.sol +543 -0
  228. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  229. package/contracts/instance/InstanceReader.sol +368 -0
  230. package/contracts/instance/InstanceService.sol +308 -0
  231. package/contracts/instance/InstanceServiceManager.sol +54 -0
  232. package/contracts/instance/InstanceStore.sol +211 -0
  233. package/contracts/instance/base/Cloneable.sol +51 -0
  234. package/contracts/instance/base/IKeyValueStore.sol +53 -0
  235. package/contracts/instance/base/ILifecycle.sol +30 -0
  236. package/contracts/instance/base/KeyValueStore.sol +169 -0
  237. package/contracts/instance/base/Lifecycle.sol +121 -0
  238. package/contracts/instance/base/ObjectManager.sol +82 -0
  239. package/contracts/instance/module/IAccess.sol +54 -0
  240. package/contracts/instance/module/IBundle.sol +23 -0
  241. package/contracts/instance/module/IComponents.sol +41 -0
  242. package/contracts/instance/module/IDistribution.sol +42 -0
  243. package/contracts/instance/module/IPolicy.sol +78 -0
  244. package/contracts/instance/module/IRisk.sol +11 -0
  245. package/contracts/instance/module/ISetup.sol +33 -0
  246. package/contracts/instance/module/ITreasury.sol +23 -0
  247. package/contracts/pool/BundleService.sol +382 -0
  248. package/contracts/pool/BundleServiceManager.sol +51 -0
  249. package/contracts/pool/IBundleService.sol +118 -0
  250. package/contracts/pool/IPoolComponent.sol +114 -0
  251. package/contracts/pool/IPoolService.sol +114 -0
  252. package/contracts/pool/Pool.sol +302 -0
  253. package/contracts/pool/PoolService.sol +403 -0
  254. package/contracts/pool/PoolServiceManager.sol +51 -0
  255. package/contracts/product/ApplicationService.sol +186 -0
  256. package/contracts/product/ApplicationServiceManager.sol +35 -0
  257. package/contracts/product/ClaimService.sol +442 -0
  258. package/contracts/product/ClaimServiceManager.sol +35 -0
  259. package/contracts/product/IApplicationService.sol +62 -0
  260. package/contracts/product/IClaimService.sol +93 -0
  261. package/contracts/product/IPolicyService.sol +80 -0
  262. package/contracts/product/IPricingService.sol +37 -0
  263. package/contracts/product/IProductComponent.sol +41 -0
  264. package/contracts/product/IProductService.sol +40 -0
  265. package/contracts/product/PolicyService.sol +376 -0
  266. package/contracts/product/PolicyServiceManager.sol +54 -0
  267. package/contracts/product/PricingService.sol +275 -0
  268. package/contracts/product/PricingServiceManager.sol +51 -0
  269. package/contracts/product/Product.sol +379 -0
  270. package/contracts/product/ProductService.sol +210 -0
  271. package/contracts/product/ProductServiceManager.sol +54 -0
  272. package/contracts/registry/ChainNft.sol +137 -62
  273. package/contracts/registry/IRegistry.sol +76 -42
  274. package/contracts/registry/IRegistryService.sol +66 -0
  275. package/contracts/registry/ITransferInterceptor.sol +7 -0
  276. package/contracts/registry/Registry.sol +413 -128
  277. package/contracts/registry/RegistryAccessManager.sol +216 -0
  278. package/contracts/registry/RegistryService.sol +285 -0
  279. package/contracts/registry/RegistryServiceManager.sol +60 -0
  280. package/contracts/registry/ReleaseManager.sol +328 -0
  281. package/contracts/registry/TokenRegistry.sol +116 -0
  282. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  283. package/contracts/shared/Component.sol +271 -0
  284. package/contracts/shared/ComponentService.sol +150 -0
  285. package/contracts/shared/ERC165.sol +27 -0
  286. package/contracts/shared/IComponent.sol +90 -0
  287. package/contracts/shared/INftOwnable.sol +23 -0
  288. package/contracts/shared/IPolicyHolder.sol +40 -0
  289. package/contracts/shared/IRegisterable.sol +15 -0
  290. package/contracts/shared/IRegistryLinked.sol +11 -0
  291. package/contracts/shared/IService.sol +18 -0
  292. package/contracts/shared/IVersionable.sol +53 -0
  293. package/contracts/shared/NftOwnable.sol +118 -0
  294. package/contracts/shared/PolicyHolder.sol +94 -0
  295. package/contracts/shared/ProxyManager.sol +169 -0
  296. package/contracts/shared/Registerable.sol +75 -0
  297. package/contracts/shared/RegistryLinked.sol +43 -0
  298. package/contracts/shared/Service.sol +72 -0
  299. package/contracts/shared/TokenHandler.sol +35 -0
  300. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  301. package/contracts/shared/Versionable.sol +59 -0
  302. package/contracts/staking/IStakingService.sol +102 -0
  303. package/contracts/staking/StakeingServiceManager.sol +37 -0
  304. package/contracts/staking/StakingService.sol +166 -0
  305. package/contracts/type/AddressSet.sol +58 -0
  306. package/contracts/type/Amount.sol +109 -0
  307. package/contracts/{types → type}/Blocknumber.sol +1 -0
  308. package/contracts/type/ClaimId.sol +75 -0
  309. package/contracts/type/DistributorType.sol +55 -0
  310. package/contracts/type/Fee.sol +65 -0
  311. package/contracts/type/Key32.sol +50 -0
  312. package/contracts/{types → type}/NftId.sol +30 -1
  313. package/contracts/type/NftIdSet.sol +62 -0
  314. package/contracts/{types → type}/ObjectType.sol +70 -15
  315. package/contracts/type/PayoutId.sol +82 -0
  316. package/contracts/type/Referral.sol +89 -0
  317. package/contracts/type/RiskId.sol +43 -0
  318. package/contracts/type/RoleId.sol +132 -0
  319. package/contracts/type/Seconds.sol +54 -0
  320. package/contracts/{types → type}/StateId.sol +23 -4
  321. package/contracts/{types → type}/Timestamp.sol +36 -6
  322. package/contracts/type/UFixed.sol +326 -0
  323. package/contracts/type/Version.sol +108 -0
  324. package/package.json +12 -5
  325. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  326. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  327. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  328. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  329. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  330. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  331. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  332. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  333. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  334. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  335. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  336. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  337. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  339. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  340. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  341. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  342. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  343. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  344. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  345. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  346. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  347. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  349. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  351. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  353. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  355. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  357. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  359. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  361. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  363. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  365. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  366. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  367. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  368. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  369. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  370. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  371. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  372. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  373. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  374. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  375. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  376. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  377. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  378. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  379. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  380. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  381. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  382. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  383. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  384. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  385. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  386. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  388. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  389. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  390. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  391. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  392. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  393. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  394. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  395. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  396. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  397. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  398. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  399. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  400. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  401. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  402. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  403. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  404. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  405. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  406. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  407. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  408. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  409. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  411. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  412. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  413. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  415. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  416. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  417. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  418. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  419. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  420. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  422. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
  423. package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
  424. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
  425. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
  426. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
  427. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
  428. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
  429. package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
  430. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  431. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  432. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  433. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  434. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  435. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  436. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  437. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  438. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  439. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  440. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  441. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  442. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  443. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  444. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  445. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  446. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  447. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  448. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  449. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  451. package/contracts/components/Component.sol +0 -77
  452. package/contracts/components/IPool.sol +0 -15
  453. package/contracts/components/IProduct.sol +0 -16
  454. package/contracts/components/Pool.sol +0 -52
  455. package/contracts/components/Product.sol +0 -89
  456. package/contracts/experiment/errors/Require.sol +0 -38
  457. package/contracts/experiment/errors/Revert.sol +0 -44
  458. package/contracts/experiment/inheritance/A.sol +0 -53
  459. package/contracts/experiment/inheritance/B.sol +0 -28
  460. package/contracts/experiment/inheritance/C.sol +0 -34
  461. package/contracts/experiment/inheritance/IA.sol +0 -13
  462. package/contracts/experiment/inheritance/IB.sol +0 -10
  463. package/contracts/experiment/inheritance/IC.sol +0 -12
  464. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  465. package/contracts/experiment/statemachine/ISM.sol +0 -25
  466. package/contracts/experiment/statemachine/README.md +0 -112
  467. package/contracts/experiment/statemachine/SM.sol +0 -57
  468. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  469. package/contracts/experiment/types/TypeA.sol +0 -47
  470. package/contracts/experiment/types/TypeB.sol +0 -29
  471. package/contracts/instance/access/Access.sol +0 -165
  472. package/contracts/instance/access/IAccess.sol +0 -63
  473. package/contracts/instance/component/ComponentModule.sol +0 -274
  474. package/contracts/instance/component/IComponent.sol +0 -74
  475. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  476. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  477. package/contracts/instance/policy/IPolicy.sol +0 -50
  478. package/contracts/instance/policy/PolicyModule.sol +0 -114
  479. package/contracts/instance/pool/IPoolModule.sol +0 -23
  480. package/contracts/instance/pool/PoolModule.sol +0 -81
  481. package/contracts/instance/product/IProductService.sol +0 -36
  482. package/contracts/instance/product/ProductService.sol +0 -136
  483. package/contracts/instance/treasury/ITreasury.sol +0 -91
  484. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  485. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  486. package/contracts/mock/Dip.sol +0 -26
  487. package/contracts/mock/TestPool.sol +0 -16
  488. package/contracts/mock/TestProduct.sol +0 -39
  489. package/contracts/mock/Usdc.sol +0 -26
  490. package/contracts/registry/IChainNft.sol +0 -21
  491. package/contracts/types/ChainId.sol +0 -38
  492. package/contracts/types/Fee.sol +0 -32
  493. package/contracts/types/UFixed.sol +0 -210
@@ -1,168 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
-
6
- import {NftId} from "../../types/NftId.sol";
7
- import {Fee, feeIsZero} from "../../types/Fee.sol";
8
- import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
9
- import {IProductComponent} from "../../components/IProduct.sol";
10
- import {IPolicy, IPolicyModule} from "../policy/IPolicy.sol";
11
- import {TokenHandler} from "./TokenHandler.sol";
12
- import {ITreasuryModule} from "./ITreasury.sol";
13
- import {TokenHandler} from "./TokenHandler.sol";
14
-
15
- abstract contract TreasuryModule is ITreasuryModule {
16
- mapping(NftId productNftId => ProductSetup setup) private _productSetup;
17
- mapping(NftId distributorNftId => DistributorSetup setup)
18
- private _distributorSetup;
19
- mapping(NftId poolNftId => PoolSetup setup) private _poolSetup;
20
-
21
- IPolicyModule private _policyModule;
22
-
23
- constructor() {
24
- _policyModule = IPolicyModule(address(this));
25
- }
26
-
27
- function registerProduct(
28
- NftId productNftId,
29
- NftId distributorNftId,
30
- NftId poolNftId,
31
- IERC20 token,
32
- address wallet,
33
- Fee memory policyFee,
34
- Fee memory processingFee
35
- ) external override // TODO add authz (only component module)
36
- {
37
- // TODO add validation
38
-
39
- // deploy product specific handler contract
40
- TokenHandler tokenHandler = new TokenHandler(address(token));
41
-
42
- _productSetup[productNftId] = ProductSetup(
43
- productNftId,
44
- distributorNftId,
45
- poolNftId,
46
- token,
47
- tokenHandler,
48
- wallet,
49
- policyFee,
50
- processingFee
51
- );
52
-
53
- // TODO add logging
54
- }
55
-
56
- function setProductFees(
57
- NftId productNftId,
58
- Fee memory policyFee,
59
- Fee memory processingFee
60
- ) external override // TODO add authz (only component owner service)
61
- {
62
- // TODO add validation
63
-
64
- ProductSetup storage setup = _productSetup[productNftId];
65
- setup.policyFee = policyFee;
66
- setup.processingFee = processingFee;
67
-
68
- // TODO add logging
69
- }
70
-
71
- function registerPool(
72
- NftId poolNftId,
73
- address wallet,
74
- Fee memory stakingFee,
75
- Fee memory performanceFee
76
- ) external override // TODO add authz (only component module)
77
- {
78
- // TODO add validation
79
-
80
- _poolSetup[poolNftId] = PoolSetup(
81
- poolNftId,
82
- wallet,
83
- stakingFee,
84
- performanceFee
85
- );
86
-
87
- // TODO add logging
88
- }
89
-
90
- function setPoolFees(
91
- NftId poolNftId,
92
- Fee memory stakingFee,
93
- Fee memory performanceFee
94
- ) external override // TODO add authz (only component owner service)
95
- {
96
- // TODO add validation
97
-
98
- PoolSetup storage setup = _poolSetup[poolNftId];
99
- setup.stakingFee = stakingFee;
100
- setup.performanceFee = performanceFee;
101
-
102
- // TODO add logging
103
- }
104
-
105
- function getTokenHandler(
106
- NftId productNftId
107
- ) external view override returns (TokenHandler tokenHandler) {
108
- return _productSetup[productNftId].tokenHandler;
109
- }
110
-
111
- function getProductSetup(
112
- NftId productNftId
113
- ) external view override returns (ProductSetup memory setup) {
114
- return _productSetup[productNftId];
115
- }
116
-
117
- function getPoolSetup(
118
- NftId poolNftId
119
- ) external view override returns (PoolSetup memory setup) {
120
- return _poolSetup[poolNftId];
121
- }
122
-
123
- function processPremium(
124
- NftId policyNftId,
125
- NftId productNftId
126
- ) external override // TODO add authz (only product service)
127
- {
128
- IPolicy.PolicyInfo memory policyInfo = _policyModule.getPolicyInfo(
129
- policyNftId
130
- );
131
- require(
132
- policyInfo.nftId == policyNftId,
133
- "ERROR:TRS-020:POLICY_UNKNOWN"
134
- );
135
-
136
- ProductSetup memory product = _productSetup[productNftId];
137
- TokenHandler tokenHandler = product.tokenHandler;
138
- address policyOwner = this.getRegistry().getOwner(policyNftId);
139
- address poolWallet = _poolSetup[product.poolNftId].wallet;
140
- // TODO add validation
141
-
142
- if (feeIsZero(product.policyFee)) {
143
- tokenHandler.transfer(
144
- policyOwner,
145
- poolWallet,
146
- policyInfo.premiumAmount
147
- );
148
- } else {
149
- (uint256 feeAmount, uint256 netAmount) = calculateFeeAmount(
150
- policyInfo.premiumAmount,
151
- product.policyFee
152
- );
153
-
154
- tokenHandler.transfer(policyOwner, product.wallet, feeAmount);
155
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
156
- }
157
- }
158
-
159
- function calculateFeeAmount(
160
- uint256 amount,
161
- Fee memory fee
162
- ) public pure override returns (uint256 feeAmount, uint256 netAmount) {
163
- UFixed fractionalAmount = UFixedMathLib.itof(amount) *
164
- fee.fractionalFee;
165
- feeAmount = UFixedMathLib.ftoi(fractionalAmount) + fee.fixedFee;
166
- netAmount = amount - feeAmount;
167
- }
168
- }
@@ -1,26 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
-
6
- contract DIP is ERC20 {
7
-
8
- // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
- string public constant SYMBOL = "DIP";
11
- uint8 public constant DECIMALS = 18;
12
- uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
- // decimals == 18 (openzeppelin erc20 default)
14
- constructor()
15
- ERC20(NAME, SYMBOL)
16
- {
17
- _mint(
18
- _msgSender(),
19
- INITIAL_SUPPLY
20
- );
21
- }
22
-
23
- function decimals() public pure override returns(uint8) {
24
- return DECIMALS;
25
- }
26
- }
@@ -1,16 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee, zeroFee} from "../../contracts/types/Fee.sol";
5
- import {Pool} from "../../contracts/components/Pool.sol";
6
-
7
-
8
- contract TestPool is Pool {
9
-
10
- constructor(address registry, address instance, address token)
11
- // feeless pool (no staking fee, no performance fee)
12
- Pool(registry, instance, token, zeroFee(), zeroFee())
13
- // solhint-disable-next-line no-empty-blocks
14
- {}
15
-
16
- }
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Product} from "../../contracts/components/Product.sol";
5
- import {NftId, toNftId} from "../../contracts/types/NftId.sol";
6
- import {Fee, zeroFee} from "../../contracts/types/Fee.sol";
7
-
8
- contract TestProduct is Product {
9
-
10
- constructor(address registry, address instance, address token, address pool, Fee memory policyFee)
11
- Product(registry, instance, token, pool, policyFee, zeroFee())
12
- // solhint-disable-next-line no-empty-blocks
13
- {}
14
-
15
- function applyForPolicy(
16
- uint256 sumInsuredAmount,
17
- uint256 premiumAmount,
18
- uint256 lifetime
19
- )
20
- external
21
- returns(NftId nftId)
22
- {
23
- nftId = _createApplication(
24
- msg.sender, // policy holder
25
- sumInsuredAmount,
26
- premiumAmount,
27
- lifetime,
28
- toNftId(0) // requested bundle nft id
29
- );
30
- }
31
-
32
- function underwrite(NftId nftId) external {
33
- _underwrite(nftId);
34
- }
35
-
36
- function collectPremium(NftId nftId) external {
37
- _collectPremium(nftId);
38
- }
39
- }
@@ -1,26 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
-
6
- contract USDC is ERC20 {
7
-
8
- // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
12
- uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
- // decimals == 18 (openzeppelin erc20 default)
14
- constructor()
15
- ERC20(NAME, SYMBOL)
16
- {
17
- _mint(
18
- _msgSender(),
19
- INITIAL_SUPPLY
20
- );
21
- }
22
-
23
- function decimals() public pure override returns(uint8) {
24
- return DECIMALS;
25
- }
26
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
5
-
6
- interface IChainNft is IERC721Enumerable {
7
- function mint(
8
- address to,
9
- string memory uri
10
- ) external returns (uint256 tokenId);
11
-
12
- function burn(uint256 tokenId) external;
13
-
14
- function setURI(uint256 tokenId, string memory uri) external;
15
-
16
- function exists(uint256 tokenId) external view returns (bool);
17
-
18
- function totalMinted() external view returns (uint256);
19
-
20
- function getRegistryAddress() external view returns (address registry);
21
- }
@@ -1,38 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /// @dev bytes5 (uint40) allows for chain ids up to 13 digits
5
- type ChainId is bytes5;
6
-
7
- // type bindings
8
- using {eqChainId as ==, neChainId as !=, ChainIdLib.toInt} for ChainId global;
9
-
10
- // general pure free functions
11
- /// @dev Converts the uint256 to a ChainId.
12
- function toChainId(uint256 chainId) pure returns (ChainId) {
13
- return ChainId.wrap(bytes5(uint40(chainId)));
14
- }
15
-
16
- /// @dev Return the ChainId for the chain the contract is deployed to
17
- function thisChainId() view returns (ChainId) {
18
- return toChainId(block.chainid);
19
- }
20
-
21
- // pure free functions for operators
22
- /// @dev Returns true if the values are equal (==).
23
- function eqChainId(ChainId a, ChainId b) pure returns (bool isSame) {
24
- return ChainId.unwrap(a) == ChainId.unwrap(b);
25
- }
26
-
27
- /// @dev Returns true if the values are not equal (!=).
28
- function neChainId(ChainId a, ChainId b) pure returns (bool isDifferent) {
29
- return ChainId.unwrap(a) != ChainId.unwrap(b);
30
- }
31
-
32
- // library functions that operate on user defined type
33
- library ChainIdLib {
34
- /// @dev Converts the ChainId to a uint256.
35
- function toInt(ChainId chainId) internal pure returns (uint256) {
36
- return uint256(uint40(ChainId.unwrap(chainId)));
37
- }
38
- }
@@ -1,32 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {UFixed} from "./UFixed.sol";
5
-
6
- struct Fee {
7
- UFixed fractionalFee;
8
- uint256 fixedFee;
9
- }
10
-
11
- // general pure free functions
12
- /// @dev Converts the uint256 to a NftId.
13
- function toFee(
14
- UFixed fractionalFee,
15
- uint256 fixedFee
16
- ) pure returns (Fee memory fee) {
17
- return Fee(fractionalFee, fixedFee);
18
- }
19
-
20
- /// @dev Return the NftId zero (0)
21
- function zeroFee() pure returns (Fee memory fee) {
22
- return Fee(UFixed.wrap(0), 0);
23
- }
24
-
25
- // pure free functions for operators
26
- function feeIsSame(Fee memory a, Fee memory b) pure returns (bool isSame) {
27
- return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
28
- }
29
-
30
- function feeIsZero(Fee memory fee) pure returns (bool) {
31
- return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
32
- }
@@ -1,210 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
-
6
- /// @dev UFixed is a fixed point number with 18 decimals precision.
7
- type UFixed is uint256;
8
-
9
- using {
10
- addUFixed as +,
11
- subUFixed as -,
12
- mulUFixed as *,
13
- divUFixed as /,
14
- gtUFixed as >,
15
- gteUFixed as >=,
16
- ltUFixed as <,
17
- lteUFixed as <=,
18
- eqUFixed as ==
19
- } for UFixed global;
20
-
21
- function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
22
- return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
23
- }
24
-
25
- function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
26
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
27
- return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
28
- }
29
-
30
- function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
31
- return
32
- UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
33
- }
34
-
35
- function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
36
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
37
-
38
- return
39
- UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
40
- }
41
-
42
- function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
43
- return UFixed.unwrap(a) > UFixed.unwrap(b);
44
- }
45
-
46
- function gteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
47
- return UFixed.unwrap(a) >= UFixed.unwrap(b);
48
- }
49
-
50
- function ltUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
51
- return UFixed.unwrap(a) < UFixed.unwrap(b);
52
- }
53
-
54
- function lteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
55
- return UFixed.unwrap(a) <= UFixed.unwrap(b);
56
- }
57
-
58
- function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
59
- return UFixed.unwrap(a) == UFixed.unwrap(b);
60
- }
61
-
62
- function gtzUFixed(UFixed a) pure returns (bool isZero) {
63
- return UFixed.unwrap(a) > 0;
64
- }
65
-
66
- function eqzUFixed(UFixed a) pure returns (bool isZero) {
67
- return UFixed.unwrap(a) == 0;
68
- }
69
-
70
- function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
71
- if (a > b) {
72
- return a - b;
73
- }
74
-
75
- return b - a;
76
- }
77
-
78
- library UFixedMathLib {
79
-
80
- int8 public constant EXP = 18;
81
- uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
82
- uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
83
-
84
- /// @dev returns the rounding mode DOWN - 0.4 becomes 0, 0.5 becomes 0, 0.6 becomes 0
85
- function ROUNDING_DOWN() public pure returns (uint8) {
86
- return uint8(0);
87
- }
88
-
89
- /// @dev returns the rounding mode UP - 0.4 becomes 1, 0.5 becomes 1, 0.6 becomes 1
90
- function ROUNDING_UP() public pure returns (uint8) {
91
- return uint8(1);
92
- }
93
-
94
- /// @dev returns the rounding mode HALF_UP - 0.4 becomes 0, 0.5 becomes 1, 0.6 becomes 1
95
- function ROUNDING_HALF_UP() public pure returns (uint8) {
96
- return uint8(2);
97
- }
98
-
99
- /// @dev returns the decimals precision of the UFixed type
100
- function decimals() public pure returns (uint256) {
101
- return uint8(EXP);
102
- }
103
-
104
- /// @dev Converts the uint256 to a UFixed.
105
- function itof(uint256 a) public pure returns (UFixed) {
106
- return UFixed.wrap(a * MULTIPLIER);
107
- }
108
-
109
- // TODO rename to toUFixed
110
- /// @dev Converts the uint256 to a UFixed with given exponent.
111
- function itof(uint256 a, int8 exp) public pure returns (UFixed) {
112
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
113
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
114
-
115
- return UFixed.wrap(a * 10 ** uint8(EXP + exp));
116
- }
117
-
118
- /// @dev Converts a UFixed to a uint256.
119
- function ftoi(UFixed a) public pure returns (uint256) {
120
- return ftoi(a, ROUNDING_HALF_UP());
121
- }
122
-
123
- /// @dev Converts a UFixed to a uint256 with given rounding mode.
124
- function ftoi(UFixed a, uint8 rounding) public pure returns (uint256) {
125
- if (rounding == ROUNDING_HALF_UP()) {
126
- return
127
- Math.mulDiv(
128
- UFixed.unwrap(a) + MULTIPLIER_HALF,
129
- 1,
130
- MULTIPLIER,
131
- Math.Rounding.Down
132
- );
133
- } else if (rounding == ROUNDING_DOWN()) {
134
- return
135
- Math.mulDiv(
136
- UFixed.unwrap(a),
137
- 1,
138
- MULTIPLIER,
139
- Math.Rounding.Down
140
- );
141
- } else {
142
- return
143
- Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Up);
144
- }
145
- }
146
-
147
- /// @dev adds two UFixed numbers
148
- function add(UFixed a, UFixed b) public pure returns (UFixed) {
149
- return addUFixed(a, b);
150
- }
151
-
152
- /// @dev subtracts two UFixed numbers
153
- function sub(UFixed a, UFixed b) public pure returns (UFixed) {
154
- return subUFixed(a, b);
155
- }
156
-
157
- /// @dev multiplies two UFixed numbers
158
- function mul(UFixed a, UFixed b) public pure returns (UFixed) {
159
- return mulUFixed(a, b);
160
- }
161
-
162
- /// @dev divides two UFixed numbers
163
- function div(UFixed a, UFixed b) public pure returns (UFixed) {
164
- return divUFixed(a, b);
165
- }
166
-
167
- /// @dev return true if UFixed a is greater than UFixed b
168
- function gt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
169
- return gtUFixed(a, b);
170
- }
171
-
172
- /// @dev return true if UFixed a is greater than or equal to UFixed b
173
- function gte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
174
- return gteUFixed(a, b);
175
- }
176
-
177
- /// @dev return true if UFixed a is less than UFixed b
178
- function lt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
179
- return ltUFixed(a, b);
180
- }
181
-
182
- /// @dev return true if UFixed a is less than or equal to UFixed b
183
- function lte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
184
- return lteUFixed(a, b);
185
- }
186
-
187
- /// @dev return true if UFixed a is equal to UFixed b
188
- function eq(UFixed a, UFixed b) public pure returns (bool isEqual) {
189
- return eqUFixed(a, b);
190
- }
191
-
192
- /// @dev return true if UFixed a is not zero
193
- function gtz(UFixed a) public pure returns (bool isZero) {
194
- return gtzUFixed(a);
195
- }
196
-
197
- /// @dev return true if UFixed a is zero
198
- function eqz(UFixed a) public pure returns (bool isZero) {
199
- return eqzUFixed(a);
200
- }
201
-
202
- function zero() public pure returns (UFixed) {
203
- return UFixed.wrap(0);
204
- }
205
-
206
- /// @dev return the absolute delta between two UFixed numbers
207
- function delta(UFixed a, UFixed b) public pure returns (UFixed) {
208
- return deltaUFixed(a, b);
209
- }
210
- }