@etherisc/gif-next 0.0.2-bc4f70f-636 → 0.0.2-bc7a257-709

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 (590) hide show
  1. package/README.md +128 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +507 -845
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -605
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +510 -263
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +176 -118
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +323 -66
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +265 -88
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +269 -111
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -213
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1153 -396
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +275 -274
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -104
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +916 -774
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +193 -177
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +147 -93
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +372 -200
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +166 -104
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +224 -34
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +472 -307
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +715 -541
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -103
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +227 -166
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +125 -99
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +454 -220
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +166 -120
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +148 -8
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +169 -82
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -7
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +487 -292
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +162 -104
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +252 -308
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -132
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +268 -567
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +367 -63
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +599 -126
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1777 -166
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +132 -278
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +111 -85
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +529 -532
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -128
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +509 -249
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IService.sol/IService.json +67 -1
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Service.sol/Service.json +63 -104
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +203 -29
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +280 -421
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  286. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -117
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +259 -187
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +117 -99
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +140 -4
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  328. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  338. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  340. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  346. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  350. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  351. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  356. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  357. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  358. package/contracts/accounting/AccountingService.sol +261 -0
  359. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  360. package/contracts/accounting/IAccountingService.sol +45 -0
  361. package/contracts/authorization/AccessAdmin.sol +704 -0
  362. package/contracts/authorization/AccessAdminLib.sol +183 -0
  363. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  364. package/contracts/authorization/Authorization.sol +365 -0
  365. package/contracts/authorization/IAccess.sol +57 -0
  366. package/contracts/authorization/IAccessAdmin.sol +170 -0
  367. package/contracts/authorization/IAuthorization.sol +80 -0
  368. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  369. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  370. package/contracts/distribution/BasicDistribution.sol +141 -0
  371. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  372. package/contracts/distribution/Distribution.sol +122 -139
  373. package/contracts/distribution/DistributionService.sol +221 -130
  374. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  375. package/contracts/distribution/IDistributionComponent.sol +19 -42
  376. package/contracts/distribution/IDistributionService.sol +44 -22
  377. package/contracts/examples/fire/DamageLevel.sol +59 -0
  378. package/contracts/examples/fire/FirePool.sol +86 -0
  379. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  380. package/contracts/examples/fire/FireProduct.sol +433 -0
  381. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  382. package/contracts/examples/fire/FireUSD.sol +26 -0
  383. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  384. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  386. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  387. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  389. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  390. package/contracts/instance/BundleSet.sol +130 -0
  391. package/contracts/instance/IInstance.sol +71 -47
  392. package/contracts/instance/IInstanceService.sol +47 -40
  393. package/contracts/instance/Instance.sol +197 -129
  394. package/contracts/instance/InstanceAdmin.sol +363 -244
  395. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  396. package/contracts/instance/InstanceReader.sol +308 -48
  397. package/contracts/instance/InstanceService.sol +272 -175
  398. package/contracts/instance/InstanceServiceManager.sol +8 -13
  399. package/contracts/instance/InstanceStore.sol +35 -18
  400. package/contracts/instance/RiskSet.sol +118 -0
  401. package/contracts/instance/base/BalanceStore.sol +14 -11
  402. package/contracts/instance/base/Cloneable.sol +2 -25
  403. package/contracts/instance/base/ObjectCounter.sol +1 -2
  404. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  405. package/contracts/instance/base/ObjectSet.sol +77 -0
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +6 -5
  408. package/contracts/instance/module/IComponents.sol +30 -20
  409. package/contracts/instance/module/IDistribution.sol +21 -9
  410. package/contracts/instance/module/IPolicy.sol +50 -29
  411. package/contracts/instance/module/IRisk.sol +5 -0
  412. package/contracts/mock/Dip.sol +1 -1
  413. package/contracts/oracle/BasicOracle.sol +45 -0
  414. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  415. package/contracts/oracle/IOracle.sol +25 -4
  416. package/contracts/oracle/IOracleComponent.sol +2 -1
  417. package/contracts/oracle/IOracleService.sol +2 -1
  418. package/contracts/oracle/Oracle.sol +62 -53
  419. package/contracts/oracle/OracleService.sol +118 -85
  420. package/contracts/oracle/OracleServiceManager.sol +8 -11
  421. package/contracts/pool/BasicPool.sol +173 -0
  422. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  423. package/contracts/pool/BundleService.sol +207 -108
  424. package/contracts/pool/BundleServiceManager.sol +8 -11
  425. package/contracts/pool/IBundleService.sol +31 -22
  426. package/contracts/pool/IPoolComponent.sol +20 -70
  427. package/contracts/pool/IPoolService.sol +90 -75
  428. package/contracts/pool/Pool.sol +207 -163
  429. package/contracts/pool/PoolLib.sol +309 -0
  430. package/contracts/pool/PoolService.sol +396 -262
  431. package/contracts/pool/PoolServiceManager.sol +6 -9
  432. package/contracts/product/ApplicationService.sol +107 -83
  433. package/contracts/product/ApplicationServiceManager.sol +6 -6
  434. package/contracts/product/BasicProduct.sol +49 -0
  435. package/contracts/product/BasicProductAuthorization.sol +56 -0
  436. package/contracts/product/ClaimService.sol +378 -180
  437. package/contracts/product/ClaimServiceManager.sol +6 -6
  438. package/contracts/product/IApplicationService.sol +9 -2
  439. package/contracts/product/IClaimService.sol +44 -8
  440. package/contracts/product/IPolicyService.sol +53 -36
  441. package/contracts/product/IPricingService.sol +11 -10
  442. package/contracts/product/IProductComponent.sol +29 -9
  443. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  444. package/contracts/product/PolicyService.sol +441 -276
  445. package/contracts/product/PolicyServiceLib.sol +119 -0
  446. package/contracts/product/PolicyServiceManager.sol +6 -9
  447. package/contracts/product/PricingService.sol +72 -64
  448. package/contracts/product/PricingServiceManager.sol +6 -9
  449. package/contracts/product/Product.sol +230 -140
  450. package/contracts/product/RiskService.sol +154 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +72 -40
  453. package/contracts/registry/IRegistry.sol +78 -32
  454. package/contracts/registry/IRegistryService.sol +3 -10
  455. package/contracts/registry/IRelease.sol +29 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -2
  457. package/contracts/registry/Registry.sol +368 -214
  458. package/contracts/registry/RegistryAdmin.sol +188 -167
  459. package/contracts/registry/RegistryAuthorization.sol +267 -0
  460. package/contracts/registry/RegistryService.sol +46 -71
  461. package/contracts/registry/RegistryServiceManager.sol +5 -10
  462. package/contracts/registry/ReleaseAdmin.sol +253 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +517 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +332 -0
  466. package/contracts/registry/TokenRegistry.sol +12 -11
  467. package/contracts/shared/Component.sol +65 -136
  468. package/contracts/shared/ComponentService.sol +428 -385
  469. package/contracts/shared/ComponentServiceManager.sol +10 -7
  470. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  471. package/contracts/shared/ContractLib.sol +347 -0
  472. package/contracts/shared/IComponent.sol +5 -17
  473. package/contracts/shared/IComponentService.sol +49 -41
  474. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  475. package/contracts/shared/IKeyValueStore.sol +1 -0
  476. package/contracts/shared/ILifecycle.sol +3 -2
  477. package/contracts/shared/INftOwnable.sol +2 -0
  478. package/contracts/shared/IPolicyHolder.sol +12 -22
  479. package/contracts/shared/IRegisterable.sol +23 -1
  480. package/contracts/shared/IService.sol +10 -5
  481. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  482. package/contracts/shared/InstanceLinkedComponent.sol +95 -45
  483. package/contracts/shared/KeyValueStore.sol +7 -3
  484. package/contracts/shared/Lifecycle.sol +30 -72
  485. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  486. package/contracts/shared/NftOwnable.sol +31 -11
  487. package/contracts/shared/PolicyHolder.sol +17 -57
  488. package/contracts/shared/Registerable.sol +52 -21
  489. package/contracts/shared/RegistryLinked.sol +9 -14
  490. package/contracts/shared/Service.sol +28 -40
  491. package/contracts/shared/TokenHandler.sol +310 -26
  492. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  493. package/contracts/staking/IStaking.sol +26 -15
  494. package/contracts/staking/IStakingService.sol +41 -15
  495. package/contracts/staking/Staking.sol +153 -158
  496. package/contracts/staking/StakingLib.sol +281 -0
  497. package/contracts/staking/StakingLifecycle.sol +23 -0
  498. package/contracts/staking/StakingManager.sol +10 -12
  499. package/contracts/staking/StakingReader.sol +26 -33
  500. package/contracts/staking/StakingService.sol +143 -82
  501. package/contracts/staking/StakingServiceManager.sol +8 -8
  502. package/contracts/staking/StakingStore.sol +94 -60
  503. package/contracts/staking/TargetManagerLib.sol +7 -3
  504. package/contracts/type/Amount.sol +27 -5
  505. package/contracts/type/Blocknumber.sol +7 -1
  506. package/contracts/type/ClaimId.sol +6 -1
  507. package/contracts/type/Fee.sol +8 -8
  508. package/contracts/type/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/type/NftId.sol +7 -0
  511. package/contracts/type/ObjectType.sol +187 -61
  512. package/contracts/type/PayoutId.sol +10 -10
  513. package/contracts/type/Referral.sol +1 -0
  514. package/contracts/type/RiskId.sol +38 -6
  515. package/contracts/type/RoleId.sol +117 -81
  516. package/contracts/type/Seconds.sol +21 -1
  517. package/contracts/type/Selector.sol +107 -0
  518. package/contracts/type/StateId.sol +15 -1
  519. package/contracts/type/String.sol +53 -0
  520. package/contracts/type/Timestamp.sol +10 -5
  521. package/contracts/type/UFixed.sol +61 -125
  522. package/contracts/type/Version.sol +57 -6
  523. package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
  524. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  525. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  526. package/package.json +10 -6
  527. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  529. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  530. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  531. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  533. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  535. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  536. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  537. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  538. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  540. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  541. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  542. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  543. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  544. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  546. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  547. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  548. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  549. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  550. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  552. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  553. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  557. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  558. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  559. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  561. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  562. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  563. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  564. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  566. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  568. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  569. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  570. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
  571. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  572. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  573. package/contracts/instance/BundleManager.sol +0 -126
  574. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  575. package/contracts/instance/base/ObjectManager.sol +0 -82
  576. package/contracts/instance/module/IAccess.sol +0 -46
  577. package/contracts/product/ProductService.sol +0 -124
  578. package/contracts/product/ProductServiceManager.sol +0 -42
  579. package/contracts/registry/ReleaseManager.sol +0 -600
  580. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  581. package/contracts/shared/AccessManagerCustom.sol +0 -736
  582. package/contracts/shared/AccessManagerExtended.sol +0 -470
  583. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  584. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  585. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  586. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  587. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  588. package/contracts/shared/InitializableCustom.sol +0 -177
  589. package/contracts/staking/StakeManagerLib.sol +0 -179
  590. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,52 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount} from "../../type/Amount.sol";
