@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1f3b2c-994

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 (465) 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 +81 -63
  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 +48 -30
  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/IServiceAuthorization.sol/IServiceAuthorization.json +21 -2
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +72 -9
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -248
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -222
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +64 -37
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +146 -112
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +437 -129
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -151
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +285 -228
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  77. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +45 -4
  79. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  80. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  81. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  87. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  88. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  89. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  90. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -229
  91. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
  93. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  94. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +45 -31
  96. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +42 -213
  99. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  101. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  103. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  104. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +94 -274
  105. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  107. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
  109. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
  111. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  112. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
  113. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  114. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +87 -88
  115. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
  117. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/Pool.sol/Pool.json +84 -270
  119. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  120. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
  121. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
  123. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  124. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  125. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  127. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  128. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +62 -242
  129. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  130. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  131. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  132. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
  133. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
  135. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  136. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  137. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
  139. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
  141. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  143. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  144. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +62 -57
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  146. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  148. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
  149. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
  151. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  153. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  155. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  156. package/artifacts/contracts/product/Product.sol/Product.json +62 -242
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  158. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  162. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  163. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +274 -22
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  168. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/Registry.sol/Registry.json +493 -80
  170. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +263 -145
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  176. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +46 -5
  178. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1061 -0
  180. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +70 -12
  182. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  183. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  184. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  185. package/artifacts/contracts/shared/Component.sol/Component.json +15 -205
  186. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
  188. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
  190. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  191. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  193. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  194. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +15 -20
  196. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  198. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +34 -31
  200. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  202. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  204. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  207. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  212. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +34 -216
  214. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  215. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +41 -0
  216. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  217. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +41 -0
  218. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  219. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  220. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  222. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  223. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  224. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  226. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  227. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  228. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  230. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  231. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  232. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  233. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  234. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  235. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +42 -21
  236. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  239. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +45 -4
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +176 -130
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  254. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  297. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  301. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  303. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  305. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  306. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  307. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  308. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  309. package/contracts/authorization/AccessAdmin.sol +31 -24
  310. package/contracts/authorization/Authorization.sol +5 -2
  311. package/contracts/authorization/IAccessAdmin.sol +3 -2
  312. package/contracts/authorization/IServiceAuthorization.sol +4 -2
  313. package/contracts/authorization/ServiceAuthorization.sol +27 -11
  314. package/contracts/distribution/BasicDistribution.sol +4 -15
  315. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  316. package/contracts/distribution/Distribution.sol +23 -11
  317. package/contracts/distribution/DistributionService.sol +76 -42
  318. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  319. package/contracts/distribution/IDistributionComponent.sol +8 -4
  320. package/contracts/distribution/IDistributionService.sol +18 -2
  321. package/contracts/examples/fire/DamageLevel.sol +59 -0
  322. package/contracts/examples/fire/FirePool.sol +75 -0
  323. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  324. package/contracts/examples/fire/FireProduct.sol +411 -0
  325. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  326. package/contracts/examples/fire/FireUSD.sol +26 -0
  327. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  328. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  329. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  330. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  331. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  332. package/contracts/instance/IInstance.sol +11 -34
  333. package/contracts/instance/IInstanceService.sol +5 -5
  334. package/contracts/instance/Instance.sol +13 -38
  335. package/contracts/instance/InstanceAdmin.sol +31 -9
  336. package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
  337. package/contracts/instance/InstanceReader.sol +115 -25
  338. package/contracts/instance/InstanceService.sol +71 -49
  339. package/contracts/instance/InstanceServiceManager.sol +8 -13
  340. package/contracts/instance/InstanceStore.sol +12 -1
  341. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  342. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  343. package/contracts/instance/module/IBundle.sol +1 -1
  344. package/contracts/instance/module/IComponents.sol +4 -8
  345. package/contracts/instance/module/IDistribution.sol +0 -1
  346. package/contracts/instance/module/IPolicy.sol +24 -24
  347. package/contracts/mock/Dip.sol +1 -1
  348. package/contracts/oracle/IOracleComponent.sol +2 -1
  349. package/contracts/oracle/Oracle.sol +17 -7
  350. package/contracts/oracle/OracleService.sol +11 -8
  351. package/contracts/oracle/OracleServiceManager.sol +8 -11
  352. package/contracts/pool/BasicPool.sol +7 -5
  353. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  354. package/contracts/pool/BundleService.sol +221 -56
  355. package/contracts/pool/BundleServiceManager.sol +8 -11
  356. package/contracts/pool/IBundleService.sol +42 -5
  357. package/contracts/pool/IPoolComponent.sol +24 -8
  358. package/contracts/pool/IPoolService.sol +57 -36
  359. package/contracts/pool/Pool.sol +72 -30
  360. package/contracts/pool/PoolService.sol +240 -129
  361. package/contracts/pool/PoolServiceManager.sol +6 -9
  362. package/contracts/product/ApplicationService.sol +62 -65
  363. package/contracts/product/ApplicationServiceManager.sol +6 -6
  364. package/contracts/product/BasicProduct.sol +3 -32
  365. package/contracts/product/BasicProductAuthorization.sol +3 -0
  366. package/contracts/product/ClaimService.sol +254 -115
  367. package/contracts/product/ClaimServiceManager.sol +6 -6
  368. package/contracts/product/IApplicationService.sol +1 -0
  369. package/contracts/product/IClaimService.sol +31 -7
  370. package/contracts/product/IPolicyService.sol +34 -32
  371. package/contracts/product/IPricingService.sol +7 -7
  372. package/contracts/product/IProductComponent.sol +18 -4
  373. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  374. package/contracts/product/PolicyService.sol +404 -193
  375. package/contracts/product/PolicyServiceManager.sol +6 -9
  376. package/contracts/product/PricingService.sol +46 -46
  377. package/contracts/product/PricingServiceManager.sol +5 -8
  378. package/contracts/product/Product.sol +90 -50
  379. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  380. package/contracts/product/RiskServiceManager.sol +39 -0
  381. package/contracts/registry/ChainNft.sol +65 -32
  382. package/contracts/registry/IRegistry.sol +65 -19
  383. package/contracts/registry/IRegistryService.sol +0 -9
  384. package/contracts/registry/Registry.sol +340 -211
  385. package/contracts/registry/RegistryAdmin.sol +155 -72
  386. package/contracts/registry/RegistryService.sol +59 -66
  387. package/contracts/registry/RegistryServiceManager.sol +4 -4
  388. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  389. package/contracts/registry/ReleaseRegistry.sol +496 -0
  390. package/contracts/registry/ServiceAuthorizationV3.sol +13 -15
  391. package/contracts/registry/TokenRegistry.sol +2 -2
  392. package/contracts/shared/Component.sol +38 -43
  393. package/contracts/shared/ComponentService.sol +88 -28
  394. package/contracts/shared/ComponentServiceManager.sol +10 -7
  395. package/contracts/shared/ComponentVerifyingService.sol +2 -3
  396. package/contracts/shared/ContractLib.sol +38 -0
  397. package/contracts/shared/IComponent.sol +7 -4
  398. package/contracts/shared/IComponentService.sol +15 -9
  399. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  400. package/contracts/shared/ILifecycle.sol +3 -1
  401. package/contracts/shared/IPolicyHolder.sol +12 -22
  402. package/contracts/shared/IService.sol +1 -1
  403. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  404. package/contracts/shared/InstanceLinkedComponent.sol +26 -6
  405. package/contracts/shared/KeyValueStore.sol +1 -1
  406. package/contracts/shared/Lifecycle.sol +13 -2
  407. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  408. package/contracts/shared/NftOwnable.sol +7 -7
  409. package/contracts/shared/PolicyHolder.sol +17 -57
  410. package/contracts/shared/Registerable.sol +4 -4
  411. package/contracts/shared/RegistryLinked.sol +3 -2
  412. package/contracts/shared/Service.sol +19 -15
  413. package/contracts/shared/TokenHandler.sol +100 -19
  414. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  415. package/contracts/staking/IStaking.sol +3 -3
  416. package/contracts/staking/IStakingService.sol +12 -5
  417. package/contracts/staking/StakeManagerLib.sol +18 -25
  418. package/contracts/staking/Staking.sol +27 -42
  419. package/contracts/staking/StakingManager.sol +10 -12
  420. package/contracts/staking/StakingReader.sol +23 -20
  421. package/contracts/staking/StakingService.sol +10 -14
  422. package/contracts/staking/StakingServiceManager.sol +4 -4
  423. package/contracts/staking/StakingStore.sol +12 -22
  424. package/contracts/staking/TargetManagerLib.sol +7 -3
  425. package/contracts/type/Amount.sol +27 -5
  426. package/contracts/type/Blocknumber.sol +7 -1
  427. package/contracts/type/ClaimId.sol +6 -1
  428. package/contracts/type/NftId.sol +1 -0
  429. package/contracts/type/ObjectType.sol +19 -18
  430. package/contracts/type/PayoutId.sol +10 -10
  431. package/contracts/type/Referral.sol +1 -0
  432. package/contracts/type/RiskId.sol +15 -1
  433. package/contracts/type/Seconds.sol +21 -1
  434. package/contracts/type/StateId.sol +15 -1
  435. package/contracts/type/Timestamp.sol +11 -1
  436. package/contracts/type/UFixed.sol +33 -10
  437. package/contracts/type/Version.sol +3 -1
  438. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  439. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  440. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  441. package/package.json +2 -1
  442. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  443. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  444. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  445. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  446. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  447. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  448. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  449. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  450. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  451. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  452. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  453. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  454. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  455. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  456. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  457. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  458. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  459. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  460. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  461. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  462. package/contracts/product/ProductServiceManager.sol +0 -42
  463. package/contracts/registry/ReleaseManager.sol +0 -487
  464. package/contracts/shared/InitializableCustom.sol +0 -177
  465. /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,39 +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 {IRegisterable} from "../shared/IRegisterable.sol";
