@etherisc/gif-next 0.0.2-6f86ab0-796 → 0.0.2-704b918-802

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 (446) hide show
  1. package/README.md +19 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -248
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -222
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  31. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
  33. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  35. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1712 -0
  37. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  39. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  50. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +4 -4
  55. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +98 -101
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -123
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +43 -150
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +215 -219
  69. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  71. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  74. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  76. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  78. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  84. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  85. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  86. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -235
  88. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  90. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -37
  93. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -219
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +55 -284
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +407 -174
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +137 -89
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -95
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -280
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +269 -248
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +66 -82
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +22 -225
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +206 -175
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +92 -100
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +266 -119
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  141. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -37
  142. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  143. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +372 -316
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  152. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  153. package/artifacts/contracts/product/Product.sol/Product.json +22 -225
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +257 -9
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  164. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  166. package/artifacts/contracts/registry/Registry.sol/Registry.json +476 -67
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +246 -134
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  170. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -130
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  176. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  181. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  182. package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  190. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
  197. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +14 -46
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  206. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -222
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -140
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  233. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +92 -87
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  284. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +25 -24
  304. package/contracts/authorization/Authorization.sol +0 -1
  305. package/contracts/authorization/IAccessAdmin.sol +0 -1
  306. package/contracts/distribution/BasicDistribution.sol +4 -15
  307. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  308. package/contracts/distribution/Distribution.sol +23 -11
  309. package/contracts/distribution/DistributionService.sol +75 -41
  310. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  311. package/contracts/distribution/IDistributionComponent.sol +8 -4
  312. package/contracts/distribution/IDistributionService.sol +18 -2
  313. package/contracts/examples/fire/FirePool.sol +75 -0
  314. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  315. package/contracts/examples/fire/FireProduct.sol +329 -0
  316. package/contracts/examples/fire/FireProductAuthorization.sol +34 -0
  317. package/contracts/examples/fire/FireUSD.sol +26 -0
  318. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  319. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  320. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  321. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  322. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  323. package/contracts/instance/IInstance.sol +11 -34
  324. package/contracts/instance/IInstanceService.sol +4 -4
  325. package/contracts/instance/Instance.sol +13 -38
  326. package/contracts/instance/InstanceAdmin.sol +25 -6
  327. package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
  328. package/contracts/instance/InstanceReader.sol +32 -7
  329. package/contracts/instance/InstanceService.sol +69 -46
  330. package/contracts/instance/InstanceServiceManager.sol +8 -13
  331. package/contracts/instance/InstanceStore.sol +12 -1
  332. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  333. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  334. package/contracts/instance/module/IBundle.sol +1 -1
  335. package/contracts/instance/module/IComponents.sol +1 -7
  336. package/contracts/instance/module/IDistribution.sol +0 -1
  337. package/contracts/instance/module/IPolicy.sol +22 -22
  338. package/contracts/mock/Dip.sol +1 -1
  339. package/contracts/oracle/IOracleComponent.sol +2 -1
  340. package/contracts/oracle/Oracle.sol +17 -7
  341. package/contracts/oracle/OracleService.sol +9 -6
  342. package/contracts/oracle/OracleServiceManager.sol +8 -11
  343. package/contracts/pool/BasicPool.sol +7 -5
  344. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  345. package/contracts/pool/BundleService.sol +197 -55
  346. package/contracts/pool/BundleServiceManager.sol +8 -11
  347. package/contracts/pool/IBundleService.sol +33 -5
  348. package/contracts/pool/IPoolComponent.sol +6 -0
  349. package/contracts/pool/IPoolService.sol +36 -26
  350. package/contracts/pool/Pool.sol +40 -25
  351. package/contracts/pool/PoolService.sol +166 -110
  352. package/contracts/pool/PoolServiceManager.sol +6 -9
  353. package/contracts/product/ApplicationService.sol +55 -62
  354. package/contracts/product/ApplicationServiceManager.sol +6 -6
  355. package/contracts/product/BasicProduct.sol +3 -32
  356. package/contracts/product/BasicProductAuthorization.sol +3 -0
  357. package/contracts/product/ClaimService.sol +212 -108
  358. package/contracts/product/ClaimServiceManager.sol +6 -6
  359. package/contracts/product/IApplicationService.sol +1 -0
  360. package/contracts/product/IClaimService.sol +28 -5
  361. package/contracts/product/IPolicyService.sol +31 -32
  362. package/contracts/product/IPricingService.sol +7 -7
  363. package/contracts/product/IProductComponent.sol +1 -1
  364. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  365. package/contracts/product/PolicyService.sol +370 -194
  366. package/contracts/product/PolicyServiceManager.sol +6 -9
  367. package/contracts/product/PricingService.sol +46 -46
  368. package/contracts/product/PricingServiceManager.sol +5 -8
  369. package/contracts/product/Product.sol +68 -35
  370. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  371. package/contracts/product/RiskServiceManager.sol +39 -0
  372. package/contracts/registry/ChainNft.sol +65 -32
  373. package/contracts/registry/IRegistry.sol +63 -16
  374. package/contracts/registry/IRegistryService.sol +6 -6
  375. package/contracts/registry/Registry.sol +333 -209
  376. package/contracts/registry/RegistryAdmin.sol +171 -72
  377. package/contracts/registry/RegistryService.sol +6 -20
  378. package/contracts/registry/RegistryServiceManager.sol +4 -4
  379. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +60 -56
  380. package/contracts/registry/ServiceAuthorizationV3.sol +7 -8
  381. package/contracts/registry/TokenRegistry.sol +2 -2
  382. package/contracts/shared/Component.sol +30 -43
  383. package/contracts/shared/ComponentService.sol +88 -28
  384. package/contracts/shared/ComponentServiceManager.sol +10 -7
  385. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  386. package/contracts/shared/ContractLib.sol +38 -0
  387. package/contracts/shared/IComponent.sol +4 -4
  388. package/contracts/shared/IComponentService.sol +15 -9
  389. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  390. package/contracts/shared/IPolicyHolder.sol +12 -22
  391. package/contracts/shared/IService.sol +1 -1
  392. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  393. package/contracts/shared/InstanceLinkedComponent.sol +25 -4
  394. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  395. package/contracts/shared/NftOwnable.sol +7 -7
  396. package/contracts/shared/PolicyHolder.sol +14 -58
  397. package/contracts/shared/Registerable.sol +4 -4
  398. package/contracts/shared/RegistryLinked.sol +3 -2
  399. package/contracts/shared/Service.sol +19 -15
  400. package/contracts/shared/TokenHandler.sol +100 -19
  401. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  402. package/contracts/staking/IStaking.sol +3 -3
  403. package/contracts/staking/IStakingService.sol +12 -5
  404. package/contracts/staking/StakeManagerLib.sol +18 -25
  405. package/contracts/staking/Staking.sol +27 -42
  406. package/contracts/staking/StakingManager.sol +10 -12
  407. package/contracts/staking/StakingReader.sol +12 -16
  408. package/contracts/staking/StakingService.sol +10 -14
  409. package/contracts/staking/StakingServiceManager.sol +4 -4
  410. package/contracts/staking/StakingStore.sol +12 -22
  411. package/contracts/staking/TargetManagerLib.sol +7 -3
  412. package/contracts/type/Amount.sol +12 -5
  413. package/contracts/type/Blocknumber.sol +7 -1
  414. package/contracts/type/NftId.sol +1 -0
  415. package/contracts/type/ObjectType.sol +18 -18
  416. package/contracts/type/Referral.sol +1 -0
  417. package/contracts/type/RiskId.sol +15 -1
  418. package/contracts/type/Seconds.sol +21 -1
  419. package/contracts/type/StateId.sol +1 -0
  420. package/contracts/type/Timestamp.sol +11 -1
  421. package/contracts/type/UFixed.sol +29 -10
  422. package/contracts/type/Version.sol +3 -1
  423. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  424. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  425. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  426. package/package.json +1 -1
  427. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  428. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  429. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  430. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  431. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  432. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  433. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  434. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  435. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  436. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  437. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  438. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  439. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  440. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  441. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  442. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  443. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  444. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  445. package/contracts/product/ProductServiceManager.sol +0 -42
  446. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