7
5
  import {Fee} from "../../type/Fee.sol";
8
6
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
7
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
8
  import {UFixed} from "../../type/UFixed.sol";
12
9
 
13
10
  interface IComponents {
14
11
 
15
12
  struct ComponentInfo {
13
+ // slot 0
16
14
  string name; // component name (needs to be unique per instance)
17
- NftId productNftId;
18
- IERC20Metadata token;
15
+ // slot 1
19
16
  TokenHandler tokenHandler;
20
- address wallet;
17
+ // slot 2
21
18
  bytes data; // will hold component type specific additional info (eg encoded pool info)
22
19
  }
23
20
 
24
-
25
21
  struct ProductInfo {
26
- NftId distributionNftId;
27
- NftId poolNftId;
22
+ // slot 0
23
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
24
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
25
+ bool hasDistribution; // flag to indicate if distribution is enabled
26
+ uint8 expectedNumberOfOracles; // expected number of oracles
27
+ uint8 numberOfOracles; // actual number of oracles
28
+ NftId poolNftId; // mandatory
29
+ NftId distributionNftId; // 0..1 (optional)
30
+ // slot 1
31
+ NftId [] oracleNftId; // 0..n (optional)
32
+ }
33
+
34
+ struct FeeInfo {
35
+ // slot 0
28
36
  Fee productFee; // product fee on net premium
37
+ // slot 1
29
38
  Fee processingFee; // product fee on payout amounts
39
+ // slot 2
30
40
  Fee distributionFee; // distribution fee for sales that do not include commissions
41
+ // slot 3
31
42
  Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
43
+ // slot 4
32
44
  Fee poolFee; // pool fee on net premium
45
+ // slot 5
33
46
  Fee stakingFee; // pool fee on staked capital from investor
47
+ // slot 6
34
48
  Fee performanceFee; // pool fee on profits from capital investors
35
49
  }
36
50
 
37
-
38
51
  struct PoolInfo {
39
- NftId productNftId; // the nft of the product this pool is linked to
40
- RoleId bundleOwnerRole; // the required role for bundle owners
41
- // TODO maxCapitalAmount -> maxBalanceAmount
42
- Amount maxCapitalAmount; // max capital amount allowed for pool
43
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
44
- bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
45
- bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
52
+ // slot 0
53
+ Amount maxBalanceAmount; // max balance amount allowed for pool
46
54
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
55
+ // slot 1
47
56
  UFixed retentionLevel; // amount of collateral held in pool (default 100%)
48
- Fee poolFee; // pool fee on net premium
49
- Fee stakingFee; // pool fee on staked capital from investor
50
- Fee performanceFee; // pool fee on profits from capital investors
57
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
58
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
59
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
60
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
51
61
  }
52
62
  }
