@etherisc/gif-next 0.0.2-89368f7-609 → 0.0.2-89c8f37-711

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 (693) hide show
  1. package/README.md +54 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1234 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +262 -1347
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +419 -203
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +417 -2548
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +657 -349
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +579 -410
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +347 -121
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3581 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -144
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1520 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1300 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +786 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +398 -262
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +487 -327
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1312 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +224 -248
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +359 -290
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +283 -233
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +461 -251
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +135 -119
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1196 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -112
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +611 -189
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +477 -318
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +216 -198
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +218 -262
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +60 -34
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +88 -20
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +201 -162
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/distribution/Distribution.sol +295 -0
  319. package/contracts/distribution/DistributionService.sol +337 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  324. package/contracts/instance/IInstance.sol +78 -54
  325. package/contracts/instance/IInstanceService.sol +75 -21
  326. package/contracts/instance/Instance.sol +187 -209
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +173 -83
  330. package/contracts/instance/InstanceService.sol +355 -212
  331. package/contracts/instance/InstanceServiceManager.sol +13 -30
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  338. package/contracts/instance/module/IAccess.sol +20 -22
  339. package/contracts/instance/module/IBundle.sol +8 -8
  340. package/contracts/instance/module/IComponents.sol +51 -0
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +56 -17
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +164 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +55 -0
  355. package/contracts/pool/BundleService.sol +341 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +120 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +150 -0
  360. package/contracts/pool/Pool.sol +328 -0
  361. package/contracts/pool/PoolService.sol +434 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/product/ApplicationServiceManager.sol +38 -0
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +417 -0
  368. package/contracts/product/ClaimServiceManager.sol +38 -0
  369. package/contracts/product/IApplicationService.sol +62 -0
  370. package/contracts/product/IClaimService.sol +99 -0
  371. package/contracts/product/IPolicyService.sol +80 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +499 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +401 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +15 -0
  383. package/contracts/registry/IRegistry.sol +85 -32
  384. package/contracts/registry/IRegistryService.sol +47 -28
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +376 -248
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +111 -217
  389. package/contracts/registry/RegistryServiceManager.sol +26 -53
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +261 -57
  394. package/contracts/shared/Component.sol +280 -0
  395. package/contracts/shared/ComponentService.sol +651 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/IComponent.sol +70 -0
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +13 -12
  404. package/contracts/shared/IPolicyHolder.sol +45 -0
  405. package/contracts/shared/IRegisterable.sol +4 -6
  406. package/contracts/shared/IRegistryLinked.sol +11 -0
  407. package/contracts/shared/IService.sol +16 -6
  408. package/contracts/shared/InitializableCustom.sol +177 -0
  409. package/contracts/shared/InitializableERC165.sol +27 -0
  410. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  411. package/contracts/shared/KeyValueStore.sol +131 -0
  412. package/contracts/shared/Lifecycle.sol +77 -0
  413. package/contracts/shared/NftIdSet.sol +65 -0
  414. package/contracts/shared/NftOwnable.sol +59 -86
  415. package/contracts/shared/PolicyHolder.sol +99 -0
  416. package/contracts/shared/Registerable.sol +26 -41
  417. package/contracts/shared/RegistryLinked.sol +43 -0
  418. package/contracts/shared/Service.sol +58 -31
  419. package/contracts/shared/TokenHandler.sol +37 -6
  420. package/contracts/staking/IStaking.sol +167 -0
  421. package/contracts/staking/IStakingService.sol +160 -0
  422. package/contracts/staking/StakeManagerLib.sol +231 -0
  423. package/contracts/staking/Staking.sol +516 -0
  424. package/contracts/staking/StakingLifecycle.sol +23 -0
  425. package/contracts/staking/StakingManager.sol +50 -0
  426. package/contracts/staking/StakingReader.sol +183 -0
  427. package/contracts/staking/StakingService.sol +411 -0
  428. package/contracts/staking/StakingServiceManager.sol +44 -0
  429. package/contracts/staking/StakingStore.sol +605 -0
  430. package/contracts/staking/TargetManagerLib.sol +207 -0
  431. package/contracts/{types → type}/AddressSet.sol +1 -1
  432. package/contracts/type/Amount.sol +135 -0
  433. package/contracts/{types → type}/Blocknumber.sol +27 -3
  434. package/contracts/type/ClaimId.sol +75 -0
  435. package/contracts/{types → type}/DistributorType.sol +2 -2
  436. package/contracts/{types → type}/Fee.sol +33 -23
  437. package/contracts/{types → type}/NftId.sol +21 -15
  438. package/contracts/{types → type}/NftIdSet.sol +2 -2
  439. package/contracts/type/ObjectType.sol +271 -0
  440. package/contracts/type/PayoutId.sol +82 -0
  441. package/contracts/{types → type}/Referral.sol +6 -1
  442. package/contracts/type/RequestId.sol +75 -0
  443. package/contracts/{types → type}/RiskId.sol +1 -1
  444. package/contracts/type/RoleId.sol +174 -0
  445. package/contracts/type/Seconds.sol +81 -0
  446. package/contracts/type/Selector.sol +102 -0
  447. package/contracts/{types → type}/StateId.sol +34 -4
  448. package/contracts/type/String.sol +53 -0
  449. package/contracts/{types → type}/Timestamp.sol +29 -14
  450. package/contracts/{types → type}/UFixed.sol +35 -9
  451. package/contracts/{types → type}/Version.sol +5 -2
  452. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  453. package/contracts/upgradeability/ProxyManager.sol +198 -0
  454. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  455. package/contracts/upgradeability/Versionable.sol +59 -0
  456. package/package.json +10 -7
  457. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -482
  459. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  460. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  463. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  464. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  465. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  466. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  467. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  468. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  471. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  473. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  475. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  477. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  479. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  481. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  483. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  485. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  487. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  489. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  492. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  494. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  496. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  499. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  501. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  503. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  505. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  507. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  508. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  509. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  511. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  512. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  513. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1102
  515. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  516. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  517. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  518. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  519. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  522. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  524. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  526. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  527. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  528. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  532. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  534. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  536. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  538. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  540. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  543. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  545. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  550. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  552. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  554. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  556. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  558. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  560. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  562. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  564. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  567. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  568. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  570. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  571. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  572. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  573. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  574. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  576. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  578. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  580. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  582. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  584. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  585. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  586. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  588. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  589. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  590. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  591. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  592. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  594. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  596. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  598. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  600. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  602. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  604. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  605. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  606. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  608. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  610. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  612. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  614. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  616. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  619. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  621. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  623. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  625. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  627. package/contracts/components/BaseComponent.sol +0 -150
  628. package/contracts/components/Distribution.sol +0 -163
  629. package/contracts/components/IBaseComponent.sol +0 -32
  630. package/contracts/components/IDistributionComponent.sol +0 -44
  631. package/contracts/components/IPoolComponent.sol +0 -66
  632. package/contracts/components/IProductComponent.sol +0 -35
  633. package/contracts/components/Pool.sol +0 -271
  634. package/contracts/components/Product.sol +0 -292
  635. package/contracts/experiment/cloning/Cloner.sol +0 -47
  636. package/contracts/experiment/errors/Require.sol +0 -38
  637. package/contracts/experiment/errors/Revert.sol +0 -44
  638. package/contracts/experiment/inheritance/A.sol +0 -53
  639. package/contracts/experiment/inheritance/B.sol +0 -28
  640. package/contracts/experiment/inheritance/C.sol +0 -34
  641. package/contracts/experiment/inheritance/IA.sol +0 -13
  642. package/contracts/experiment/inheritance/IB.sol +0 -10
  643. package/contracts/experiment/inheritance/IC.sol +0 -12
  644. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  645. package/contracts/experiment/statemachine/ISM.sol +0 -25
  646. package/contracts/experiment/statemachine/SM.sol +0 -57
  647. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  648. package/contracts/experiment/types/TypeA.sol +0 -47
  649. package/contracts/experiment/types/TypeB.sol +0 -29
  650. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  651. package/contracts/instance/IInstanceBase.sol +0 -26
  652. package/contracts/instance/InstanceAccessManager.sol +0 -311
  653. package/contracts/instance/InstanceBase.sol +0 -41
  654. package/contracts/instance/base/ComponentServiceBase.sol +0 -74
  655. package/contracts/instance/base/IInstanceBase.sol +0 -23
  656. package/contracts/instance/base/KeyValueStore.sol +0 -172
  657. package/contracts/instance/base/Lifecycle.sol +0 -100
  658. package/contracts/instance/module/ISetup.sol +0 -46
  659. package/contracts/instance/module/ITreasury.sol +0 -23
  660. package/contracts/instance/service/BundleService.sol +0 -260
  661. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  662. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  663. package/contracts/instance/service/DistributionService.sol +0 -120
  664. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  665. package/contracts/instance/service/IBundleService.sol +0 -45
  666. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  667. package/contracts/instance/service/IDistributionService.sol +0 -12
  668. package/contracts/instance/service/IPolicyService.sol +0 -87
  669. package/contracts/instance/service/IPoolService.sol +0 -20
  670. package/contracts/instance/service/IProductService.sol +0 -40
  671. package/contracts/instance/service/PolicyService.sol +0 -508
  672. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  673. package/contracts/instance/service/PoolService.sol +0 -126
  674. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  675. package/contracts/instance/service/ProductService.sol +0 -175
  676. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  677. package/contracts/shared/ContractDeployerLib.sol +0 -72
  678. package/contracts/shared/ERC165.sol +0 -25
  679. package/contracts/shared/ProxyManager.sol +0 -94
  680. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  681. package/contracts/shared/Versionable.sol +0 -147
  682. package/contracts/test/TestFee.sol +0 -25
  683. package/contracts/test/TestRegisterable.sol +0 -18
  684. package/contracts/test/TestRoleId.sol +0 -14
  685. package/contracts/test/TestService.sol +0 -24
  686. package/contracts/test/TestToken.sol +0 -26
  687. package/contracts/test/TestVersion.sol +0 -44
  688. package/contracts/test/TestVersionable.sol +0 -17
  689. package/contracts/types/ChainId.sol +0 -38
  690. package/contracts/types/NumberId.sol +0 -52
  691. package/contracts/types/ObjectType.sol +0 -152
  692. package/contracts/types/RoleId.sol +0 -91
  693. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,60 +3,38 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
