@etherisc/gif-next 0.0.2-e6ad61d-739 → 0.0.2-e769e2e-077

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