@@ -1,41 +1,53 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../type/Amount.sol";
5
4
  import {DistributorType} from "../../type/DistributorType.sol";
6
5
  import {NftId} from "../../type/NftId.sol";
6
+ import {Seconds} from "../../type/Seconds.sol";
7
7
  import {Timestamp} from "../../type/Timestamp.sol";
8
8
  import {UFixed} from "../../type/UFixed.sol";
9
9
 
10
10
  interface IDistribution {
11
11
 
12
12
  struct DistributorTypeInfo {
13
- string name;
13
+ // slot 0
14
14
  UFixed minDiscountPercentage;
15
+ NftId distributionNftId;
16
+ // slot 1
15
17
  UFixed maxDiscountPercentage;
16
- UFixed commissionPercentage;
17
18
  uint32 maxReferralCount;
18
- uint32 maxReferralLifetime;
19
+ Seconds maxReferralLifetime;
19
20
  bool allowSelfReferrals;
20
21
  bool allowRenewals;
22
+ // slot 2
23
+ UFixed commissionPercentage;
24
+ // slot 3
25
+ string name;
26
+ // slot 4
21
27
  bytes data;
22
28
  }
23
29
 
24
30
  struct DistributorInfo {
31
+ // slot 0
25
32
  DistributorType distributorType;
26
33
  bool active;
27
- bytes data;
28
- Amount commissionAmount;
29
34
  uint32 numPoliciesSold;
35
+ // slot 1
36
+ bytes data;
30
37
  }
31
38
 
32
- struct ReferralInfo {
39
+ struct ReferralInfo {
40
+ // slot 0
41
+ NftId distributionNftId;
33
42
  NftId distributorNftId;
34
- string referralCode;
35
- UFixed discountPercentage;
36
43
  uint32 maxReferrals;
37
44
  uint32 usedReferrals;
45
+ // slot 1
46
+ UFixed discountPercentage;
38
47
  Timestamp expiryAt;
48
+ // slot 2
49
+ string referralCode;
50
+ // slot 3
39
51
  bytes data;
40
52
  }
41
53
 
@@ -11,74 +11,95 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
+ // slot 0
15
16
  // premium splitting per target wallet
16
17
  Amount productFeeAmount;
17
18
  Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
18
20
  Amount poolPremiumAndFeeAmount;
19
21
 
20
22
  // detailed positions
21
23
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
24
+ Amount netPremiumAmount;
25
+ // slot 2
23
26
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
- uint256 fullPremiumAmount;
25
- // premium = fullPremium - discount
26
- uint256 premiumAmount;
27
- uint256 productFeeFixAmount;
28
- uint256 poolFeeFixAmount;
29
- uint256 bundleFeeFixAmount;
30
- uint256 distributionFeeFixAmount;
31
- uint256 productFeeVarAmount;
32
- uint256 poolFeeVarAmount;
33
- uint256 bundleFeeVarAmount;
34
- uint256 distributionFeeVarAmount;
35
- uint256 distributionOwnerFeeFixAmount;
27
+ Amount fullPremiumAmount;
28
+ // effective premium = fullPremium - discount
29
+ Amount premiumAmount;
30
+ // slot 3
31
+ Amount productFeeFixAmount;
32
+ Amount poolFeeFixAmount;
33
+ // slot 4
34
+ Amount bundleFeeFixAmount;
35
+ Amount distributionFeeFixAmount;
36
+ // slot 5
37
+ Amount productFeeVarAmount;
38
+ Amount poolFeeVarAmount;
39
+ // slot 6
40
+ Amount bundleFeeVarAmount;
41
+ Amount distributionFeeVarAmount;
42
+ // slot 7
43
+ Amount distributionOwnerFeeFixAmount;
36
44
  // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
- uint256 distributionOwnerFeeVarAmount;
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
38
47
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
48
+ Amount commissionAmount;
40
49
  // this is based on referral used
41
- uint256 discountAmount;
50
+ Amount discountAmount;
42
51
  }
43
52
 
44
53
  /// @dev policy data for the full policy lifecycle
45
54
  struct PolicyInfo {
55
+ // slot 0
46
56
  NftId productNftId;
47
57
  NftId bundleNftId;
48
- ReferralId referralId;
49
58
  RiskId riskId;
59
+ // slot 1
50
60
  Amount sumInsuredAmount;
51
61
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
- Seconds lifetime;
54
- // policy application data, no changes after applying for a policy
55
- bytes applicationData;
56
- bytes processData;
62
+ ReferralId referralId;
63
+ // slot 2
57
64
  uint16 claimsCount;
58
65
  uint16 openClaimsCount;
59
66
  Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
67
  Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
61
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
62
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
64
77
  }
65
78
 
66
79
  // claimId neeeds to be encoded policyNftId:claimId combination
67
80
  struct ClaimInfo {
81
+ // slot 0
68
82
  Amount claimAmount;
69
83
  Amount paidAmount;
70
- uint8 payoutsCount;
71
- uint8 openPayoutsCount;
72
- bytes submissionData; // claim submission data, no changes after submitting the claim
73
- bytes processData; // data that may include information supporting confirm or decline
74
84
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
85
+ uint24 payoutsCount;
86
+ // slot 1
87
+ uint24 openPayoutsCount;
88
+ // slot 2
89
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
90
+ // slot 3
91
+ bytes processData; // use case specific data that may include information supporting confirm or decline
75
92
  }
76
93
 
77
94
  // claimId neeeds to be encoded policyNftId:claimId combination
78
95
  struct PayoutInfo {
96
+ // slot 0
79
97
  ClaimId claimId;
80
98
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
99
+ Timestamp paidAt; // timestamp for actual payout
100
+ // slot 1
101
+ address beneficiary; // for address(0) beneficiary is policy nft owner
102
+ // slot 2
103
+ bytes data; // use case specific supporting data
83
104
  }
84
105
  }
