@etherisc/gif-next 0.0.2-a6ce659-551 → 0.0.2-a6d7b34-014

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