@etherisc/gif-next 0.0.2-79292f9-089 → 0.0.2-79a4d57-521

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 +28 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +142 -44
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +63 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +179 -346
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -262
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +241 -242
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +138 -120
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -33
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +433 -143
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +955 -264
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -97
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +688 -439
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +138 -305
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +113 -104
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +114 -257
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -93
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +131 -274
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -363
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -129
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -294
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +131 -285
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +474 -525
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +156 -106
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +131 -170
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +101 -95
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +249 -331
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +407 -242
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -119
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -64
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +405 -267
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -108
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +125 -127
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +247 -329
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -172
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +112 -90
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +119 -19
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +164 -56
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +326 -259
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -85
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +424 -224
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +92 -217
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -610
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -125
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +113 -256
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +137 -102
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +84 -31
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -308
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -101
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +104 -90
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  326. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  331. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Version.sol/VersionLib.json +3 -22
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +45 -13
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +76 -75
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  340. package/contracts/accounting/AccountingService.sol +262 -0
  341. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  342. package/contracts/accounting/IAccountingService.sol +45 -0
  343. package/contracts/authorization/AccessAdmin.sol +232 -133
  344. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  345. package/contracts/authorization/Authorization.sol +322 -205
  346. package/contracts/authorization/IAccess.sol +1 -0
  347. package/contracts/authorization/IAccessAdmin.sol +17 -9
  348. package/contracts/authorization/IAuthorization.sol +27 -7
  349. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  350. package/contracts/authorization/ServiceAuthorization.sol +25 -10
  351. package/contracts/distribution/BasicDistribution.sol +8 -7
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  353. package/contracts/distribution/Distribution.sol +33 -41
  354. package/contracts/distribution/DistributionService.sol +111 -76
  355. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  356. package/contracts/distribution/IDistributionComponent.sol +1 -1
  357. package/contracts/distribution/IDistributionService.sol +13 -8
  358. package/contracts/examples/fire/DamageLevel.sol +59 -0
  359. package/contracts/examples/fire/FirePool.sol +90 -0
  360. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  361. package/contracts/examples/fire/FireProduct.sol +438 -0
  362. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  363. package/contracts/examples/fire/FireUSD.sol +26 -0
  364. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  365. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  367. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  368. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  369. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  370. package/contracts/instance/BundleSet.sol +42 -38
  371. package/contracts/instance/IInstance.sol +17 -10
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +53 -35
  374. package/contracts/instance/InstanceAdmin.sol +257 -100
  375. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  376. package/contracts/instance/InstanceReader.sol +256 -39
  377. package/contracts/instance/InstanceService.sol +95 -157
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +23 -2
  380. package/contracts/instance/RiskSet.sol +118 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +10 -2
  383. package/contracts/instance/base/ObjectSet.sol +31 -33
  384. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  385. package/contracts/instance/module/IComponents.sol +13 -8
  386. package/contracts/instance/module/IPolicy.sol +25 -24
  387. package/contracts/instance/module/IRisk.sol +3 -0
  388. package/contracts/oracle/BasicOracle.sol +0 -1
  389. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  390. package/contracts/oracle/IOracleService.sol +2 -1
  391. package/contracts/oracle/Oracle.sol +6 -17
  392. package/contracts/oracle/OracleService.sol +113 -82
  393. package/contracts/oracle/OracleServiceManager.sol +6 -6
  394. package/contracts/pool/BasicPool.sol +33 -24
  395. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  396. package/contracts/pool/BundleService.sol +93 -134
  397. package/contracts/pool/BundleServiceManager.sol +6 -6
  398. package/contracts/pool/IBundleService.sol +15 -34
  399. package/contracts/pool/IPoolComponent.sol +19 -15
  400. package/contracts/pool/IPoolService.sol +73 -71
  401. package/contracts/pool/Pool.sol +139 -122
  402. package/contracts/pool/PoolLib.sol +216 -0
  403. package/contracts/pool/PoolService.sol +489 -273
  404. package/contracts/pool/PoolServiceManager.sol +4 -4
  405. package/contracts/product/ApplicationService.sol +36 -27
  406. package/contracts/product/ApplicationServiceManager.sol +4 -4
  407. package/contracts/product/BasicProduct.sol +10 -12
  408. package/contracts/product/BasicProductAuthorization.sol +24 -11
  409. package/contracts/product/ClaimService.sol +366 -150
  410. package/contracts/product/ClaimServiceManager.sol +4 -4
  411. package/contracts/product/IApplicationService.sol +5 -2
  412. package/contracts/product/IClaimService.sol +43 -8
  413. package/contracts/product/IPolicyService.sol +41 -28
  414. package/contracts/product/IPricingService.sol +10 -10
  415. package/contracts/product/IProductComponent.sol +27 -5
  416. package/contracts/product/PolicyService.sol +456 -274
  417. package/contracts/product/PolicyServiceManager.sol +4 -4
  418. package/contracts/product/PricingService.sol +62 -62
  419. package/contracts/product/PricingServiceManager.sol +4 -4
  420. package/contracts/product/Product.sol +149 -82
  421. package/contracts/product/RiskService.sol +77 -29
  422. package/contracts/product/RiskServiceManager.sol +4 -4
  423. package/contracts/registry/ChainNft.sol +10 -11
  424. package/contracts/registry/IRegistry.sol +18 -20
  425. package/contracts/registry/IRegistryService.sol +5 -12
  426. package/contracts/registry/IRelease.sol +26 -0
  427. package/contracts/registry/ITransferInterceptor.sol +1 -2
  428. package/contracts/registry/Registry.sol +42 -17
  429. package/contracts/registry/RegistryAdmin.sol +133 -243
  430. package/contracts/registry/RegistryService.sol +39 -49
  431. package/contracts/registry/RegistryServiceManager.sol +3 -3
  432. package/contracts/registry/ReleaseAdmin.sol +245 -0
  433. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  434. package/contracts/registry/ReleaseRegistry.sol +236 -263
  435. package/contracts/registry/ServiceAuthorizationV3.sol +98 -51
  436. package/contracts/registry/TokenRegistry.sol +6 -8
  437. package/contracts/shared/Component.sol +74 -115
  438. package/contracts/shared/ComponentService.sol +427 -376
  439. package/contracts/shared/ComponentServiceManager.sol +8 -5
  440. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  441. package/contracts/shared/ContractLib.sol +253 -0
  442. package/contracts/shared/IComponent.sol +8 -17
  443. package/contracts/shared/IComponentService.sol +41 -37
  444. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  445. package/contracts/shared/ILifecycle.sol +3 -1
  446. package/contracts/shared/INftOwnable.sol +2 -0
  447. package/contracts/shared/IPolicyHolder.sol +12 -22
  448. package/contracts/shared/IRegisterable.sol +23 -1
  449. package/contracts/shared/IService.sol +3 -5
  450. package/contracts/shared/InitializableERC165.sol +2 -2
  451. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  452. package/contracts/shared/KeyValueStore.sol +1 -1
  453. package/contracts/shared/Lifecycle.sol +15 -4
  454. package/contracts/shared/NftOwnable.sol +29 -9
  455. package/contracts/shared/PolicyHolder.sol +15 -52
  456. package/contracts/shared/Registerable.sol +55 -21
  457. package/contracts/shared/RegistryLinked.sol +9 -14
  458. package/contracts/shared/Service.sol +15 -32
  459. package/contracts/shared/TokenHandler.sol +274 -72
  460. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  461. package/contracts/staking/IStaking.sol +7 -9
  462. package/contracts/staking/IStakingService.sol +8 -3
  463. package/contracts/staking/StakeManagerLib.sol +19 -1
  464. package/contracts/staking/Staking.sol +69 -40
  465. package/contracts/staking/StakingManager.sol +8 -6
  466. package/contracts/staking/StakingReader.sol +13 -6
  467. package/contracts/staking/StakingService.sol +47 -24
  468. package/contracts/staking/StakingServiceManager.sol +6 -5
  469. package/contracts/staking/TargetManagerLib.sol +7 -3
  470. package/contracts/type/Amount.sol +15 -0
  471. package/contracts/type/ClaimId.sol +6 -1
  472. package/contracts/type/Key32.sol +2 -2
  473. package/contracts/type/Key32Set.sol +62 -0
  474. package/contracts/type/NftId.sol +7 -0
  475. package/contracts/type/ObjectType.sol +52 -20
  476. package/contracts/type/PayoutId.sol +10 -10
  477. package/contracts/type/RiskId.sol +35 -4
  478. package/contracts/type/RoleId.sol +23 -15
  479. package/contracts/type/Seconds.sol +8 -0
  480. package/contracts/type/Selector.sol +5 -0
  481. package/contracts/type/StateId.sol +12 -2
  482. package/contracts/type/Timestamp.sol +0 -5
  483. package/contracts/type/UFixed.sol +13 -119
  484. package/contracts/type/Version.sol +17 -10
  485. package/contracts/upgradeability/ProxyManager.sol +74 -40
  486. package/contracts/upgradeability/Versionable.sol +2 -2
  487. package/package.json +4 -3
  488. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  489. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  490. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  491. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  492. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  494. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  495. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  496. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  497. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  498. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  499. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  500. package/contracts/instance/module/IAccess.sol +0 -46
  501. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {BasicOracle} from "../../oracle/BasicOracle.sol";
