@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-9306579-093

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 (501) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -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/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +94 -270
  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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  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 +1363 -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 +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -447
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +260 -233
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +109 -157
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1186 -271
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +489 -147
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +57 -224
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -105
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +245 -235
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1000 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +58 -31
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +55 -309
  104. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  106. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  108. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1297 -0
  110. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  112. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
  114. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
  116. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
  118. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +79 -275
  120. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
  122. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/Pool.sol/Pool.json +79 -561
  124. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
  126. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
  128. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  130. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  132. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1119 -0
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  142. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
  144. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
  146. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  148. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +75 -99
  150. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  152. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
  154. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
  156. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  158. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  160. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  161. package/artifacts/contracts/product/Product.sol/Product.json +75 -395
  162. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  164. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  166. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  168. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +265 -42
  170. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  172. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  173. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/Registry.sol/Registry.json +483 -99
  175. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +337 -380
  177. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
  179. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  181. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  183. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  185. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  187. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  189. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  190. package/artifacts/contracts/shared/Component.sol/Component.json +15 -205
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -185
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -107
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  197. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  199. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +15 -20
  201. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  203. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +47 -31
  205. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  210. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  214. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +47 -269
  217. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  220. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  221. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  223. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  225. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  227. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  229. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  231. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  233. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  235. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +42 -21
  237. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  240. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  241. package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
  242. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  244. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  246. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  248. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  249. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  250. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  252. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +92 -87
  254. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  255. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  256. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  291. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  302. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  303. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  307. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  308. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  309. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  310. package/contracts/{shared → authorization}/AccessAdmin.sol +158 -325
  311. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  312. package/contracts/authorization/Authorization.sol +221 -0
  313. package/contracts/authorization/IAccess.sol +48 -0
  314. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -55
  315. package/contracts/authorization/IAuthorization.sol +54 -0
  316. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  317. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  318. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  319. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  320. package/contracts/distribution/BasicDistribution.sol +138 -0
  321. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  322. package/contracts/distribution/Distribution.sol +145 -111
  323. package/contracts/distribution/DistributionService.sol +86 -47
  324. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  325. package/contracts/distribution/IDistributionComponent.sol +25 -39
  326. package/contracts/distribution/IDistributionService.sol +23 -3
  327. package/contracts/examples/fire/DamageLevel.sol +59 -0
  328. package/contracts/examples/fire/FirePool.sol +75 -0
  329. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  330. package/contracts/examples/fire/FireProduct.sol +412 -0
  331. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  332. package/contracts/examples/fire/FireUSD.sol +26 -0
  333. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  334. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  335. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  336. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  337. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  338. package/contracts/instance/IInstance.sol +14 -38
  339. package/contracts/instance/IInstanceService.sol +13 -18
  340. package/contracts/instance/Instance.sol +68 -102
  341. package/contracts/instance/InstanceAdmin.sol +224 -267
  342. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  343. package/contracts/instance/InstanceReader.sol +137 -34
  344. package/contracts/instance/InstanceService.sol +115 -89
  345. package/contracts/instance/InstanceServiceManager.sol +8 -13
  346. package/contracts/instance/InstanceStore.sol +17 -2
  347. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  348. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  349. package/contracts/instance/module/IBundle.sol +1 -1
  350. package/contracts/instance/module/IComponents.sol +4 -8
  351. package/contracts/instance/module/IDistribution.sol +0 -1
  352. package/contracts/instance/module/IPolicy.sol +24 -24
  353. package/contracts/mock/Dip.sol +1 -1
  354. package/contracts/oracle/BasicOracle.sol +48 -0
  355. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  356. package/contracts/oracle/IOracle.sol +16 -0
  357. package/contracts/oracle/IOracleComponent.sol +2 -1
  358. package/contracts/oracle/Oracle.sol +73 -51
  359. package/contracts/oracle/OracleService.sol +11 -8
  360. package/contracts/oracle/OracleServiceManager.sol +8 -11
  361. package/contracts/pool/BasicPool.sol +166 -0
  362. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  363. package/contracts/pool/BundleService.sol +221 -56
  364. package/contracts/pool/BundleServiceManager.sol +8 -11
  365. package/contracts/pool/IBundleService.sol +42 -5
  366. package/contracts/pool/IPoolComponent.sol +24 -68
  367. package/contracts/pool/IPoolService.sol +57 -36
  368. package/contracts/pool/Pool.sol +192 -138
  369. package/contracts/pool/PoolService.sol +241 -130
  370. package/contracts/pool/PoolServiceManager.sol +6 -9
  371. package/contracts/product/ApplicationService.sol +62 -65
  372. package/contracts/product/ApplicationServiceManager.sol +6 -6
  373. package/contracts/product/BasicProduct.sol +53 -0
  374. package/contracts/product/BasicProductAuthorization.sol +43 -0
  375. package/contracts/product/ClaimService.sol +254 -115
  376. package/contracts/product/ClaimServiceManager.sol +6 -6
  377. package/contracts/product/IApplicationService.sol +1 -0
  378. package/contracts/product/IClaimService.sol +31 -7
  379. package/contracts/product/IPolicyService.sol +34 -32
  380. package/contracts/product/IPricingService.sol +7 -7
  381. package/contracts/product/IProductComponent.sol +20 -9
  382. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  383. package/contracts/product/PolicyService.sol +404 -193
  384. package/contracts/product/PolicyServiceManager.sol +6 -9
  385. package/contracts/product/PricingService.sol +46 -46
  386. package/contracts/product/PricingServiceManager.sol +5 -8
  387. package/contracts/product/Product.sol +170 -115
  388. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  389. package/contracts/product/RiskServiceManager.sol +39 -0
  390. package/contracts/registry/ChainNft.sol +65 -32
  391. package/contracts/registry/IRegistry.sol +65 -19
  392. package/contracts/registry/IRegistryService.sol +0 -9
  393. package/contracts/registry/Registry.sol +340 -215
  394. package/contracts/registry/RegistryAdmin.sol +260 -131
  395. package/contracts/registry/RegistryService.sol +59 -66
  396. package/contracts/registry/RegistryServiceManager.sol +4 -4
  397. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +107 -119
  398. package/contracts/registry/ServiceAuthorizationV3.sol +20 -22
  399. package/contracts/registry/TokenRegistry.sol +2 -2
  400. package/contracts/shared/Component.sol +38 -43
  401. package/contracts/shared/ComponentService.sol +103 -82
  402. package/contracts/shared/ComponentServiceManager.sol +10 -7
  403. package/contracts/shared/ComponentVerifyingService.sol +3 -4
  404. package/contracts/shared/ContractLib.sol +38 -0
  405. package/contracts/shared/IComponent.sol +7 -4
  406. package/contracts/shared/IComponentService.sol +15 -9
  407. package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
  408. package/contracts/shared/IPolicyHolder.sol +12 -22
  409. package/contracts/shared/IService.sol +1 -1
  410. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  411. package/contracts/shared/InstanceLinkedComponent.sol +52 -25
  412. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  413. package/contracts/shared/NftOwnable.sol +7 -7
  414. package/contracts/shared/PolicyHolder.sol +17 -57
  415. package/contracts/shared/Registerable.sol +4 -4
  416. package/contracts/shared/RegistryLinked.sol +3 -2
  417. package/contracts/shared/Service.sol +19 -15
  418. package/contracts/shared/TokenHandler.sol +100 -19
  419. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  420. package/contracts/staking/IStaking.sol +3 -3
  421. package/contracts/staking/IStakingService.sol +12 -5
  422. package/contracts/staking/StakeManagerLib.sol +18 -25
  423. package/contracts/staking/Staking.sol +27 -42
  424. package/contracts/staking/StakingManager.sol +10 -12
  425. package/contracts/staking/StakingReader.sol +23 -20
  426. package/contracts/staking/StakingService.sol +10 -14
  427. package/contracts/staking/StakingServiceManager.sol +4 -4
  428. package/contracts/staking/StakingStore.sol +12 -22
  429. package/contracts/staking/TargetManagerLib.sol +7 -3
  430. package/contracts/type/Amount.sol +27 -5
  431. package/contracts/type/Blocknumber.sol +7 -1
  432. package/contracts/type/ClaimId.sol +6 -1
  433. package/contracts/type/NftId.sol +1 -0
  434. package/contracts/type/ObjectType.sol +53 -18
  435. package/contracts/type/PayoutId.sol +10 -10
  436. package/contracts/type/Referral.sol +1 -0
  437. package/contracts/type/RiskId.sol +15 -1
  438. package/contracts/type/RoleId.sol +55 -82
  439. package/contracts/type/Seconds.sol +21 -1
  440. package/contracts/type/StateId.sol +1 -0
  441. package/contracts/type/Timestamp.sol +11 -1
  442. package/contracts/type/UFixed.sol +38 -9
  443. package/contracts/type/Version.sol +3 -1
  444. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  445. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  446. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  447. package/package.json +3 -3
  448. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  449. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  450. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  451. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  452. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  453. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  454. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  455. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  456. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  457. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  458. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  459. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  460. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  461. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
  462. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  463. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  464. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  465. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  466. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  467. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  468. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  469. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  470. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  471. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  472. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  473. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  474. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  475. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  476. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  477. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  478. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  479. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  480. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  481. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  482. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  483. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  485. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  486. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  488. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  489. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  490. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  491. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  492. package/contracts/product/ProductServiceManager.sol +0 -42
  493. package/contracts/shared/AccessManagerCustom.sol +0 -741
  494. package/contracts/shared/AccessManagerExtended.sol +0 -481
  495. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  496. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  497. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  498. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  499. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  500. package/contracts/shared/InitializableCustom.sol +0 -177
  501. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {Seconds} from "../../type/Timestamp.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ contract SimplePool is