@@ -2,10 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
6
  contract Dip is ERC20 {
7
7
 
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../contracts/authorization/IAuthorization.sol";
5
+ import {NftId} from "../../contracts/type/NftId.sol";
6
+ import {Oracle} from "../../contracts/oracle/Oracle.sol";
7
+ import {RequestId} from "../../contracts/type/RequestId.sol";
8
+
9
+ contract BasicOracle is
10
+ Oracle
11
+ {
12
+
13
+ /// Function to provide reponse data releated to request id.
14
+ function respond(
15
+ RequestId requestId,
16
+ bytes memory responseData
17
+ )
18
+ external
19
+ virtual
20
+ restricted()
21
+ {
22
+ _respond(requestId, responseData);
23
+ }
24
+
25
+ function _initializeBasicOracle(
26
+ address registry,
27
+ NftId instanceNftId,
28
+ IAuthorization authorization,
29
+ address initialOwner,
30
+ string memory name
31
+ )
32
+ internal
33
+ virtual
34
+ onlyInitializing()
35
+ {
36
+
37
+ _initializeOracle(
38
+ registry,
39
+ instanceNftId,
40
+ authorization,
41
+ initialOwner,
42
+ name,
43
+ "");
44
+ }
45
+ }
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicOracle} from "./BasicOracle.sol";
6
+ import {ORACLE} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IOracle} from "./IOracle.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicOracleAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory componentName)
18
+ Authorization(componentName, ORACLE(), true, false)
19
+ {}
20
+
21
+ function _setupTargetAuthorizations()
22
+ internal
23
+ virtual override
24
+ {
25
+ IAccess.FunctionInfo[] storage functions;
26
+
27
+ // authorize public role (open access to any account, only allows to lock target)
28
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
+ _authorize(functions, IOracle.request.selector, "request");
30
+ _authorize(functions, IOracle.cancel.selector, "cancel");
31
+
32
+ // authorize public role (open access to any account, only allows to lock target)
33
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
34
+ _authorize(functions, BasicOracle.respond.selector, "respond");
35
+ }
36
+ }
37
+
@@ -2,19 +2,40 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
5
6
  import {Timestamp} from "../type/Timestamp.sol";
