@etherisc/gif-next 0.0.2-e6ad61d-739 → 0.0.2-e802d97-713

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 (569) hide show
  1. package/README.md +338 -19
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -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 +331 -1138
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -1216
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  49. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  51. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  53. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  54. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/treasury/ITreasury.sol/ITreasury.json → oracle/IOracle.sol/IOracle.json} +2 -2
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  58. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  60. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  62. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  70. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  72. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  74. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  76. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  77. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  78. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  90. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  92. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  94. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  96. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  98. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  99. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  100. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/product/IProductService.sol/IProductService.json +387 -0
  102. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  110. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  111. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  112. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +744 -26
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +1026 -52
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  158. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  164. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  166. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  168. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +468 -0
  170. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
  172. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  173. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  174. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  178. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  180. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IService.sol/IService.json} +168 -134
  182. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  184. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  185. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  186. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  188. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  190. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  192. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  194. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  196. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  198. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  205. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  208. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  210. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  211. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  218. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  219. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  233. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  264. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  266. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  270. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  272. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  274. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  276. package/contracts/distribution/Distribution.sol +261 -0
  277. package/contracts/distribution/DistributionService.sol +298 -0
  278. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  279. package/contracts/distribution/IDistributionComponent.sol +66 -0
  280. package/contracts/distribution/IDistributionService.sol +81 -0
  281. package/contracts/instance/BundleManager.sol +126 -0
  282. package/contracts/instance/IInstance.sol +79 -22
  283. package/contracts/instance/IInstanceService.sol +81 -0
  284. package/contracts/instance/Instance.sol +217 -53
  285. package/contracts/instance/InstanceAdmin.sol +331 -0
  286. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  287. package/contracts/instance/InstanceReader.sol +390 -0
  288. package/contracts/instance/InstanceService.sol +362 -0
  289. package/contracts/instance/InstanceServiceManager.sol +44 -0
  290. package/contracts/instance/InstanceStore.sol +281 -0
  291. package/contracts/instance/base/BalanceStore.sol +118 -0
  292. package/contracts/instance/base/Cloneable.sol +51 -0
  293. package/contracts/instance/base/ObjectCounter.sol +21 -0
  294. package/contracts/instance/base/ObjectManager.sol +82 -0
  295. package/contracts/instance/module/IAccess.sol +46 -0
  296. package/contracts/instance/module/IBundle.sol +20 -0
  297. package/contracts/instance/module/IComponents.sol +52 -0
  298. package/contracts/instance/module/IDistribution.sol +42 -0
  299. package/contracts/instance/module/IPolicy.sol +84 -0
  300. package/contracts/instance/module/IRisk.sol +11 -0
  301. package/contracts/mock/Dip.sol +26 -0
  302. package/contracts/oracle/IOracle.sol +20 -0
  303. package/contracts/oracle/IOracleComponent.sol +32 -0
  304. package/contracts/oracle/IOracleService.sol +65 -0
  305. package/contracts/oracle/Oracle.sol +145 -0
  306. package/contracts/oracle/OracleService.sol +277 -0
  307. package/contracts/oracle/OracleServiceManager.sol +42 -0
  308. package/contracts/pool/BundleService.sol +296 -0
  309. package/contracts/pool/BundleServiceManager.sol +42 -0
  310. package/contracts/pool/IBundleService.sol +106 -0
  311. package/contracts/pool/IPoolComponent.sol +112 -0
  312. package/contracts/pool/IPoolService.sol +150 -0
  313. package/contracts/pool/Pool.sol +299 -0
  314. package/contracts/pool/PoolService.sol +453 -0
  315. package/contracts/pool/PoolServiceManager.sol +42 -0
  316. package/contracts/product/ApplicationService.sol +254 -0
  317. package/contracts/product/ApplicationServiceManager.sol +38 -0
  318. package/contracts/product/ClaimService.sol +442 -0
  319. package/contracts/product/ClaimServiceManager.sol +38 -0
  320. package/contracts/product/IApplicationService.sol +62 -0
  321. package/contracts/product/IClaimService.sol +99 -0
  322. package/contracts/product/IPolicyService.sol +78 -0
  323. package/contracts/product/IPricingService.sol +39 -0
  324. package/contracts/product/IProductComponent.sol +42 -0
  325. package/contracts/product/IProductService.sol +33 -0
  326. package/contracts/product/PolicyService.sol +475 -0
  327. package/contracts/product/PolicyServiceManager.sol +42 -0
  328. package/contracts/product/PricingService.sol +301 -0
  329. package/contracts/product/PricingServiceManager.sol +42 -0
  330. package/contracts/product/Product.sol +377 -0
  331. package/contracts/product/ProductService.sol +124 -0
  332. package/contracts/product/ProductServiceManager.sol +42 -0
  333. package/contracts/registry/ChainNft.sol +144 -62
  334. package/contracts/registry/IRegistry.sol +99 -42
  335. package/contracts/registry/IRegistryService.sol +69 -0
  336. package/contracts/registry/ITransferInterceptor.sol +7 -0
  337. package/contracts/registry/Registry.sol +521 -127
  338. package/contracts/registry/RegistryAdmin.sol +237 -0
  339. package/contracts/registry/RegistryService.sol +266 -0
  340. package/contracts/registry/RegistryServiceManager.sol +58 -0
  341. package/contracts/registry/ReleaseManager.sol +600 -0
  342. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  343. package/contracts/registry/TokenRegistry.sol +315 -0
  344. package/contracts/shared/AccessManagerCustom.sol +736 -0
  345. package/contracts/shared/AccessManagerExtended.sol +470 -0
  346. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  347. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  348. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  349. package/contracts/shared/Component.sol +281 -0
  350. package/contracts/shared/ComponentService.sol +618 -0
  351. package/contracts/shared/ComponentServiceManager.sol +35 -0
  352. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  353. package/contracts/shared/ERC165.sol +27 -0
  354. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  355. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  356. package/contracts/shared/IComponent.sol +70 -0
  357. package/contracts/shared/IComponentService.sol +102 -0
  358. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  359. package/contracts/shared/IKeyValueStore.sol +53 -0
  360. package/contracts/shared/ILifecycle.sol +30 -0
  361. package/contracts/shared/INftOwnable.sol +23 -0
  362. package/contracts/shared/IPolicyHolder.sol +45 -0
  363. package/contracts/shared/IRegisterable.sol +15 -0
  364. package/contracts/shared/IRegistryLinked.sol +11 -0
  365. package/contracts/shared/IService.sol +18 -0
  366. package/contracts/shared/IVersionable.sol +53 -0
  367. package/contracts/shared/InitializableCustom.sol +177 -0
  368. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  369. package/contracts/shared/KeyValueStore.sol +127 -0
  370. package/contracts/shared/Lifecycle.sol +130 -0
  371. package/contracts/shared/NftIdSetManager.sol +65 -0
  372. package/contracts/shared/NftOwnable.sol +107 -0
  373. package/contracts/shared/PolicyHolder.sol +102 -0
  374. package/contracts/shared/ProxyManager.sol +199 -0
  375. package/contracts/shared/Registerable.sol +75 -0
  376. package/contracts/shared/RegistryLinked.sol +43 -0
  377. package/contracts/shared/Service.sol +77 -0
  378. package/contracts/shared/TokenHandler.sol +58 -0
  379. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  380. package/contracts/shared/Versionable.sol +59 -0
  381. package/contracts/staking/IStaking.sol +168 -0
  382. package/contracts/staking/IStakingService.sol +149 -0
  383. package/contracts/staking/StakeManagerLib.sol +179 -0
  384. package/contracts/staking/Staking.sol +551 -0
  385. package/contracts/staking/StakingManager.sol +54 -0
  386. package/contracts/staking/StakingReader.sol +187 -0
  387. package/contracts/staking/StakingService.sol +406 -0
  388. package/contracts/staking/StakingServiceManager.sol +45 -0
  389. package/contracts/staking/StakingStore.sol +572 -0
  390. package/contracts/staking/TargetManagerLib.sol +207 -0
  391. package/contracts/type/AddressSet.sol +58 -0
  392. package/contracts/type/Amount.sol +128 -0
  393. package/contracts/{types → type}/Blocknumber.sol +21 -3
  394. package/contracts/type/ClaimId.sol +75 -0
  395. package/contracts/type/DistributorType.sol +55 -0
  396. package/contracts/type/Fee.sol +66 -0
  397. package/contracts/type/Key32.sol +50 -0
  398. package/contracts/type/NftId.sol +78 -0
  399. package/contracts/type/NftIdSet.sol +62 -0
  400. package/contracts/{types → type}/ObjectType.sol +81 -20
  401. package/contracts/type/PayoutId.sol +82 -0
  402. package/contracts/type/Referral.sol +89 -0
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/type/RiskId.sol +43 -0
  405. package/contracts/type/RoleId.sol +146 -0
  406. package/contracts/type/Seconds.sol +81 -0
  407. package/contracts/{types → type}/StateId.sol +50 -6
  408. package/contracts/{types → type}/Timestamp.sol +41 -7
  409. package/contracts/type/UFixed.sol +326 -0
  410. package/contracts/type/Version.sol +108 -0
  411. package/package.json +14 -7
  412. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  413. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  414. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  415. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  416. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  417. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  418. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  419. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  420. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  421. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  422. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  423. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  424. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  426. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  428. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  430. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  432. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  434. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  436. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  438. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  440. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  442. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  444. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  446. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  450. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  452. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  454. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  456. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  458. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  459. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  460. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  461. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  462. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  463. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  464. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  465. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  466. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  467. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  468. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  469. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  470. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  471. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  472. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  473. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  474. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  476. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  477. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  478. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  479. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  480. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  482. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  483. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  484. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  485. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  486. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  487. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  488. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  489. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  490. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  491. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  493. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  494. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  495. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  497. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  498. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  499. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  501. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  502. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  503. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  504. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  505. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  506. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  507. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  508. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  509. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  510. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  511. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  512. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  513. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  514. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  515. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  516. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  517. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  518. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  520. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  523. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  525. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  528. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  529. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  530. package/contracts/components/Component.sol +0 -77
  531. package/contracts/components/IPool.sol +0 -15
  532. package/contracts/components/IProduct.sol +0 -16
  533. package/contracts/components/Pool.sol +0 -52
  534. package/contracts/components/Product.sol +0 -89
  535. package/contracts/experiment/errors/Require.sol +0 -38
  536. package/contracts/experiment/errors/Revert.sol +0 -44
  537. package/contracts/experiment/inheritance/A.sol +0 -53
  538. package/contracts/experiment/inheritance/B.sol +0 -28
  539. package/contracts/experiment/inheritance/C.sol +0 -34
  540. package/contracts/experiment/inheritance/IA.sol +0 -13
  541. package/contracts/experiment/inheritance/IB.sol +0 -10
  542. package/contracts/experiment/inheritance/IC.sol +0 -12
  543. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  544. package/contracts/experiment/statemachine/ISM.sol +0 -25
  545. package/contracts/experiment/statemachine/README.md +0 -112
  546. package/contracts/experiment/statemachine/SM.sol +0 -57
  547. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  548. package/contracts/experiment/types/TypeA.sol +0 -47
  549. package/contracts/experiment/types/TypeB.sol +0 -29
  550. package/contracts/instance/access/Access.sol +0 -165
  551. package/contracts/instance/access/IAccess.sol +0 -63
  552. package/contracts/instance/component/ComponentModule.sol +0 -274
  553. package/contracts/instance/component/IComponent.sol +0 -74
  554. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  555. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  556. package/contracts/instance/policy/IPolicy.sol +0 -50
  557. package/contracts/instance/policy/PolicyModule.sol +0 -114
  558. package/contracts/instance/pool/IPoolModule.sol +0 -23
  559. package/contracts/instance/pool/PoolModule.sol +0 -81
  560. package/contracts/instance/product/IProductService.sol +0 -36
  561. package/contracts/instance/product/ProductService.sol +0 -136
  562. package/contracts/instance/treasury/ITreasury.sol +0 -91
  563. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  564. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  565. package/contracts/registry/IChainNft.sol +0 -21
  566. package/contracts/types/ChainId.sol +0 -38
  567. package/contracts/types/Fee.sol +0 -32
  568. package/contracts/types/NftId.sol +0 -51
  569. package/contracts/types/UFixed.sol +0 -210