14
+ BasicPool
15
+ {
16
+
17
+ constructor(
18
+ address registry,
19
+ NftId instanceNftId,
20
+ address token,
21
+ IAuthorization authorization,
22
+ address initialOwner
23
+ )
24
+ {
25
+ initialize(
26
+ registry,
27
+ instanceNftId,
28
+ token,
29
+ authorization,
30
+ initialOwner
31
+ );
32
+ }
33
+
34
+ function initialize(
35
+ address registry,
36
+ NftId instanceNftId,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ public
42
+ virtual
43
+ initializer()
44
+ {
45
+ _initializeBasicPool(
46
+ registry,
47
+ instanceNftId,
48
+ authorization,
49
+ token,
50
+ "SimplePool",
51
+ initialOwner);
52
+ }
53
+
54
+ function createBundle(
55
+ Fee memory fee,
56
+ uint256 initialAmount,
57
+ Seconds lifetime,
58
+ bytes calldata filter
59
+ )
60
+ external
61
+ virtual
62
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
63
+ {
64
+ address owner = msg.sender;
65
+ Amount netStakedAmount;
66
+ bundleNftId = _createBundle(
67
+ owner,
68
+ fee,
69
+ lifetime,
70
+ filter
71
+ );
72
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
73
+ netStakedAmountInt = netStakedAmount.toInt();
74
+ }
75
+
76
+ }
@@ -0,0 +1,351 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicProduct} from "../../product/BasicProduct.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
+ import {IOracleService} from "../../oracle/IOracleService.sol";
9
+ import {ORACLE} from "../../type/ObjectType.sol";
10
+ import {NftId} from "../../type/NftId.sol";
11
+ import {PayoutId} from "../../type/PayoutId.sol";
12
+ import {ReferralId} from "../../type/Referral.sol";
13
+ import {RequestId} from "../../type/RequestId.sol";
14
+ import {RiskId} from "../../type/RiskId.sol";
15
+ import {Seconds} from "../../type/Seconds.sol";
16
+ import {SimpleOracle} from "./SimpleOracle.sol";
17
+ import {StateId} from "../../type/StateId.sol";
18
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
19
+
20
+ uint64 constant SPECIAL_ROLE_INT = 11111;
21
+
22
+ contract SimpleProduct is
23
+ BasicProduct
24
+ {
25
+
26
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
27
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
28
+
29
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
30
+
31
+ IOracleService private _oracleService;
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftid,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token,
39
+ bool isInterceptor,
40
+ address pool,
41
+ address distribution
42
+ )
43
+ {
44
+ initialize(
45
+ registry,
46
+ instanceNftid,
47
+ authorization,
48
+ initialOwner,
49
+ "SimpleProduct",
50
+ token,
51
+ isInterceptor,
52
+ pool,
53
+ distribution);
54
+ }
55
+
56
+
57
+ function initialize(
58
+ address registry,
59
+ NftId instanceNftid,
60
+ IAuthorization authorization,
61
+ address initialOwner,
62
+ string memory name,
63
+ address token,
64
+ bool isInterceptor,
65
+ address pool,
66
+ address distribution
67
+ )
68
+ public
69
+ virtual
70
+ initializer()
71
+ {
72
+ _initializeBasicProduct(
73
+ registry,
74
+ instanceNftid,
75
+ authorization,
76
+ initialOwner,
77
+ name,
78
+ token,
79
+ isInterceptor,
80
+ pool,
81
+ distribution);
82
+
83
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
84
+ }
85
+
86
+ function createRisk(
87
+ RiskId id,
88
+ bytes memory data
89
+ ) public {
90
+ _createRisk(
91
+ id,
92
+ data
93
+ );
94
+ }
95
+
96
+ function updateRisk(
97
+ RiskId id,
98
+ bytes memory data
99
+ ) public {
100
+ _updateRisk(
101
+ id,
102
+ data
103
+ );
104
+ }
105
+
106
+ function updateRiskState(
107
+ RiskId id,
108
+ StateId state
109
+ ) public {
110
+ _updateRiskState(
111
+ id,
112
+ state
113
+ );
114
+ }
115
+
116
+ function createApplication(
117
+ address applicationOwner,
118
+ RiskId riskId,
119
+ uint256 sumInsured,
120
+ Seconds lifetime,
121
+ bytes memory applicationData,
122
+ NftId bundleNftId,
123
+ ReferralId referralId
124
+ )
125
+ public
126
+ returns (NftId nftId)
127
+ {
128
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
129
+ Amount premiumAmount = calculatePremium(
130
+ sumInsuredAmount,
131
+ riskId,
132
+ lifetime,
133
+ applicationData,
134
+ bundleNftId,
135
+ referralId);
136
+
137
+ return _createApplication(
138
+ applicationOwner,
139
+ riskId,
140
+ sumInsuredAmount,
141
+ premiumAmount,
142
+ lifetime,
143
+ bundleNftId,
144
+ referralId,
145
+ applicationData
146
+ );
147
+ }
148
+
149
+ function createPolicy(
150
+ NftId applicationNftId,
151
+ bool requirePremiumPayment,
152
+ Timestamp activateAt
153
+ ) public {
154
+ _createPolicy(applicationNftId, activateAt);
155
+ if (requirePremiumPayment == true) {
156
+ _collectPremium(applicationNftId, activateAt);
157
+ }
158
+ }
159
+
160
+ function decline(
161
+ NftId policyNftId
162
+ ) public {
163
+ _decline(policyNftId);
164
+ }
165
+
166
+ function expire(
167
+ NftId policyNftId,
168
+ Timestamp expireAt
169
+ )
170
+ public
171
+ returns (Timestamp)
172
+ {
173
+ return _expire(policyNftId, expireAt);
174
+ }
175
+
176
+ function collectPremium(
177
+ NftId policyNftId,
178
+ Timestamp activateAt
179
+ ) public {
180
+ _collectPremium(policyNftId, activateAt);
181
+ }
182
+
183
+ function activate(
184
+ NftId policyNftId,
185
+ Timestamp activateAt
186
+ ) public {
187
+ _activate(policyNftId, activateAt);
188
+ }
189
+
190
+ function close(
191
+ NftId policyNftId
192
+ ) public {
193
+ _close(policyNftId);
194
+ }
195
+
196
+ function submitClaim(
197
+ NftId policyNftId,
198
+ Amount claimAmount,
199
+ bytes memory submissionData
200
+ ) public returns (ClaimId) {
201
+ return _submitClaim(policyNftId, claimAmount, submissionData);
202
+ }
203
+
204
+ function confirmClaim(
205
+ NftId policyNftId,
206
+ ClaimId claimId,
207
+ Amount confirmedAmount,
208
+ bytes memory processData
209
+ ) public {
210
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
211
+ }
212
+
213
+ function declineClaim(
214
+ NftId policyNftId,
215
+ ClaimId claimId,
216
+ bytes memory processData
217
+ ) public {
218
+ _declineClaim(policyNftId, claimId, processData);
219
+ }
220
+
221
+ function closeClaim(
222
+ NftId policyNftId,
223
+ ClaimId claimId
224
+ ) public {
225
+ _closeClaim(policyNftId, claimId);
226
+ }
227
+
228
+ function createPayout(
229
+ NftId policyNftId,
230
+ ClaimId claimId,
231
+ Amount amount,
232
+ bytes memory data
233
+ ) public returns (PayoutId) {
234
+ return _createPayout(policyNftId, claimId, amount, data);
235
+ }
236
+
237
+ // TODO add test
238
+ function createPayoutForBeneficiary(
239
+ NftId policyNftId,
240
+ ClaimId claimId,
241
+ Amount amount,
242
+ address beneficiary,
243
+ bytes memory data
244
+ ) public returns (PayoutId) {
245
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
246
+ }
247
+
248
+ function processPayout(
249
+ NftId policyNftId,
250
+ PayoutId payoutId
251
+ ) public {
252
+ _processPayout(policyNftId, payoutId);
253
+ }
254
+
255
+ function createOracleRequest(
256
+ NftId oracleNftId,
257
+ string memory requestText,
258
+ Timestamp expiryAt,
259
+ bool synchronous
260
+ )
261
+ public
262
+ // restricted()
263
+ returns (RequestId)
264
+ {
265
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
266
+ synchronous,
267
+ requestText));
268
+
269
+ if (synchronous) {
270
+ return _oracleService.request(
271
+ oracleNftId,
272
+ requestData,
273
+ expiryAt,
274
+ "fulfillOracleRequestSync");
275
+ } else {
276
+ return _oracleService.request(
277
+ oracleNftId,
278
+ requestData,
279
+ expiryAt,
280
+ "fulfillOracleRequestAsync");
281
+ }
282
+ }
283
+
284
+ function cancelOracleRequest(
285
+ RequestId requestId
286
+ )
287
+ public
288
+ // restricted() //
289
+ {
290
+ _oracleService.cancel(requestId);
291
+ }
292
+
293
+ function fulfillOracleRequestSync(
294
+ RequestId requestId,
295
+ bytes memory responseData
296
+ )
297
+ public
298
+ // restricted() // only oracle service
299
+ {
300
+ string memory responseText = abi.decode(responseData, (string));
301
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
302
+ }
303
+
304
+ function fulfillOracleRequestAsync(
305
+ RequestId requestId,
306
+ bytes memory responseData
307
+ )
308
+ public
309
+ // restricted() // only oracle service
310
+ {
311
+ SimpleOracle.SimpleResponse memory response = abi.decode(
312
+ responseData, (SimpleOracle.SimpleResponse));
313
+
314
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
315
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
316
+ }
317
+
318
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
319
+ }
320
+
321
+
322
+ function resend(
323
+ RequestId requestId
324
+ )
325
+ public
326
+ // restricted() //
327
+ {
328
+ _oracleService.resend(requestId);
329
+ }
330
+
331
+
332
+ function doSomethingSpecial()
333
+ public
334
+ restricted()
335
+ returns (bool)
336
+ {
337
+ return true;
338
+ }
339
+
340
+ function doWhenNotLocked()
341
+ public
342
+ restricted()
343
+ returns (bool)
344
+ {
345
+ return true;
346
+ }
347
+
348
+ function getOracleService() public view returns (IOracleService) {
349
+ return _oracleService;
350
+ }
351
+ }
@@ -10,26 +10,26 @@ import {LibNftIdSet} from "../type/NftIdSet.sol";
10
10
  import {NftId} from "../type/NftId.sol";