6
7
 
7
8
 
8
9
  interface IOracle {
9
10
 
10
11
  struct RequestInfo {
12
+ // slot 0
11
13
  NftId requesterNftId; // originator of the request
12
- string callbackMethodName; // callback function of the requestor to call to provide response data
13
14
  NftId oracleNftId; // responsible oracle component
14
- bytes requestData;
15
- bytes responseData;
15
+ bool isCancelled;
16
16
  Timestamp respondedAt; // response timestamp
17
+ // slot 1
17
18
  Timestamp expiredAt; // expiry timestamp
18
- bool isCancelled;
19
+ // slot 2
20
+ string callbackMethodName; // callback function of the requestor to call to provide response data
21
+ // slot 3
22
+ bytes requestData;
23
+ // slot 4
24
+ bytes responseData;
19
25
  }
26
+
27
+
28
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
29
+ function request(
30
+ RequestId requestId,
31
+ NftId requesterId,
32
+ bytes calldata requestData,
33
+ Timestamp expiryAt
34
+ ) external;
35
+
36
+
37
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
38
+ function cancel(
39
+ RequestId requestId
40
+ ) external;
20
41
  }
@@ -11,7 +11,8 @@ import {UFixed} from "../type/UFixed.sol";
11
11
  import {Timestamp} from "../type/Timestamp.sol";