7
+ import {RequestId} from "../../type/RequestId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ contract SimpleOracle is
11
+ BasicOracle
12
+ {
13
+
14
+ string public constant ANSWER_SYNC = "oracle constant sync answer";
15
+
16
+ struct SimpleRequest {
17
+ bool synchronous;
18
+ string text;
19
+ }
20
+
21
+ struct SimpleResponse {
22
+ bool revertInCall;
23
+ Timestamp revertUntil;
24
+ string text;
25
+ }
26
+
27
+ event LogSimpleOracleRequestReceived(RequestId requestId, NftId requesterId, bool synchronous, string requestText);
28
+ event LogSimpleOracleCancellingReceived(RequestId requestId);
29
+
30
+ event LogSimpleOracleAsyncResponseSent(RequestId requestId, string responseText);
31
+ event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId productNftId,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token
39
+ )
40
+ {
41
+ initialize(
42
+ registry,
43
+ productNftId,
44
+ authorization,
45
+ initialOwner,
46
+ "SimpleOracle",
47
+ token
48
+ );
49
+ }
50
+
51
+ function initialize(
52
+ address registry,
53
+ NftId productNftId,
54
+ IAuthorization authorization,
55
+ address initialOwner,
56
+ string memory name,
57
+ address token
58
+ )
59
+ public
60
+ virtual
61
+ initializer()
62
+ {
63
+ _initializeBasicOracle(
64
+ registry,
65
+ productNftId,
66
+ authorization,
67
+ initialOwner,
68
+ name,
69
+ token);
70
+ }
71
+
72
+ /// @dev use case specific handling of oracle requests
73
+ /// for now only log is emitted to verify that request has been received by oracle component
74
+ function _request(
75
+ RequestId requestId,
76
+ NftId requesterId,
77
+ bytes calldata requestData,
78
+ Timestamp expiryAt
79
+ )
80
+ internal
81
+ virtual override
82
+ {
83
+ SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
84
+
85
+ if (request.synchronous) {
86
+ _respondSync(requestId);
87
+ }
88
+
89
+ emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
90
+ }
91
+
92
+
93
+ /// @dev use case specific handling of oracle requests
94
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
95
+ function _cancel(
96
+ RequestId requestId
97
+ )
98
+ internal
99
+ virtual override
100
+ {
101
+ emit LogSimpleOracleCancellingReceived(requestId);
102
+ }
103
+
104
+
105
+ function respondAsync(
106
+ RequestId requestId,
107
+ string memory responseText,
108
+ bool revertInCall,
109
+ Timestamp revertUntil
110
+ )
111
+ external
112
+ // permissionless, no restricted() for now
113
+ {
114
+ bytes memory responseData = abi.encode(
115
+ SimpleResponse(
116
+ revertInCall,
117
+ revertUntil,
118
+ responseText));
119
+
120
+ _respond(requestId, responseData);
121
+
122
+ emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
123
+ }
124
+
125
+
126
+ function _respondSync(
127
+ RequestId requestId
128
+ )
129
+ internal
130
+ {
131
+ bytes memory responseData = abi.encode(ANSWER_SYNC);
132
+ _respond(requestId, responseData);
133
+
134
+ emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
135
+ }
136
+
137
+ }
@@ -0,0 +1,106 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicPool} from "../../pool/BasicPool.sol";
8
+ import {Fee} from "../../type/Fee.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {NftId} from "../../type/NftId.sol";
12
+ import {Seconds} from "../../type/Timestamp.sol";
13
+ import {UFixed} from "../../type/UFixed.sol";
14
+
15
+ contract SimplePool is
16
+ BasicPool
17
+ {
18
+
19
+ constructor(
20
+ address registry,
21
+ NftId productNftId,
22
+ address token,
23
+ IComponents.PoolInfo memory poolInfo,
24
+ IAuthorization authorization,
25
+ address initialOwner
26
+ )
27
+ {
28
+ initialize(
29
+ registry,
30
+ productNftId,
31
+ token,
32
+ poolInfo,
33
+ authorization,
34
+ initialOwner
35
+ );
36
+ }
37
+
38
+
39
+ function initialize(
40
+ address registry,
41
+ NftId productNftId,
42
+ address token,
43
+ IComponents.PoolInfo memory poolInfo,
44
+ IAuthorization authorization,
45
+ address initialOwner
46
+ )
47
+ public
48
+ virtual
49
+ initializer()
50
+ {
51
+ _initializeBasicPool(
52
+ registry,
53
+ productNftId,
54
+ "SimplePool",
55
+ token,
56
+ poolInfo,
57
+ authorization,
58
+ initialOwner);
59
+ }
60
+
61
+
62
+ function createBundle(
63
+ Fee memory fee,
64
+ uint256 initialAmount,
65
+ Seconds lifetime,
66
+ bytes calldata filter
67
+ )
68
+ external
69
+ virtual
70
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
71
+ {
72
+ address owner = msg.sender;
73
+ Amount netStakedAmount;
74
+ bundleNftId = _createBundle(
75
+ owner,
76
+ fee,
77
+ lifetime,
78
+ filter
79
+ );
80
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
81
+ netStakedAmountInt = netStakedAmount.toInt();
82
+ }
83
+
84
+
85
+ function fundPoolWallet(
86
+ Amount amount
87
+ )
88
+ external
89
+ {
90
+ _fundPoolWallet(amount);
91
+ }
92
+
93
+
94
+ function defundPoolWallet(
95
+ Amount amount
96
+ )
97
+ external
98
+ {
99
+ _defundPoolWallet(amount);
100
+ }
101
+
102
+
103
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
104
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
105
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
106
+ }
@@ -0,0 +1,28 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
5
+ import {IAccess} from "../../authorization/IAccess.sol";
6
+ import {PUBLIC_ROLE} from "../../type/RoleId.sol";
7
+ import {SimplePool} from "./SimplePool.sol";
8
+
9
+ contract SimplePoolAuthorization
10
+ is BasicPoolAuthorization
11
+ {
12
+ constructor(string memory poolName)
13
+ BasicPoolAuthorization(poolName)
14
+ {}
15
+
16
+ function _setupTargetAuthorizations()
17
+ internal
18
+ virtual override
19
+ {
20
+ super._setupTargetAuthorizations();
21
+
22
+ // authorize public role (open access to any account, only allows to lock target)
23
+ IAccess.FunctionInfo[] storage functions;
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
+ _authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
26
+ _authorize(functions, SimplePool.setWallet.selector, "setWallet");
27
+ }
28
+ }
@@ -0,0 +1,377 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicProduct} from "../../product/BasicProduct.sol";
8
+ import {ClaimId} from "../../type/ClaimId.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {IOracleService} from "../../oracle/IOracleService.sol";
12
+ import {ORACLE} from "../../type/ObjectType.sol";
13
+ import {NftId} from "../../type/NftId.sol";
14
+ import {PayoutId} from "../../type/PayoutId.sol";
15
+ import {ReferralId} from "../../type/Referral.sol";
16
+ import {RequestId} from "../../type/RequestId.sol";
17
+ import {RiskId} from "../../type/RiskId.sol";
18
+ import {Seconds} from "../../type/Seconds.sol";
19
+ import {SimpleOracle} from "./SimpleOracle.sol";
20
+ import {StateId} from "../../type/StateId.sol";
21
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
22
+
23
+ uint64 constant SPECIAL_ROLE_INT = 11111;
24
+
25
+ contract SimpleProduct is
26
+ BasicProduct
27
+ {
28
+
29
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
30
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
31
+
32
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
33
+
34
+ IOracleService private _oracleService;
35
+
36
+ constructor(
37
+ address registry,
38
+ NftId instanceNftId,
39
+ string memory name,
40
+ address token,
41
+ IComponents.ProductInfo memory productInfo,
42
+ IComponents.FeeInfo memory feeInfo,
43
+ IAuthorization authorization,
44
+ address initialOwner
45
+ )
46
+ {
47
+ initialize(
48
+ registry,
49
+ instanceNftId,
50
+ name,
51
+ token,
52
+ productInfo,
53
+ feeInfo,
54
+ authorization,
55
+ initialOwner);
56
+ }
57
+
58
+
59
+ function initialize(
60
+ address registry,
61
+ NftId instanceNftid,
62
+ string memory name,
63
+ address token,
64
+ IComponents.ProductInfo memory productInfo,
65
+ IComponents.FeeInfo memory feeInfo,
66
+ IAuthorization authorization,
67
+ address initialOwner
68
+ )
69
+ public
70
+ virtual
71
+ initializer()
72
+ {
73
+ _initializeBasicProduct(
74
+ registry,
75
+ instanceNftid,
76
+ name,
77
+ token,
78
+ productInfo,
79
+ feeInfo,
80
+ authorization,
81
+ initialOwner);
82
+
83
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
84
+ }
85
+
86
+
87
+ function createRisk(
88
+ RiskId id,
89
+ bytes memory data
90
+ ) public {
91
+ _createRisk(
92
+ id,
93
+ data
94
+ );
95
+ }
96
+
97
+ function updateRisk(
98
+ RiskId id,
99
+ bytes memory data
100
+ ) public {
101
+ _updateRisk(
102
+ id,
103
+ data
104
+ );
105
+ }
106
+
107
+ function updateRiskState(
108
+ RiskId id,
109
+ StateId state
110
+ ) public {
111
+ _updateRiskState(
112
+ id,
113
+ state
114
+ );
115
+ }
116
+
117
+ function createApplication(
118
+ address applicationOwner,
119
+ RiskId riskId,
120
+ uint256 sumInsured,
121
+ Seconds lifetime,
122
+ bytes memory applicationData,
123
+ NftId bundleNftId,
124
+ ReferralId referralId
125
+ )
126
+ public
127
+ returns (NftId nftId)
128
+ {
129
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
130
+ Amount premiumAmount = calculatePremium(
131
+ sumInsuredAmount,
132
+ riskId,
133
+ lifetime,
134
+ applicationData,
135
+ bundleNftId,
136
+ referralId);
137
+
138
+ return _createApplication(
139
+ applicationOwner,
140
+ riskId,
141
+ sumInsuredAmount,
142
+ premiumAmount,
143
+ lifetime,
144
+ bundleNftId,
145
+ referralId,
146
+ applicationData
147
+ );
148
+ }
149
+
150
+ function createPolicy(
151
+ NftId applicationNftId,
152
+ bool requirePremiumPayment,
153
+ Timestamp activateAt
154
+ ) public {
155
+ _createPolicy(applicationNftId, activateAt);
156
+ if (requirePremiumPayment == true) {
157
+ _collectPremium(applicationNftId, activateAt);
158
+ }
159
+ }
160
+
161
+ function decline(
162
+ NftId policyNftId
163
+ ) public {
164
+ _decline(policyNftId);
165
+ }
166
+
167
+ function expire(
168
+ NftId policyNftId,
169
+ Timestamp expireAt
170
+ )
171
+ public
172
+ returns (Timestamp)
173
+ {
174
+ return _expire(policyNftId, expireAt);
175
+ }
176
+
177
+ function collectPremium(
178
+ NftId policyNftId,
179
+ Timestamp activateAt
180
+ ) public {
181
+ _collectPremium(policyNftId, activateAt);
182
+ }
183
+
184
+ function activate(
185
+ NftId policyNftId,
186
+ Timestamp activateAt
187
+ ) public {
188
+ _activate(policyNftId, activateAt);
189
+ }
190
+
191
+ function adjustActivation(
192
+ NftId policyNftId,
193
+ Timestamp activateAt
194
+ ) public {
195
+ _adjustActivation(policyNftId, activateAt);
196
+ }
197
+
198
+ function close(
199
+ NftId policyNftId
200
+ ) public {
201
+ _close(policyNftId);
202
+ }
203
+
204
+ function submitClaim(
205
+ NftId policyNftId,
206
+ Amount claimAmount,
207
+ bytes memory submissionData
208
+ ) public returns (ClaimId) {
209
+ return _submitClaim(policyNftId, claimAmount, submissionData);
210
+ }
211
+
212
+ function revokeClaim(
213
+ NftId policyNftId,
214
+ ClaimId claimId
215
+ ) public {
216
+ _revokeClaim(policyNftId, claimId);
217
+ }
218
+
219
+ function confirmClaim(
220
+ NftId policyNftId,
221
+ ClaimId claimId,
222
+ Amount confirmedAmount,
223
+ bytes memory processData
224
+ ) public {
225
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
226
+ }
227
+
228
+ function declineClaim(
229
+ NftId policyNftId,
230
+ ClaimId claimId,
231
+ bytes memory processData
232
+ ) public {
233
+ _declineClaim(policyNftId, claimId, processData);
234
+ }
235
+
236
+ function closeClaim(
237
+ NftId policyNftId,
238
+ ClaimId claimId
239
+ ) public {
240
+ _closeClaim(policyNftId, claimId);
241
+ }
242
+
243
+ function createPayout(
244
+ NftId policyNftId,
245
+ ClaimId claimId,
246
+ Amount amount,
247
+ bytes memory data
248
+ ) public returns (PayoutId) {
249
+ return _createPayout(policyNftId, claimId, amount, data);
250
+ }
251
+
252
+ function cancelPayout(
253
+ NftId policyNftId,
254
+ PayoutId payoutId
255
+ ) public {
256
+ _cancelPayout(policyNftId, payoutId);
257
+ }
258
+
259
+ // TODO add test
260
+ function createPayoutForBeneficiary(
261
+ NftId policyNftId,
262
+ ClaimId claimId,
263
+ Amount amount,
264
+ address beneficiary,
265
+ bytes memory data
266
+ ) public returns (PayoutId) {
267
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
268
+ }
269
+
270
+ function processPayout(
271
+ NftId policyNftId,
272
+ PayoutId payoutId
273
+ ) public {
274
+ _processPayout(policyNftId, payoutId);
275
+ }
276
+
277
+ function createOracleRequest(
278
+ NftId oracleNftId,
279
+ string memory requestText,
280
+ Timestamp expiryAt,
281
+ bool synchronous
282
+ )
283
+ public
284
+ // restricted()
285
+ returns (RequestId)
286
+ {
287
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
288
+ synchronous,
289
+ requestText));
290
+
291
+ if (synchronous) {
292
+ return _oracleService.request(
293
+ oracleNftId,
294
+ requestData,
295
+ expiryAt,
296
+ "fulfillOracleRequestSync");
297
+ } else {
298
+ return _oracleService.request(
299
+ oracleNftId,
300
+ requestData,
301
+ expiryAt,
302
+ "fulfillOracleRequestAsync");
303
+ }
304
+ }
305
+
306
+ function cancelOracleRequest(
307
+ RequestId requestId
308
+ )
309
+ public
310
+ // restricted() //
311
+ {
312
+ _oracleService.cancel(requestId);
313
+ }
314
+
315
+ function fulfillOracleRequestSync(
316
+ RequestId requestId,
317
+ bytes memory responseData
318
+ )
319
+ public
320
+ // restricted() // only oracle service
321
+ {
322
+ string memory responseText = abi.decode(responseData, (string));
323
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
324
+ }
325
+
326
+ function fulfillOracleRequestAsync(
327
+ RequestId requestId,
328
+ bytes memory responseData
329
+ )
330
+ public
331
+ // restricted() // only oracle service
332
+ {
333
+ SimpleOracle.SimpleResponse memory response = abi.decode(
334
+ responseData, (SimpleOracle.SimpleResponse));
335
+
336
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
337
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
338
+ }
339
+
340
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
341
+ }
342
+
343
+
344
+ function resend(
345
+ RequestId requestId
346
+ )
347
+ public
348
+ // restricted() //
349
+ {
350
+ _oracleService.resend(requestId);
351
+ }
352
+
353
+
354
+ function doSomethingSpecial()
355
+ public
356
+ restricted()
357
+ returns (bool)
358
+ {
359
+ return true;
360
+ }
361
+
362
+ function doWhenNotLocked()
363
+ public
364
+ restricted()
365
+ returns (bool)
366
+ {
367
+ return true;
368
+ }
369
+
370
+ function getOracleService() public view returns (IOracleService) {
371
+ return _oracleService;
372
+ }
373
+
374
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
375
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
376
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
377
+ }