11
11
  import {TimestampLib} from "../type/Timestamp.sol";
12
12
 
13
- import {ObjectManager} from "./base/ObjectManager.sol";
13
+ import {ObjectSet} from "./base/ObjectSet.sol";
14
14
 
15
- contract BundleManager is
16
- ObjectManager
15
+ contract BundleSet is
16
+ ObjectSet
17
17
  {
18
18
 
19
- event LogBundleManagerPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
- event LogBundleManagerPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
21
21
 
22
- event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
23
- event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
- event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
25
- event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
25
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
26
26
 
27
- error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
28
- error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
29
- error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
- error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
31
- error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
32
- error ErrorBundleManagerBundleNotRegistered(NftId bundleNftId);
27
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
28
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
29
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
31
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
32
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
33
33
 
34
34
  mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
35
 
@@ -42,11 +42,11 @@ contract BundleManager is
42
42
 
43
43
  // ensure bundle is unlocked (in active set) and registered with this instance
44
44
  if (!_isActive(poolNftId, bundleNftId)) {
45
- revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
45
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
46
46
  }
47
47
 
48
48
  LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
49
- emit LogBundleManagerPolicyLinked(bundleNftId, policyNftId);
49
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
50
50
  }
51
51
 
52
52
 
@@ -63,11 +63,11 @@ contract BundleManager is
63
63
 