21
-
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
-
7
+ import {BundleSet} from "./BundleSet.sol";
24
8
  import {InstanceAdmin} from "./InstanceAdmin.sol";
25
- import {BundleManager} from "./BundleManager.sol";
26
9
  import {InstanceReader} from "./InstanceReader.sol";
27
10
  import {InstanceStore} from "./InstanceStore.sol";
28
-
29
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
-
31
- import {IAccess} from "./module/IAccess.sol";
32
-
33
- import {IBundleService} from "../pool/IBundleService.sol";
34
- import {IDistributionService} from "../distribution/IDistributionService.sol";
35
- import {IPolicyService} from "../product/IPolicyService.sol";
36
- import {IPoolService} from "../pool/IPoolService.sol";
37
- import {IProductService} from "../product/IProductService.sol";
38
- import {IPolicyService} from "../product/IPolicyService.sol";
39
- 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";
40
17
 
41
18
 
42
19
  interface IInstance is
@@ -48,9 +25,9 @@ interface IInstance is
48
25
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
49
26
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
50
27
 
51
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
52
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
53
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
28
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
29
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
30
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
54
31
 
55
32
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
33
 
@@ -80,7 +57,7 @@ interface IInstance is
80
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
63
  }
@@ -2,7 +2,7 @@
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
7
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
8
  import {IService} from "../shared/IService.sol";
@@ -24,7 +24,7 @@ interface IInstanceService is IService {
24
24
 
25
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
28
  error ErrorInstanceServiceInstanceAddressZero();
29
29
 
30
30
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -35,11 +35,11 @@ interface IInstanceService is IService {
35
35
  error ErrorInstanceServiceAccessManagerZero();
36
36
  error ErrorInstanceServiceInstanceAdminZero();
37
37
  error ErrorInstanceServiceInstanceReaderZero();
38
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
39
39
  error ErrorInstanceServiceInstanceStoreZero();
40
40
 
41
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
42
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
43
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
45
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
@@ -52,7 +52,7 @@ interface IInstanceService is IService {
52
52
 
53
53
  event LogInstanceCloned(NftId instanceNftId, address instance);
54
54
 
55
- function createInstanceClone()
55
+ function createInstance()
56
56
  external
57
57
  returns (
58
58
  // TODO check if Instance can be changed to IInstance