@etherisc/gif-next 0.0.2-96853ac-143 → 0.0.2-96b5b72-170

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 (496) 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 +1387 -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 +1011 -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 +1106 -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 +1418 -0
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1630 -0
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +712 -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 +872 -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 +1209 -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 +680 -64
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +919 -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 +750 -87
  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 +1211 -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 +620 -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 +723 -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/{registry/IChainNft.sol/IChainNft.json → shared/IComponent.sol/IComponent.json} +240 -229
  140. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +647 -0
  142. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +175 -0
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IService.sol/IService.json +327 -0
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  154. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  155. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +884 -0
  156. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  158. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  159. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  160. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +569 -0
  162. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +339 -0
  164. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  166. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  167. package/artifacts/contracts/shared/Service.sol/Service.json +488 -0
  168. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  169. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  170. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  171. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  172. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  174. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  175. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +507 -0
  176. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  177. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +545 -0
  178. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  179. package/artifacts/contracts/staking/Staking.sol/Staking.json +854 -0
  180. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  181. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +640 -0
  182. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  183. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +797 -0
  184. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +632 -0
  186. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  187. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  188. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  189. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  190. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  192. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  193. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  194. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  195. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  196. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  197. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  198. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  199. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  200. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  201. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  202. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  203. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  204. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  205. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  206. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  208. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  209. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  210. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  211. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  212. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  213. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  214. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  216. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  217. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  218. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  220. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  221. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  222. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  224. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  226. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  228. package/contracts/distribution/Distribution.sol +285 -0
  229. package/contracts/distribution/DistributionService.sol +349 -0
  230. package/contracts/distribution/DistributionServiceManager.sol +51 -0
  231. package/contracts/distribution/IDistributionComponent.sol +71 -0
  232. package/contracts/distribution/IDistributionService.sol +87 -0
  233. package/contracts/instance/BundleManager.sol +126 -0
  234. package/contracts/instance/IInstance.sol +74 -22
  235. package/contracts/instance/IInstanceService.sol +73 -0
  236. package/contracts/instance/Instance.sol +210 -53
  237. package/contracts/instance/InstanceAccessManager.sol +543 -0
  238. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  239. package/contracts/instance/InstanceReader.sol +368 -0
  240. package/contracts/instance/InstanceService.sol +308 -0
  241. package/contracts/instance/InstanceServiceManager.sol +54 -0
  242. package/contracts/instance/InstanceStore.sol +211 -0
  243. package/contracts/instance/base/Cloneable.sol +51 -0
  244. package/contracts/instance/base/IKeyValueStore.sol +53 -0
  245. package/contracts/instance/base/ILifecycle.sol +30 -0
  246. package/contracts/instance/base/KeyValueStore.sol +169 -0
  247. package/contracts/instance/base/Lifecycle.sol +121 -0
  248. package/contracts/instance/base/ObjectManager.sol +82 -0
  249. package/contracts/instance/module/IAccess.sol +54 -0
  250. package/contracts/instance/module/IBundle.sol +23 -0
  251. package/contracts/instance/module/IComponents.sol +41 -0
  252. package/contracts/instance/module/IDistribution.sol +42 -0
  253. package/contracts/instance/module/IPolicy.sol +78 -0
  254. package/contracts/instance/module/IRisk.sol +11 -0
  255. package/contracts/instance/module/ISetup.sol +33 -0
  256. package/contracts/instance/module/ITreasury.sol +23 -0
  257. package/contracts/pool/BundleService.sol +382 -0
  258. package/contracts/pool/BundleServiceManager.sol +51 -0
  259. package/contracts/pool/IBundleService.sol +118 -0
  260. package/contracts/pool/IPoolComponent.sol +114 -0
  261. package/contracts/pool/IPoolService.sol +114 -0
  262. package/contracts/pool/Pool.sol +302 -0
  263. package/contracts/pool/PoolService.sol +403 -0
  264. package/contracts/pool/PoolServiceManager.sol +51 -0
  265. package/contracts/product/ApplicationService.sol +186 -0
  266. package/contracts/product/ApplicationServiceManager.sol +35 -0
  267. package/contracts/product/ClaimService.sol +442 -0
  268. package/contracts/product/ClaimServiceManager.sol +35 -0
  269. package/contracts/product/IApplicationService.sol +62 -0
  270. package/contracts/product/IClaimService.sol +93 -0
  271. package/contracts/product/IPolicyService.sol +80 -0
  272. package/contracts/product/IPricingService.sol +37 -0
  273. package/contracts/product/IProductComponent.sol +41 -0
  274. package/contracts/product/IProductService.sol +40 -0
  275. package/contracts/product/PolicyService.sol +376 -0
  276. package/contracts/product/PolicyServiceManager.sol +54 -0
  277. package/contracts/product/PricingService.sol +275 -0
  278. package/contracts/product/PricingServiceManager.sol +51 -0
  279. package/contracts/product/Product.sol +379 -0
  280. package/contracts/product/ProductService.sol +210 -0
  281. package/contracts/product/ProductServiceManager.sol +54 -0
  282. package/contracts/registry/ChainNft.sol +143 -62
  283. package/contracts/registry/IRegistry.sol +84 -41
  284. package/contracts/registry/IRegistryService.sol +69 -0
  285. package/contracts/registry/ITransferInterceptor.sol +7 -0
  286. package/contracts/registry/Registry.sol +451 -128
  287. package/contracts/registry/RegistryAccessManager.sol +207 -0
  288. package/contracts/registry/RegistryService.sol +304 -0
  289. package/contracts/registry/RegistryServiceManager.sol +60 -0
  290. package/contracts/registry/ReleaseManager.sol +360 -0
  291. package/contracts/registry/TokenRegistry.sol +116 -0
  292. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  293. package/contracts/shared/Component.sol +177 -0
  294. package/contracts/shared/ComponentService.sol +150 -0
  295. package/contracts/shared/ERC165.sol +27 -0
  296. package/contracts/shared/IComponent.sol +58 -0
  297. package/contracts/shared/IInstanceLinkedComponent.sol +52 -0
  298. package/contracts/shared/INftOwnable.sol +23 -0
  299. package/contracts/shared/IPolicyHolder.sol +40 -0
  300. package/contracts/shared/IRegisterable.sol +15 -0
  301. package/contracts/shared/IRegistryLinked.sol +11 -0
  302. package/contracts/shared/IService.sol +18 -0
  303. package/contracts/shared/IVersionable.sol +53 -0
  304. package/contracts/shared/InstanceLinkedComponent.sol +271 -0
  305. package/contracts/shared/NftOwnable.sol +118 -0
  306. package/contracts/shared/PolicyHolder.sol +94 -0
  307. package/contracts/shared/ProxyManager.sol +169 -0
  308. package/contracts/shared/Registerable.sol +75 -0
  309. package/contracts/shared/RegistryLinked.sol +43 -0
  310. package/contracts/shared/Service.sol +72 -0
  311. package/contracts/shared/TokenHandler.sol +58 -0
  312. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  313. package/contracts/shared/Versionable.sol +59 -0
  314. package/contracts/staking/IStaking.sol +30 -0
  315. package/contracts/staking/IStakingService.sol +105 -0
  316. package/contracts/staking/Staking.sol +65 -0
  317. package/contracts/staking/StakingManager.sol +46 -0
  318. package/contracts/staking/StakingService.sol +204 -0
  319. package/contracts/staking/StakingServiceManager.sol +41 -0
  320. package/contracts/type/AddressSet.sol +58 -0
  321. package/contracts/type/Amount.sol +109 -0
  322. package/contracts/{types → type}/Blocknumber.sol +1 -0
  323. package/contracts/type/ClaimId.sol +75 -0
  324. package/contracts/type/DistributorType.sol +55 -0
  325. package/contracts/type/Fee.sol +65 -0
  326. package/contracts/type/Key32.sol +50 -0
  327. package/contracts/{types → type}/NftId.sol +30 -1
  328. package/contracts/type/NftIdSet.sol +62 -0
  329. package/contracts/{types → type}/ObjectType.sol +74 -15
  330. package/contracts/type/PayoutId.sol +82 -0
  331. package/contracts/type/Referral.sol +89 -0
  332. package/contracts/type/RiskId.sol +43 -0
  333. package/contracts/type/RoleId.sol +132 -0
  334. package/contracts/type/Seconds.sol +54 -0
  335. package/contracts/{types → type}/StateId.sol +23 -4
  336. package/contracts/{types → type}/Timestamp.sol +36 -6
  337. package/contracts/type/UFixed.sol +326 -0
  338. package/contracts/type/Version.sol +108 -0
  339. package/package.json +12 -5
  340. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  341. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  342. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  343. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  344. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  345. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  346. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  347. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  348. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  349. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  350. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  351. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  352. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  353. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  354. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  356. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  358. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  360. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  362. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  364. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  366. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  368. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  370. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  372. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  374. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  375. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  376. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  377. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  378. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  379. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  380. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  381. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  382. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  384. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  386. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  388. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  389. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  390. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  391. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  392. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  393. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  394. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  395. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  396. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  397. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  398. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  399. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  400. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  401. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  402. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  403. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  404. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  405. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  406. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  407. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  408. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  409. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  410. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  411. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  412. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  413. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  414. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  415. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  416. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  417. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  418. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  419. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  420. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  422. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  423. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  424. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  426. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  427. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  428. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  430. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  431. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  432. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  433. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  434. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  435. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  436. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  437. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  438. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  439. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  440. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  441. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  442. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  443. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  444. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  445. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  446. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  447. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  448. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  449. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  451. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  452. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  453. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  455. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  456. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  458. package/contracts/components/Component.sol +0 -77
  459. package/contracts/components/IPool.sol +0 -15
  460. package/contracts/components/IProduct.sol +0 -16
  461. package/contracts/components/Pool.sol +0 -52
  462. package/contracts/components/Product.sol +0 -89
  463. package/contracts/experiment/errors/Require.sol +0 -38
  464. package/contracts/experiment/errors/Revert.sol +0 -44
  465. package/contracts/experiment/inheritance/A.sol +0 -53
  466. package/contracts/experiment/inheritance/B.sol +0 -28
  467. package/contracts/experiment/inheritance/C.sol +0 -34
  468. package/contracts/experiment/inheritance/IA.sol +0 -13
  469. package/contracts/experiment/inheritance/IB.sol +0 -10
  470. package/contracts/experiment/inheritance/IC.sol +0 -12
  471. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  472. package/contracts/experiment/statemachine/ISM.sol +0 -25
  473. package/contracts/experiment/statemachine/README.md +0 -112
  474. package/contracts/experiment/statemachine/SM.sol +0 -57
  475. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  476. package/contracts/experiment/types/TypeA.sol +0 -47
  477. package/contracts/experiment/types/TypeB.sol +0 -29
  478. package/contracts/instance/access/Access.sol +0 -165
  479. package/contracts/instance/access/IAccess.sol +0 -63
  480. package/contracts/instance/component/ComponentModule.sol +0 -274
  481. package/contracts/instance/component/IComponent.sol +0 -74
  482. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  483. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  484. package/contracts/instance/policy/IPolicy.sol +0 -50
  485. package/contracts/instance/policy/PolicyModule.sol +0 -114
  486. package/contracts/instance/pool/IPoolModule.sol +0 -23
  487. package/contracts/instance/pool/PoolModule.sol +0 -81
  488. package/contracts/instance/product/IProductService.sol +0 -36
  489. package/contracts/instance/product/ProductService.sol +0 -136
  490. package/contracts/instance/treasury/ITreasury.sol +0 -91
  491. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  492. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  493. package/contracts/registry/IChainNft.sol +0 -21
  494. package/contracts/types/ChainId.sol +0 -38
  495. package/contracts/types/Fee.sol +0 -32
  496. 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,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
- }