6
- import {IInstance} from "./IInstance.sol";
7
- import {INSTANCE} from "../types/ObjectType.sol";
8
- import {InstanceReader} from "./InstanceReader.sol";
9
- import {IRegistry} from "../registry/IRegistry.sol";
10
- import {LibNftIdSet} from "../types/NftIdSet.sol";
11
- import {NftId} from "../types/NftId.sol";
12
-
13
- contract ObjectManager is
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 ObjectSet is
14
14
  Cloneable
15
15
  {
16
16
 
17
- event LogObjectManagerInitialized(NftId instanceNftId, address instanceReader);
17
+ event LogObjectSetInitialized(address instance);
18
18
 
19
- error ErrorObjectManagerNftIdInvalid(NftId instanceNftId);
20
- error ErrorObjectManagerAlreadyAdded(NftId componentNftId, NftId objectNftId);
19
+ error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
21
20
 
22
21
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
23
22
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
24
- NftId internal _instanceNftId;
25
- InstanceReader internal _instanceReader;
23
+ IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
26
24
 
27
- constructor() Cloneable() {
28
- _instanceReader = InstanceReader(address(0));
29
- }
30
-
31
- /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
32
- function initialize(
33
- address authority,
34
- address registry,
35
- NftId instanceNftId
36
- )
37
- external
25
+ /// @dev This initializer needs to be called from the instance itself.
26
+ function initialize()
27
+ external
28
+ initializer()
38
29
  {
39
- initialize(authority, registry);
40
-
41
- // check/handle instance nft id/instance reader
42
- IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(instanceNftId);
43
- if (instanceInfo.objectType != INSTANCE()) {
44
- revert ErrorObjectManagerNftIdInvalid(instanceNftId);
45
- }
46
-
47
- IInstance instance = IInstance(instanceInfo.objectAddress);
48
- _instanceReader = instance.getInstanceReader();
49
- _instanceNftId = instanceNftId;
30
+ _instance = IInstance(msg.sender);
31
+ __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
50
32
 
51
- emit LogObjectManagerInitialized(instanceNftId, address(_instanceReader));
52
- }
53
-
54
- function getInstanceReader() external view returns (InstanceReader) {
55
- return _instanceReader;
33
+ emit LogObjectSetInitialized(address(_instance));
56
34
  }
57
35
 
58
- function getInstanceNftId() external view returns (NftId) {
59
- return _instanceNftId;
36
+ function getInstance() external view returns (IInstance) {
37
+ return _instance;
60
38
  }
61
39
 
62
40
  function _add(NftId componentNftId, NftId objectNftId) internal {
@@ -1,48 +1,46 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
4
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
5
 
7
- import {RoleId} from "../../types/RoleId.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {RoleId} from "../../type/RoleId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
9
 
10
10
  interface IAccess {
11
11
 
12
+ enum Type {
13
+ NotInitialized,
14
+ Core,
15
+ Gif,
16
+ Custom
17
+ }
18
+
12
19
  struct RoleInfo {
13
20
  ShortString name;
14
- bool isCustom;
15
- bool isLocked;
21
+ Type rtype;
22
+ //bool isLocked;
23
+ RoleId admin;
16
24
  Timestamp createdAt;
17
25
  Timestamp updatedAt;
18
26
  }
19
27
 
20
28
  struct TargetInfo {
21
29
  ShortString name;
22
- bool isCustom;
30
+ Type ttype;
23
31
  bool isLocked;
24
32
  Timestamp createdAt;
25
33
  Timestamp updatedAt;
26
34
  }
27
35
 
28
- error ErrorIAccessRoleIdInvalid(RoleId roleId);
29
36
  error ErrorIAccessRoleIdTooBig(RoleId roleId);
30
37
  error ErrorIAccessRoleIdTooSmall(RoleId roleId);
31
- error ErrorIAccessRoleIdAlreadyExists(RoleId roleId, ShortString name);
32
- error ErrorIAccessRoleIdNotActive(RoleId roleId);
33
- error ErrorIAccessRoleNameEmpty(RoleId roleId);
34
- error ErrorIAccessRoleNameNotUnique(RoleId roleId, ShortString name);
35
- error ErrorIAccessRoleInvalidUpdate(RoleId roleId, bool isCustom);
36
- error ErrorIAccessRoleIsCustomIsImmutable(RoleId roleId, bool isCustom, bool isCustomExisting);
37
- error ErrorIAccessSetLockedForNonexstentRole(RoleId roleId);
38
- error ErrorIAccessGrantNonexstentRole(RoleId roleId);
39
- error ErrorIAccessRevokeNonexstentRole(RoleId roleId);
40
- error ErrorIAccessRenounceNonexstentRole(RoleId roleId);
38
+ error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
41
39
 
42
40
  error ErrorIAccessTargetAddressZero();
43
- error ErrorIAccessTargetAlreadyExists(address target, ShortString name);
44
- error ErrorIAccessTargetNameEmpty(address target);
45
- error ErrorIAccessTargetNameExists(address target, address existingTarget, ShortString name);
46
- error ErrorIAccessSetLockedForNonexstentTarget(address target);
47
-
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);
48
46
  }
@@ -1,20 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {Timestamp} from "../../types/Timestamp.sol";
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";
7
9
 
8
10
  interface IBundle {
11
+
9
12
  struct BundleInfo {
10
13
  NftId poolNftId;
11
14
  Fee fee; // bundle fee on net premium amounts
12
15
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
13
- uint256 capitalAmount; // net investment capital + net premiums - payouts
14
- uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
15
- uint256 balanceAmount; // total amount of funds: capitalAmount + fees (balance >= captial)
16
- uint256 lifetime;
17
- Timestamp expiredAt; // no new policies
16
+ Seconds lifetime; // lifetime of bundle after creation
17
+ Timestamp expiredAt; // no new policies starting with this timestamp
18
18
  Timestamp closedAt; // no open policies, locked amount = 0
19
19
  }
20
20
  }
@@ -0,0 +1,51 @@
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
+ struct ProductInfo {
25
+ NftId distributionNftId;
26
+ NftId poolNftId;
27
+ Fee productFee; // product fee on net premium
28
+ Fee processingFee; // product fee on payout amounts
29
+ Fee distributionFee; // distribution fee for sales that do not include commissions
30
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
31
+ Fee poolFee; // pool fee on net premium
32
+ Fee stakingFee; // pool fee on staked capital from investor
33
+ Fee performanceFee; // pool fee on profits from capital investors
34
+ }
35
+
36
+
37
+ struct PoolInfo {
38
+ NftId productNftId; // the nft of the product this pool is linked to
39
+ RoleId bundleOwnerRole; // the required role for bundle owners
40
+ // TODO maxCapitalAmount -> maxBalanceAmount
41
+ Amount maxCapitalAmount; // max capital amount allowed for pool
42
+ bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
43
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
44
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
45
+ UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
46
+ UFixed retentionLevel; // amount of collateral held in pool (default 100%)
47
+ Fee poolFee; // pool fee on net premium
48
+ Fee stakingFee; // pool fee on staked capital from investor
49
+ Fee performanceFee; // pool fee on profits from capital investors
50
+ }
51
+ }
@@ -1,10 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {DistributorType} from "../../types/DistributorType.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Timestamp} from "../../types/Timestamp.sol";
7
- import {UFixed} from "../../types/UFixed.sol";
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";
8
9
 
9
10
  interface IDistribution {
10
11
 
@@ -24,6 +25,7 @@ interface IDistribution {
24
25
  DistributorType distributorType;
25
26
  bool active;
26
27
  bytes data;
28
+ uint32 numPoliciesSold;
27
29
  }
28
30
 
29
31
  struct ReferralInfo {
@@ -1,27 +1,63 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
5
- import {NumberId} from "../../types/NumberId.sol";
6
- import {ReferralId} from "../../types/Referral.sol";
7
- import {RiskId} from "../../types/RiskId.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
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";
9
11
 
10
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
11
45
  struct PolicyInfo {
12
46
  NftId productNftId;
13
47
  NftId bundleNftId;
14
48
  ReferralId referralId;
15
49
  RiskId riskId;
16
- uint256 sumInsuredAmount;
17
- uint256 premiumAmount;
18
- uint256 premiumPaidAmount;
19
- uint256 lifetime;
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
20
55
  bytes applicationData;
21
- bytes policyData;
56
+ bytes processData;
22
57
  uint16 claimsCount;
23
58
  uint16 openClaimsCount;
24
- uint256 payoutAmount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
25
61
  Timestamp activatedAt; // time of underwriting
26
62
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
27
63
  Timestamp closedAt; // no locked capital (or declinedAt)
@@ -29,16 +65,19 @@ interface IPolicy {
29
65
 
30
66
  // claimId neeeds to be encoded policyNftId:claimId combination
31
67
  struct ClaimInfo {
32
- uint256 claimAmount;
33
- uint256 paidAmount;
34
- bytes data;
35
- Timestamp closedAt; // payoment of confirmed claim amount (or declinedAt)
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)
36
75
  }
37
76
 
38
77
  // claimId neeeds to be encoded policyNftId:claimId combination
39
78
  struct PayoutInfo {
40
- NumberId claimId;
41
- uint256 amount;
79
+ ClaimId claimId;
80
+ Amount amount;
42
81
  bytes data;
43
82
  Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
44
83
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
4
+ import {NftId} from "../../type/NftId.sol";
5
5
 
6
6
  interface IRisk {
7
7
  struct RiskInfo {
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
- contract USDC is ERC20 {
6
+ contract Dip is ERC20 {
7
7
 
8
8
  // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
12
  uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
13
  // decimals == 18 (openzeppelin erc20 default)
14
14
  constructor()
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../contracts/authorization/IAuthorization.sol";
5
+ import {NftId} from "../../contracts/type/NftId.sol";
6
+ import {Oracle} from "../../contracts/oracle/Oracle.sol";
7
+ import {RequestId} from "../../contracts/type/RequestId.sol";
8
+
9
+ contract BasicOracle is
10
+ Oracle
11
+ {
12
+
13
+ /// Function to provide reponse data releated to request id.
14
+ function respond(
15
+ RequestId requestId,
16
+ bytes memory responseData
17
+ )
18
+ external
19
+ virtual
20
+ restricted()
21
+ {
22
+ _respond(requestId, responseData);
23
+ }
24
+
25
+ function _initializeBasicOracle(
26
+ address registry,
27
+ NftId instanceNftId,
28
+ IAuthorization authorization,
29
+ address initialOwner,
30
+ string memory name,
31
+ address token
32
+ )
33
+ internal
34
+ virtual
35
+ onlyInitializing()
36
+ {
37
+
38
+ _initializeOracle(
39
+ registry,
40
+ instanceNftId,
41
+ authorization,
42
+ initialOwner,
43
+ name,
44
+ token,
45
+ "",
46
+ "");
47
+ }
48
+ }
@@ -0,0 +1,46 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicOracle} from "./BasicOracle.sol";
6
+ import {ORACLE} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IOracle} from "./IOracle.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicOracleAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory componentName)
18
+ Authorization(componentName)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ // basic component target
26
+ _addComponentTargetWithRole(ORACLE());
27
+ }
28
+
29
+
30
+ function _setupTargetAuthorizations()
31
+ internal
32
+ virtual override
33
+ {
34
+ IAccess.FunctionInfo[] storage functions;
35
+
36
+ // authorize public role (open access to any account, only allows to lock target)
37
+ functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
38
+ _authorize(functions, IOracle.request.selector, "request");
39
+ _authorize(functions, IOracle.cancel.selector, "cancel");
40
+
41
+ // authorize public role (open access to any account, only allows to lock target)
42
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
43
+ _authorize(functions, BasicOracle.respond.selector, "respond");
44
+ }
45
+ }
46
+
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
6
+ import {Timestamp} from "../type/Timestamp.sol";
7
+
8
+
9
+ interface IOracle {
10
+
11
+ struct RequestInfo {
12
+ NftId requesterNftId; // originator of the request
13
+ string callbackMethodName; // callback function of the requestor to call to provide response data
14
+ NftId oracleNftId; // responsible oracle component
15
+ bytes requestData;
16
+ bytes responseData;
17
+ Timestamp respondedAt; // response timestamp
18
+ Timestamp expiredAt; // expiry timestamp
19
+ bool isCancelled;
20
+ }
21
+
22
+
23
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
24
+ function request(
25
+ RequestId requestId,
26
+ NftId requesterId,
27
+ bytes calldata requestData,
28
+ Timestamp expiryAt
29
+ ) external;
30
+
31
+
32
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
33
+ function cancel(
34
+ RequestId requestId
35
+ ) external;
36
+ }
@@ -0,0 +1,33 @@
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
+ error ErrorOracleNotImplemented(string methodName);
15
+
16
+ /// @dev callback method for requesting some data from the oracle
17
+ function request(
18
+ RequestId requestId,
19
+ NftId requesterNftId,
20
+ bytes calldata requestData,
21
+ Timestamp expiryAt
22
+ ) external;
23
+
24
+
25
+ /// @dev callback method for cancelling the specified oracle request
26
+ function cancel(
27
+ RequestId requestId
28
+ ) external;
29
+
30
+
31
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
32
+ function isVerifying() external view returns (bool verifying);
33
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {RequestId} from "../type/RequestId.sol";
7
+ import {StateId} from "../type/StateId.sol";
8
+ import {Timestamp} from "../type/Timestamp.sol";
9
+
10
+
11
+ interface IOracleService is IService {
12
+
13
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
14
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
15
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
16
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
17
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
+
19
+ // create request
20
+ error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
+ error ErrorOracleServiceCallbackMethodNameEmpty();
23
+
24
+ // respond
25
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
26
+
27
+ // get request info
28
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
29
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
30
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
31
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
32
+
33
+ /// @dev send an oracle request to the specified oracle component.
34
+ /// the function returns the id of the newly created request.
35
+ /// permissioned: only registered components may send requests to oracles.
36
+ function request(
37
+ NftId oracleNftId,
38
+ bytes calldata requestData,
39
+ Timestamp expiryAt,
40
+ string calldata callbackMethodName
41
+ ) external returns (RequestId requestId);
42
+
43
+ /// @dev respond to oracle request by oracle compnent.
44
+ /// the response data is amende in the request info stored with the instance.
45
+ /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
46
+ /// or to FAILED when calling the requester is not succesful.
47
+ /// the function returns true iff the state changes to FULFILLED.
48
+ /// permissioned: only the oracle component linked to the request id may call this method
49
+ function respond(
50
+ RequestId requestId,
51
+ bytes calldata responseData
52
+ ) external returns (bool success);
53
+
54
+ /// @dev re send a failed response to the requester.
55
+ /// only requests in state FAILED may be re sent.
56
+ /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
57
+ /// permissioned: only the requester may resend a request
58
+ function resend(RequestId requestId) external;
59
+
60
+ /// @dev notify the oracle component that the specified request has become invalid.
61
+ /// only requests in state ACTIVE may be cancelled.
62
+ /// permissioned: only the requester may cancel a request
63
+ function cancel(RequestId requestId) external;
64
+
65
+ }