@@ -0,0 +1,118 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+
8
+ contract BalanceStore {
9
+
10
+ error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
11
+ error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
12
+
13
+ event LogBalanceStoreTargetRegistered(NftId targetNftId);
14
+
15
+ event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
+ event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
17
+
18
+ event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
+ event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
20
+
21
+ event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
+ event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
23
+
24
+ mapping(NftId nftId => Amount balance) private _balanceAmount;
25
+ mapping(NftId nftId => Amount locked) private _lockedAmount;
26
+ mapping(NftId nftId => Amount fees) private _feeAmount;
27
+ mapping(NftId nftId => bool isRegistered) private _isRegistered;
28
+
29
+ // TODO check if this is made redundant by *Info struct updates
30
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
31
+
32
+ modifier onlyRegisteredTarget(NftId targetNftId) {
33
+ if (!_isRegistered[targetNftId]) {
34
+ revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
35
+ }
36
+ _;
37
+ }
38
+
39
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
40
+ function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
41
+ function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
42
+
43
+ function getAmounts(NftId targetNftId)
44
+ external
45
+ view
46
+ returns (
47
+ Amount balanceAmount,
48
+ Amount lockedAmount,
49
+ Amount feeAmount
50
+ )
51
+ {
52
+ balanceAmount = _balanceAmount[targetNftId];
53
+ lockedAmount = _lockedAmount[targetNftId];
54
+ feeAmount = _feeAmount[targetNftId];
55
+ }
56
+
57
+ function _registerBalanceTarget(NftId targetNftId) internal {
58
+ if (_isRegistered[targetNftId]) {
59
+ revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
60
+ }
61
+
62
+ _isRegistered[targetNftId] = true;
63
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
64
+
65
+ emit LogBalanceStoreTargetRegistered(targetNftId);
66
+ }
67
+
68
+ //--- fee management ----------------------------------------------------//
69
+ function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
70
+ newBalance = _feeAmount[targetNftId] + amount;
71
+ _feeAmount[targetNftId] = newBalance;
72
+
73
+ emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
74
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
75
+ }
76
+
77
+ function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
78
+ newBalance = _feeAmount[targetNftId] - amount;
79
+ _feeAmount[targetNftId] = newBalance;
80
+
81
+ emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
82
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
83
+ }
84
+
85
+ //--- locked management -------------------------------------------------//
86
+ function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
87
+ newBalance = _lockedAmount[targetNftId] + amount;
88
+ _lockedAmount[targetNftId] = newBalance;
89
+
90
+ emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
91
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
92
+ }
93
+
94
+ function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
95
+ newBalance = _lockedAmount[targetNftId] - amount;
96
+ _lockedAmount[targetNftId] = newBalance;
97
+
98
+ emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
99
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
100
+ }
101
+
102
+ //--- balance management ------------------------------------------------//
103
+ function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
104
+ newBalance = _balanceAmount[targetNftId] + amount;
105
+ _balanceAmount[targetNftId] = newBalance;
106
+
107
+ emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
108
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
109
+ }
110
+
111
+ function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
112
+ newBalance = _balanceAmount[targetNftId] - amount;
113
+ _balanceAmount[targetNftId] = newBalance;
114
+
115
+ emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
116
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
117
+ }
118
+ }
@@ -0,0 +1,51 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
+
7
+ import {IRegistry} from "../../registry/IRegistry.sol";
8
+
9
+ abstract contract Cloneable is
10
+ AccessManagedUpgradeable
11
+ {
12
+ event CloneableInitialized(address authority, address registry);
13
+
14
+ error CloneableAuthorityZero();
15
+ error CloneableRegistryInvalid(address registry);
16
+
17
+ IRegistry internal _registry;
18
+
19
+ constructor() {
20
+ _registry = IRegistry(address(0));
21
+ }
22
+
23
+ /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
24
+ function initialize(
25
+ address authority,
26
+ address registry
27
+ )
28
+ public
29
+ onlyInitializing
30
+ {
31
+ // check/handle access managed
32
+ if(authority == address(0)) {
33
+ revert CloneableAuthorityZero();
34
+ }
35
+
36
+ __AccessManaged_init(authority);
37
+
38
+ // check/handle registry
39
+ if (registry.code.length == 0) {
40
+ revert CloneableRegistryInvalid(registry);
41
+ }
42
+
43
+ _registry = IRegistry(registry);
44
+
45
+ emit CloneableInitialized(authority, registry);
46
+ }
47
+
48
+ function getRegistry() external view returns (IRegistry) {
49
+ return _registry;
50
+ }
51
+ }
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
8
+
9
+ contract ObjectCounter {
10
+
11
+ // TODO refactor risk id
12
+ // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
+
14
+ uint256 private _requestCounter;
15
+
16
+ // TODO introduce RequestId (uint64)
17
+ function _createNextRequestId() internal returns (RequestId requestId) {
18
+ _requestCounter++;
19
+ requestId = RequestIdLib.toRequestId(_requestCounter);
20
+ }
21
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Cloneable} from "./Cloneable.sol";
5
+
6
+ import {IInstance} from "../IInstance.sol";
7
+ import {INSTANCE} from "../../type/ObjectType.sol";
8
+ import {InstanceReader} from "../InstanceReader.sol";
9
+ import {IRegistry} from "../../registry/IRegistry.sol";
10
+ import {LibNftIdSet} from "../../type/NftIdSet.sol";
11
+ import {NftId} from "../../type/NftId.sol";
12
+
13
+ contract ObjectManager is
14
+ Cloneable
15
+ {
16
+
17
+ event LogObjectManagerInitialized(address instance);
18
+
19
+ error ErrorObjectManagerNftIdInvalid(NftId instanceNftId);
20
+ error ErrorObjectManagerAlreadyAdded(NftId componentNftId, NftId objectNftId);
21
+
22
+ mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
23
+ mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
24
+ IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectManager initialization
25
+
26
+ /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
27
+ function initialize(address instanceAddress)
28
+ initializer
29
+ external
30
+ {
31
+ IInstance instance = IInstance(instanceAddress);
32
+ initialize(instance.authority(), address(instance.getRegistry()));
33
+
34
+ _instance = instance;
35
+
36
+ emit LogObjectManagerInitialized(instanceAddress);
37
+ }
38
+
39
+ function getInstance() external view returns (IInstance) {
40
+ return _instance;
41
+ }
42
+
43
+ function _add(NftId componentNftId, NftId objectNftId) internal {
44
+ LibNftIdSet.Set storage allSet = _allObjects[componentNftId];
45
+ LibNftIdSet.Set storage activeSet = _activeObjects[componentNftId];
46
+
47
+ LibNftIdSet.add(allSet, objectNftId);
48
+ LibNftIdSet.add(activeSet, objectNftId);
49
+ }
50
+
51
+ function _activate(NftId componentNftId, NftId objectNftId) internal {
52
+ LibNftIdSet.add(_activeObjects[componentNftId], objectNftId);
53
+ }
54
+
55
+ function _deactivate(NftId componentNftId, NftId objectNftId) internal {
56
+ LibNftIdSet.remove(_activeObjects[componentNftId], objectNftId);
57
+ }
58
+
59
+ function _objects(NftId componentNftId) internal view returns (uint256) {
60
+ return LibNftIdSet.size(_allObjects[componentNftId]);
61
+ }
62
+
63
+ function _contains(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
64
+ return LibNftIdSet.contains(_allObjects[componentNftId], objectNftId);
65
+ }
66
+
67
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
68
+ return LibNftIdSet.getElementAt(_allObjects[componentNftId], idx);
69
+ }
70
+
71
+ function _activeObjs(NftId componentNftId) internal view returns (uint256) {
72
+ return LibNftIdSet.size(_activeObjects[componentNftId]);
73
+ }
74
+
75
+ function _isActive(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
76
+ return LibNftIdSet.contains(_activeObjects[componentNftId], objectNftId);
77
+ }
78
+
79
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
80
+ return LibNftIdSet.getElementAt(_activeObjects[componentNftId], idx);
81
+ }
82
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
5
+
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {RoleId} from "../../type/RoleId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ interface IAccess {
11
+
12
+ enum Type {
13
+ NotInitialized,
14
+ Core,
15
+ Gif,
16
+ Custom
17
+ }
18
+
19
+ struct RoleInfo {
20
+ ShortString name;
21
+ Type rtype;
22
+ //bool isLocked;
23
+ RoleId admin;
24
+ Timestamp createdAt;
25
+ Timestamp updatedAt;
26
+ }
27
+
28
+ struct TargetInfo {
29
+ ShortString name;
30
+ Type ttype;
31
+ bool isLocked;
32
+ Timestamp createdAt;
33
+ Timestamp updatedAt;
34
+ }
35
+
36
+ error ErrorIAccessRoleIdTooBig(RoleId roleId);
37
+ error ErrorIAccessRoleIdTooSmall(RoleId roleId);
38
+ error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
39
+
40
+ error ErrorIAccessTargetAddressZero();
41
+ error ErrorIAccessTargetTypeInvalid(address target, Type ttype);
42
+ error ErrorIAccessTargetLocked(address target);
43
+ error ErrorIAccessTargetNotRegistered(address target);
44
+ error ErrorIAccessTargetAuthorityInvalid(address target, address targetAuthority);
45
+ error ErrorIAccessTargetInstanceMismatch(address target, NftId targetParentNftId, NftId instanceNftId);
46
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Fee} from "../../type/Fee.sol";
7
+ import {Seconds} from "../../type/Seconds.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ interface IBundle {
11
+
12
+ struct BundleInfo {
13
+ NftId poolNftId;
14
+ Fee fee; // bundle fee on net premium amounts
15
+ bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
+ Seconds lifetime; // lifetime of bundle after creation
17
+ Timestamp expiredAt; // no new policies starting with this timestamp
18
+ Timestamp closedAt; // no open policies, locked amount = 0
19
+ }
20
+ }
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {NftId} from "../../type/NftId.sol";
9
+ import {RoleId} from "../../type/RoleId.sol";
10
+ import {TokenHandler} from "../../shared/TokenHandler.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ interface IComponents {
14
+
15
+ struct ComponentInfo {
16
+ string name; // component name (needs to be unique per instance)
17
+ NftId productNftId;
18
+ IERC20Metadata token;
19
+ TokenHandler tokenHandler;
20
+ address wallet;
21
+ bytes data; // will hold component type specific additional info (eg encoded pool info)
22
+ }
23
+
24
+
25
+ struct ProductInfo {
26
+ NftId distributionNftId;
27
+ NftId poolNftId;
28
+ Fee productFee; // product fee on net premium
29
+ Fee processingFee; // product fee on payout amounts
30
+ Fee distributionFee; // distribution fee for sales that do not include commissions
31
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
32
+ Fee poolFee; // pool fee on net premium
33
+ Fee stakingFee; // pool fee on staked capital from investor
34
+ Fee performanceFee; // pool fee on profits from capital investors
35
+ }
36
+
37
+
38
+ struct PoolInfo {
39
+ NftId productNftId; // the nft of the product this pool is linked to
40
+ RoleId bundleOwnerRole; // the required role for bundle owners
41
+ // TODO maxCapitalAmount -> maxBalanceAmount
42
+ Amount maxCapitalAmount; // max capital amount allowed for pool
43
+ bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
44
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
45
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
46
+ UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
47
+ UFixed retentionLevel; // amount of collateral held in pool (default 100%)
48
+ Fee poolFee; // pool fee on net premium
49
+ Fee stakingFee; // pool fee on staked capital from investor
50
+ Fee performanceFee; // pool fee on profits from capital investors
51
+ }
52
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {DistributorType} from "../../type/DistributorType.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {Timestamp} from "../../type/Timestamp.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
9
+
10
+ interface IDistribution {
11
+
12
+ struct DistributorTypeInfo {
13
+ string name;
14
+ UFixed minDiscountPercentage;
15
+ UFixed maxDiscountPercentage;
16
+ UFixed commissionPercentage;
17
+ uint32 maxReferralCount;
18
+ uint32 maxReferralLifetime;
19
+ bool allowSelfReferrals;
20
+ bool allowRenewals;
21
+ bytes data;
22
+ }
23
+
24
+ struct DistributorInfo {
25
+ DistributorType distributorType;
26
+ bool active;
27
+ bytes data;
28
+ Amount commissionAmount;
29
+ uint32 numPoliciesSold;
30
+ }
31
+
32
+ struct ReferralInfo {
33
+ NftId distributorNftId;
34
+ string referralCode;
35
+ UFixed discountPercentage;
36
+ uint32 maxReferrals;
37
+ uint32 usedReferrals;
38
+ Timestamp expiryAt;
39
+ bytes data;
40
+ }
41
+
42
+ }
@@ -0,0 +1,84 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {ReferralId} from "../../type/Referral.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+ import {Seconds} from "../../type/Seconds.sol";
10
+ import {Timestamp} from "../../type/Timestamp.sol";
11
+
12
+ interface IPolicy {
13
+
14
+ struct Premium {
15
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
21
+ // this is the net premium calculated by the product
22
+ uint256 netPremiumAmount;
23
+ // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
+ uint256 fullPremiumAmount;
25
+ // premium = fullPremium - discount
26
+ uint256 premiumAmount;
27
+ uint256 productFeeFixAmount;
28
+ uint256 poolFeeFixAmount;
29
+ uint256 bundleFeeFixAmount;
30
+ uint256 distributionFeeFixAmount;
31
+ uint256 productFeeVarAmount;
32
+ uint256 poolFeeVarAmount;
33
+ uint256 bundleFeeVarAmount;
34
+ uint256 distributionFeeVarAmount;
35
+ uint256 distributionOwnerFeeFixAmount;
36
+ // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
+ uint256 distributionOwnerFeeVarAmount;
38
+ // this value is based on distributor type referenced in the referral
39
+ uint256 commissionAmount;
40
+ // this is based on referral used
41
+ uint256 discountAmount;
42
+ }
43
+
44
+ /// @dev policy data for the full policy lifecycle
45
+ struct PolicyInfo {
46
+ NftId productNftId;
47
+ NftId bundleNftId;
48
+ ReferralId referralId;
49
+ RiskId riskId;
50
+ Amount sumInsuredAmount;
51
+ Amount premiumAmount; // expected premium at application time
52
+ Amount premiumPaidAmount; // actual paid premium
53
+ Seconds lifetime;
54
+ // policy application data, no changes after applying for a policy
55
+ bytes applicationData;
56
+ bytes processData;
57
+ uint16 claimsCount;
58
+ uint16 openClaimsCount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
61
+ Timestamp activatedAt; // time of underwriting
62
+ Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
+ Timestamp closedAt; // no locked capital (or declinedAt)
64
+ }
65
+
66
+ // claimId neeeds to be encoded policyNftId:claimId combination
67
+ struct ClaimInfo {
68
+ Amount claimAmount;
69
+ Amount paidAmount;
70
+ uint8 payoutsCount;
71
+ uint8 openPayoutsCount;
72
+ bytes submissionData; // claim submission data, no changes after submitting the claim
73
+ bytes processData; // data that may include information supporting confirm or decline
74
+ Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
+ }
76
+
77
+ // claimId neeeds to be encoded policyNftId:claimId combination
78
+ struct PayoutInfo {
79
+ ClaimId claimId;
80
+ Amount amount;
81
+ bytes data;
82
+ Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
83
+ }
84
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../../type/NftId.sol";
5
+
6
+ interface IRisk {
7
+ struct RiskInfo {
8
+ NftId productNftId;
9
+ bytes data;
10
+ }
11
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
+
6
+ contract Dip is ERC20 {
7
+
8
+ // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
+ uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
+ // decimals == 18 (openzeppelin erc20 default)
14
+ constructor()
15
+ ERC20(NAME, SYMBOL)
16
+ {
17
+ _mint(
18
+ _msgSender(),
19
+ INITIAL_SUPPLY
20
+ );
21
+ }
22
+
23
+ function decimals() public pure override returns(uint8) {
24
+ return DECIMALS;
25
+ }
26
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {Timestamp} from "../type/Timestamp.sol";
6
+
7
+
8
+ interface IOracle {
9
+
10
+ struct RequestInfo {
11
+ NftId requesterNftId; // originator of the request
12
+ string callbackMethodName; // callback function of the requestor to call to provide response data
13
+ NftId oracleNftId; // responsible oracle component
14
+ bytes requestData;
15
+ bytes responseData;
16
+ Timestamp respondedAt; // response timestamp
17
+ Timestamp expiredAt; // expiry timestamp
18
+ bool isCancelled;
19
+ }
20
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {RequestId} from "../type/RequestId.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IOracleComponent is IInstanceLinkedComponent {
14
+
15
+ /// @dev callback method for requesting some data from the oracle
16
+ function request(
17
+ RequestId requestId,
18
+ NftId requesterNftId,
19
+ bytes calldata requestData,
20
+ Timestamp expiryAt
21
+ ) external;
22
+
23
+
24
+ /// @dev callback method for cancelling the specified oracle request
25
+ function cancel(
26
+ RequestId requestId
27
+ ) external;
28
+
29
+
30
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
31
+ function isVerifying() external view returns (bool verifying);
32
+ }