7
  import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
9
9
 
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
23
23
  _setupBundleLifecycle();
24
24
  _setupComponentLifecycle();
25
25
  _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
26
27
  _setupClaimLifecycle();
27
28
  _setupPayoutLifecycle();
28
29
  _setupRiskLifecycle();
@@ -54,9 +55,12 @@ contract ObjectLifecycle is
54
55
  setStateTransition(POLICY(), APPLIED(), REVOKED());
55
56
  setStateTransition(POLICY(), APPLIED(), DECLINED());
56
57
  setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
57
- setStateTransition(POLICY(), APPLIED(), ACTIVE());
58
- setStateTransition(POLICY(), COLLATERALIZED(), ACTIVE());
59
- setStateTransition(POLICY(), ACTIVE(), CLOSED());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
59
+ }
60
+
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
60
64
  }
61
65
 
62
66
  function _setupClaimLifecycle() private {
@@ -68,6 +72,7 @@ contract ObjectLifecycle is
68
72
 
69
73
  function _setupPayoutLifecycle() private {
70
74
  setInitialState(PAYOUT(), EXPECTED());
75
+ // TODO: add state cancelled
71
76
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
72
77
  }
73
78
 
@@ -10,17 +10,17 @@ import {IRegistry} from "../../registry/IRegistry.sol";
10
10
  import {LibNftIdSet} from "../../type/NftIdSet.sol";
11
11
  import {NftId} from "../../type/NftId.sol";
12
12
 
13
- contract ObjectManager is
13
+ contract ObjectSet is
14
14
  Cloneable
15
15
  {
16
16
 
17
- event LogObjectManagerInitialized(address instance);
17
+ event LogObjectSetInitialized(address instance);
18
18
 
19
- error ErrorObjectManagerNftIdInvalid(NftId instanceNftId);
19
+ error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
20
20
 
21
21
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
22
22
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
23
- IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectManager initialization
23
+ IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
24
24
 
25
25
  /// @dev This initializer needs to be called from the instance itself.
26
26
  function initialize()
@@ -30,7 +30,7 @@ contract ObjectManager is
30
30
  _instance = IInstance(msg.sender);
31
31
  __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
32
32
 
33
- emit LogObjectManagerInitialized(address(_instance));
33
+ emit LogObjectSetInitialized(address(_instance));
34
34
  }
35
35
 
36
36
  function getInstance() external view returns (IInstance) {
@@ -13,7 +13,7 @@ interface IBundle {
13
13
  NftId poolNftId;
14
14
  Fee fee; // bundle fee on net premium amounts
15
15
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- Seconds lifetime; // lifetime of bundle after creation
16
+ Timestamp activatedAt;
17
17
  Timestamp expiredAt; // no new policies starting with this timestamp
18
18
  Timestamp closedAt; // no open policies, locked amount = 0
19
19
  }
@@ -21,7 +21,6 @@ interface IComponents {
21
21
  bytes data; // will hold component type specific additional info (eg encoded pool info)
22
22
  }
23
23
 
24
-
25
24
  struct ProductInfo {
26
25
  NftId distributionNftId;
27
26
  NftId poolNftId;
@@ -36,17 +35,12 @@ interface IComponents {
36
35
 
37
36
 
38
37
  struct PoolInfo {
39
- NftId productNftId; // the nft of the product this pool is linked to
38
+ Amount maxBalanceAmount; // max balance amount allowed for pool
40
39
  RoleId bundleOwnerRole; // the required role for bundle owners
41
- // TODO maxCapitalAmount -> maxBalanceAmount
42
- Amount maxCapitalAmount; // max capital amount allowed for pool
43
40
  bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
44
41
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
45
42
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
46
43
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
47
44
  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
45
  }
52
46
  }
@@ -25,7 +25,6 @@ interface IDistribution {
25
25
  DistributorType distributorType;
26
26
  bool active;
27
27
  bytes data;
28
- Amount commissionAmount;
29
28
  uint32 numPoliciesSold;
30
29
  }
31
30
 
@@ -11,7 +11,7 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
15
  // premium splitting per target wallet
16
16
  Amount productFeeAmount;
17
17
  Amount distributionFeeAndCommissionAmount;
@@ -19,26 +19,26 @@ interface IPolicy {
19
19
 
20
20
  // detailed positions
21
21
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
22
+ Amount netPremiumAmount;
23
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;
24
+ Amount fullPremiumAmount;
25
+ // effective premium = fullPremium - discount
26
+ Amount premiumAmount;
27
+ Amount productFeeFixAmount;
28
+ Amount poolFeeFixAmount;
29
+ Amount bundleFeeFixAmount;
30
+ Amount distributionFeeFixAmount;
31
+ Amount productFeeVarAmount;
32
+ Amount poolFeeVarAmount;
33
+ Amount bundleFeeVarAmount;
34
+ Amount distributionFeeVarAmount;
35
+ Amount distributionOwnerFeeFixAmount;
36
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;
37
+ Amount distributionOwnerFeeVarAmount;
38
38
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
39
+ Amount commissionAmount;
40
40
  // this is based on referral used
41
- uint256 discountAmount;
41
+ Amount discountAmount;
42
42
  }
43
43
 
44
44
  /// @dev policy data for the full policy lifecycle
@@ -49,7 +49,6 @@ interface IPolicy {
49
49
  RiskId riskId;
50
50
  Amount sumInsuredAmount;
51
51
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
52
  Seconds lifetime;
54
53
  // policy application data, no changes after applying for a policy
55
54
  bytes applicationData;
@@ -69,8 +68,8 @@ interface IPolicy {
69
68
  Amount paidAmount;
70
69
  uint8 payoutsCount;
71
70
  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
71
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
72
+ bytes processData; // use case specific data that may include information supporting confirm or decline
74
73
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
74
  }
76
75
 
@@ -78,7 +77,8 @@ interface IPolicy {
78
77
  struct PayoutInfo {
79
78
  ClaimId claimId;
80
79
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
80
+ address beneficiary; // for address(0) beneficiary is policy nft owner
81
+ bytes data; // use case specific supporting data
82
+ Timestamp paidAt; // timestamp for actual payout
83
83
  }
84
84
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
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
6
  contract Dip is ERC20 {
7
7
 
@@ -11,7 +11,8 @@ import {UFixed} from "../type/UFixed.sol";
11
11
  import {Timestamp} from "../type/Timestamp.sol";
12
12
 
13
13
  interface IOracleComponent is IInstanceLinkedComponent {
14
-
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
15
16
  /// @dev callback method for requesting some data from the oracle
16
17
  function request(
17
18
  RequestId requestId,
@@ -1,19 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount} from "../type/Amount.sol";
4
5
  import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
9
  import {IOracleComponent} from "./IOracleComponent.sol";
8
10
  import {IOracleService} from "./IOracleService.sol";
9
- import {IRegistry} from "../registry/IRegistry.sol";
10
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
- import {NftId, NftIdLib} from "../type/NftId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {InstanceReader} from "../instance/InstanceReader.sol";
14
13
  import {RequestId} from "../type/RequestId.sol";
15
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
17
15
 
18
16
 
19
17
  abstract contract Oracle is
@@ -73,6 +71,18 @@ abstract contract Oracle is
73
71
  return false;
74
72
  }
75
73
 
74
+ /// @dev Not relevant for oracle components
75
+ function withdrawFees(Amount amount)
76
+ external
77
+ virtual
78
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
79
+ onlyOwner()
80
+ restricted()
81
+ returns (Amount withdrawnAmount)
82
+ {
83
+ revert ErrorOracleNotImplemented("withdrawFees");
84
+ }
85
+
76
86
 
77
87
  function _initializeOracle(
78
88
  address registry,
@@ -104,7 +114,7 @@ abstract contract Oracle is
104
114
  $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
105
115
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
106
116
 
107
- registerInterface(type(IOracleComponent).interfaceId);
117
+ _registerInterface(type(IOracleComponent).interfaceId);
108
118
  }
109
119
 
110
120
 
@@ -27,14 +27,16 @@ contract OracleService is
27
27
  bytes memory data
28
28
  )
29
29
  internal
30
- initializer
31
30
  virtual override
31
+ initializer()
32
32
  {
33
- address initialOwner;
34
- address registryAddress;
35
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
- initializeService(registryAddress, address(0), owner);
37
- registerInterface(type(IOracleService).interfaceId);
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
38
40
  }
39
41
 
40
42
  function request(
@@ -64,6 +66,7 @@ contract OracleService is
64
66
  ORACLE(),
65
67
  true); // only active
66
68
 
69
+ // TODO move to stronger validation, requester and oracle need to belong to same product cluster
67
70
  // check that requester and oracle share same instance
68
71
  if (componentInfo.parentNftId != oracleInfo.parentNftId) {
69
72
  revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {OracleService} from "./OracleService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract OracleServiceManager is ProxyManager {
12
9
 
@@ -15,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
15
12
  /// @dev initializes proxy manager with service implementation and deploys instance
16
13
  constructor(
17
14
  address authority,
18
- address registryAddress,
15
+ address registry,
19
16
  bytes32 salt
20
17
  )
21
- ProxyManager(registryAddress)
22
18
  {
23
- OracleService orclSrv = new OracleService{salt: salt}();
24
- bytes memory data = abi.encode(registryAddress, address(this), authority);
25
- IVersionable versionable = deployDetermenistic(
26
- address(orclSrv),
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
27
24
  data,
28
25
  salt);
29
26
 
@@ -14,6 +14,7 @@ import {NftId, NftIdLib} from "../type/NftId.sol";
14
14
  import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
15
15
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
16
  import {Seconds} from "../type/Seconds.sol";
17
+ import {Timestamp} from "../type/Timestamp.sol";
17
18
  import {TokenHandler} from "../shared/TokenHandler.sol";
18
19
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
20
 
@@ -81,8 +82,9 @@ abstract contract BasicPool is
81
82
  virtual
82
83
  restricted()
83
84
  onlyBundleOwner(bundleNftId)
85
+ returns(Timestamp newExpiredAt)
84
86
  {
85
- _extend(bundleNftId, lifetimeExtension);
87
+ return _extend(bundleNftId, lifetimeExtension);
86
88
  }
87
89
 
88
90
 
@@ -106,13 +108,13 @@ abstract contract BasicPool is
106
108
  }
107
109
 
108
110
 
109
- function close(NftId bundleNftId)
111
+ function closeBundle(NftId bundleNftId)
110
112
  public
111
113
  virtual
112
114
  restricted()
113
115
  onlyBundleOwner(bundleNftId)
114
116
  {
115
- _close(bundleNftId);
117
+ _closeBundle(bundleNftId);
116
118
  }
117
119
 
118
120
 
@@ -129,13 +131,13 @@ abstract contract BasicPool is
129
131
  }
130
132
 
131
133
 
132
- function setMaxCapitalAmount(Amount maxCapitalAmount)
134
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
133
135
  public
134
136
  virtual
135
137
  restricted()
136
138
  onlyOwner()
137
139
  {
138
- _setMaxCapitalAmount(maxCapitalAmount);
140
+ _setMaxBalanceAmount(maxBalanceAmount);
139
141
  }
140
142
 
141
143
 
@@ -4,6 +4,8 @@ pragma solidity ^0.8.20;
4
4
  import {Authorization} from "../authorization/Authorization.sol";
5
5
  import {BasicPool} from "./BasicPool.sol";
6
6
  import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
7
9
  import {POOL} from "../type/ObjectType.sol";
8
10
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
11
  import {RoleId} from "../type/RoleId.sol";
@@ -38,12 +40,19 @@ contract BasicPoolAuthorization
38
40
  _authorize(functions, BasicPool.extend.selector, "extend");
39
41
  _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
40
42
  _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
41
- _authorize(functions, BasicPool.close.selector, "close");
43
+ _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
42
44
  _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
43
45
 
44
- _authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
46
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
45
47
  _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
46
48
  _authorize(functions, BasicPool.setFees.selector, "setFees");
49
+ _authorize(functions, BasicPool.stake.selector, "stake");
50
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
51
+ _authorize(functions, BasicPool.extend.selector, "extend");
52
+
53
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
54
+
55
+ _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
47
56
  }
48
57
  }
49
58