64
64
  // ensure bundle is registered with this instance
65
65
  if (!_contains(poolNftId, bundleNftId)) {
66
- revert ErrorBundleManagerBundleUnknown(bundleNftId);
66
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
67
67
  }
68
68
 
69
69
  LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
70
- emit LogBundleManagerPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
70
+ emit LogBundleSetPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
71
71
  }
72
72
 
73
73
 
@@ -78,11 +78,11 @@ contract BundleManager is
78
78
 
79
79
  // ensure pool is registered with instance
80
80
  if(poolNftId.eqz()) {
81
- revert ErrorBundleManagerBundleNotRegistered(bundleNftId);
81
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
82
82
  }
83
83
 
84
84
  _add(poolNftId, bundleNftId);
85
- emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
85
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
86
86
  }
87
87
 
88
88
 
@@ -90,14 +90,14 @@ contract BundleManager is
90
90
  function unlock(NftId bundleNftId) external restricted() {
91
91
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
92
92
  _activate(poolNftId, bundleNftId);
93
- emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
93
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
94
94
  }
95
95
 
96
96
  /// @dev locked (deactivated) bundles may not collateralize any new policies
97
97
  function lock(NftId bundleNftId) external restricted() {
98
98
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
99
99
  _deactivate(poolNftId, bundleNftId);
100
- emit LogBundleManagerBundleLocked(poolNftId, bundleNftId);
100
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
101
101
  }