12
12
 
13
13
  interface IOracleComponent is IInstanceLinkedComponent {
14
-
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
15
16
  /// @dev callback method for requesting some data from the oracle
16
17
  function request(
17
18
  RequestId requestId,
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
6
7
  import {RequestId} from "../type/RequestId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
  import {Timestamp} from "../type/Timestamp.sol";
@@ -17,7 +18,7 @@ interface IOracleService is IService {
17
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
19
 
19
20
  // create request
20
- error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
@@ -1,18 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
- import {IOracleService} from "./IOracleService.sol";
6
- import {NftId, NftIdLib} from "../type/NftId.sol";
7
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
9
  import {IOracleComponent} from "./IOracleComponent.sol";
10
- import {IRegistry} from "../registry/IRegistry.sol";
11
- import {InstanceReader} from "../instance/InstanceReader.sol";
10
+ import {IOracleService} from "./IOracleService.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
12
13
  import {RequestId} from "../type/RequestId.sol";
13
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
14
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
15
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
16
15
 
17
16
 
18
17
  abstract contract Oracle is
@@ -28,38 +27,32 @@ abstract contract Oracle is
28
27
  }
29
28
 
30
29
 
31
- function initializeOracle(
32
- address registry,
33
- NftId instanceNftId,
34
- address initialOwner,
35
- string memory name,
36
- address token,
37
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
38
- bytes memory componentData // component specifidc data
30
+ function request(
31
+ RequestId requestId,
32
+ NftId requesterId,
33
+ bytes calldata requestData,
34
+ Timestamp expiryAt
39
35
  )
40
- public
36
+ external
41
37
  virtual
42
- onlyInitializing()
38
+ restricted()
43
39
  {
44
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, ORACLE(), true, initialOwner, registryData, componentData);
45
-
46
- OracleStorage storage $ = _getOracleStorage();
47
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
48
- $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
49
-
50
- registerInterface(type(IOracleComponent).interfaceId);
40
+ _request(requestId, requesterId, requestData, expiryAt);
51
41
  }
52
42
 
53
43
 
54
- function register()
44
+ function cancel(
45
+ RequestId requestId
46
+ )
55
47
  external
56
48
  virtual
57
- onlyOwner()
49
+ restricted()
58
50
  {
59
- _getOracleStorage()._componentService.registerOracle();
51
+ _cancel(requestId);
60
52
  }
61
53
 
62
54
 
55
+ /// @dev Not relevant for oracle components, always returns false.
63
56
  function isVerifying()
64
57
  external
65
58
  virtual
@@ -69,36 +62,52 @@ abstract contract Oracle is
69
62
  return false;
70
63
  }
71
64
 
72
-
73
- function request(
74
- RequestId requestId,
75
- NftId requesterId,
76
- bytes calldata requestData,
77
- Timestamp expiryAt
78
- )
65
+ /// @dev Not relevant for oracle components
66
+ function withdrawFees(Amount amount)
79
67
  external
80
68
  virtual
81
- // restricted() // TODO enable: only oracle service
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
+ onlyOwner()
71
+ restricted()
72
+ returns (Amount)
82
73
  {
83
- _request(requestId, requesterId, requestData, expiryAt);
74
+ revert ErrorOracleNotImplemented("withdrawFees");
84
75
  }
85
76
 
86
77
 
87
- function cancel(
88
- RequestId requestId
78
+ function _initializeOracle(
79
+ address registry,
80
+ NftId productNftId,
81
+ IAuthorization authorization,
82
+ address initialOwner,
83
+ string memory name,
84
+ bytes memory componentData // component specifidc data
89
85
  )
90
- external
86
+ internal
91
87
  virtual
92
- // restricted() // TODO enable: only oracle service
88
+ onlyInitializing()
93
89
  {
94
- _cancel(requestId);
90
+ _initializeInstanceLinkedComponent(
91
+ registry,
92
+ productNftId,
93
+ name,
94
+ ORACLE(),
95
+ authorization,
96
+ true,
97
+ initialOwner,
98
+ componentData);
99
+
100
+ OracleStorage storage $ = _getOracleStorage();
101
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
102
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
103
+
104
+ _registerInterface(type(IOracleComponent).interfaceId);
95
105
  }
96
106
 
97
107
 
98
- /// @dev internal function for handling requests.
99
- /// empty implementation.
100
- /// overwrite this function to implement use case specific handling
101
- /// for oracle calls.
108
+ /// @dev Internal function for handling requests.
109
+ /// Empty implementation.
110
+ /// Overwrite this function to implement use case specific handling for oracle calls.
102
111
  function _request(
103
112
  RequestId requestId,
104
113
  NftId requesterId,
@@ -111,9 +120,9 @@ abstract contract Oracle is
111
120
  }
112
121
 
113
122
 
114
- /// @dev internal function for cancelling requests.
115
- /// empty implementation.
116
- /// overwrite this function to implement use case specific cancelling
123
+ /// @dev Internal function for cancelling requests.
124
+ /// Empty implementation.
125
+ /// Overwrite this function to implement use case specific cancelling.
117
126
  function _cancel(
118
127
  RequestId requestId
119
128
  )
@@ -123,9 +132,9 @@ abstract contract Oracle is
123
132
  }
124
133
 
125
134
 
126
- /// @dev internal function for handling oracle responses.
127
- /// use this function in use case specific external/public functions
128
- /// to handle use case specific response handling.
135
+ /// @dev Internal function for handling oracle responses.
136
+ /// Default implementation sends response back to oracle service.
137
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
129
138
  function _respond(
130
139
  RequestId requestId,
131
140
  bytes memory responseData