102
102
 
103
103
  function bundles(NftId poolNftId) external view returns(uint256) {
@@ -4,40 +4,16 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
9
- import {PayoutId} from "../type/PayoutId.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {StateId} from "../type/StateId.sol";
12
- import {ReferralId} from "../type/Referral.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {VersionPart} from "../type/Version.sol";
15
- import {Key32} from "../type/Key32.sol";
16
- import {RoleId} from "../type/RoleId.sol";
17
- import {Seconds} from "../type/Seconds.sol";
18
- import {UFixed} from "../type/UFixed.sol";
19
-
20
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
21
- import {IRegisterable} from "../shared/IRegisterable.sol";
22
-
23
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
24
-
7
+ import {BundleSet} from "./BundleSet.sol";
25
8
  import {InstanceAdmin} from "./InstanceAdmin.sol";
26
- import {BundleManager} from "./BundleManager.sol";
27
9
  import {InstanceReader} from "./InstanceReader.sol";
28
10
  import {InstanceStore} from "./InstanceStore.sol";
29
-
30
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
31
-
32
- import {IAccess} from "./module/IAccess.sol";
33
-
34
- import {IBundleService} from "../pool/IBundleService.sol";
35
- import {IDistributionService} from "../distribution/IDistributionService.sol";
36
- import {IPolicyService} from "../product/IPolicyService.sol";
37
- import {IPoolService} from "../pool/IPoolService.sol";
38
- import {IProductService} from "../product/IProductService.sol";
39
- import {IPolicyService} from "../product/IPolicyService.sol";
40
- import {IBundleService} from "../pool/IBundleService.sol";
11
+ import {IRegisterable} from "../shared/IRegisterable.sol";
12
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
+ import {RoleId} from "../type/RoleId.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
16
+ import {VersionPart} from "../type/Version.sol";
41
17
 
42
18
 
43
19
  interface IInstance is
@@ -49,9 +25,9 @@ interface IInstance is
49
25
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
50
26
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
51
27
 
52
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
53
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
54
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
28
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
29
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
30
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
55
31
 
56
32
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
57
33
 
@@ -74,14 +50,14 @@ interface IInstance is
74
50
  function setStakingRewardRate(UFixed rewardRate) external;
75
51
  function refillStakingRewardReserves(Amount dipAmount) external;
76
52
 
77
- /// @dev defunds the staking reward reserves for the specified target
78
- /// permissioned: only the target owner may call this function
53
+ /// @dev Defunds the staking reward reserves for the specified target.
54
+ /// Permissioned: only the target owner may call this function.
79
55
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
80
56
 
57
+ // get instance release and supporting contracts
81
58
  function getMajorVersion() external pure returns (VersionPart majorVersion);
82
59
  function getInstanceReader() external view returns (InstanceReader);
83
- function getBundleManager() external view returns (BundleManager);
60
+ function getBundleSet() external view returns (BundleSet);
84
61
  function getInstanceAdmin() external view returns (InstanceAdmin);
85
62
  function getInstanceStore() external view returns (InstanceStore);
86
- function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
87
63
  }
@@ -2,8 +2,9 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {BundleManager} from "./BundleManager.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
6
  import {Instance} from "./Instance.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
8
  import {IService} from "../shared/IService.sol";
8
9
  import {NftId} from "../type/NftId.sol";
9
10
  import {ObjectType} from "../type/ObjectType.sol";
@@ -22,9 +23,8 @@ interface IInstanceService is IService {
22
23
  error ErrorInstanceServiceComponentNotInstanceLinked(address component);
23
24
 
24
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
25
- error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
28
  error ErrorInstanceServiceInstanceAddressZero();
29
29
 
30
30
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -32,13 +32,14 @@ interface IInstanceService is IService {
32
32
  error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
33
33
  error ErrorInstanceServiceInstanceReaderInstanceMismatch();
34
34
 
35
+ error ErrorInstanceServiceAccessManagerZero();
35
36
  error ErrorInstanceServiceInstanceAdminZero();
36
37
  error ErrorInstanceServiceInstanceReaderZero();
37
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
38
39
  error ErrorInstanceServiceInstanceStoreZero();
39
40
 
40
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
41
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
42
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
43
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
@@ -49,17 +50,9 @@ interface IInstanceService is IService {
49
50
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
50
51
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
51
52
 
52
- event LogInstanceCloned(
53
- address clonedOzAccessManager,
54
- address clonedInstanceAccessManager,
55
- address clonedInstance,
56
- address clonedInstanceStore,
57
- address clonedBundleManager,
58
- address clonedInstanceReader,
59
- NftId clonedInstanceNftId
60
- );
61
-
62
- function createInstanceClone()
53
+ event LogInstanceCloned(NftId instanceNftId, address instance);
54
+
55
+ function createInstance()
63
56
  external
64
57
  returns (
65
58
  // TODO check if Instance can be changed to IInstance
@@ -72,10 +65,12 @@ interface IInstanceService is IService {
72
65
  function setStakingRewardRate(UFixed rewardRate) external;
73
66
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
74
67
 
75
- /// @dev defunds the staking reward reserves for the specified target
76
- /// permissioned: only the target owner may call this function
68
+ /// @dev Defunds the staking reward reserves for the specified target.
77
69
  function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
78
70
 
71
+ /// @dev Sets up the component authorization for the specified instance.
72
+ /// The authorization is based on the authz specification provided by the component via getAuthorization.
73
+ function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
79
74
 
80
75
  function createComponentTarget(
81
76
  NftId instanceNftId,