@etherisc/gif-next 3.0.0-beta.1 → 3.0.0-c2748c1-102

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 (405) hide show
  1. package/README.md +16 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -12
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -52
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +20 -20
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  46. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  47. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  48. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  49. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  50. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  51. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  64. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +17 -17
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +14 -14
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +18 -18
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +20 -20
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +20 -20
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +5 -5
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +119 -131
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  123. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  134. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
  154. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  166. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
  168. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  170. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
  172. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
  176. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  178. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
  181. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  182. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  183. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
  185. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  186. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  187. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
  189. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  190. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  191. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  192. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
  194. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  196. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
  198. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -37
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +113 -125
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +123 -135
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +106 -96
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +328 -56
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +272 -0
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  256. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
  267. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -48
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -14
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  316. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  330. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  336. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  340. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  346. package/contracts/accounting/AccountingService.sol +17 -29
  347. package/contracts/accounting/IAccountingService.sol +7 -8
  348. package/contracts/authorization/AccessAdmin.sol +6 -25
  349. package/contracts/authorization/AccessAdminLib.sol +20 -3
  350. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  351. package/contracts/distribution/DistributionService.sol +5 -3
  352. package/contracts/distribution/IDistributionService.sol +4 -3
  353. package/contracts/examples/flight/FlightLib.sol +337 -0
  354. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  355. package/contracts/examples/flight/FlightNft.sol +234 -0
  356. package/contracts/examples/flight/FlightOracle.sol +226 -0
  357. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  358. package/contracts/examples/flight/FlightPool.sol +89 -0
  359. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  360. package/contracts/examples/flight/FlightProduct.sol +687 -0
  361. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  362. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  363. package/contracts/examples/flight/FlightUSD.sol +28 -0
  364. package/contracts/examples/flight/originalV1.sol +396 -0
  365. package/contracts/instance/BaseStore.sol +4 -0
  366. package/contracts/instance/IBaseStore.sol +8 -0
  367. package/contracts/instance/IInstance.sol +1 -1
  368. package/contracts/instance/IInstanceService.sol +2 -0
  369. package/contracts/instance/Instance.sol +1 -1
  370. package/contracts/instance/InstanceAdmin.sol +0 -1
  371. package/contracts/instance/InstanceReader.sol +44 -8
  372. package/contracts/instance/InstanceService.sol +4 -0
  373. package/contracts/oracle/BasicOracle.sol +1 -0
  374. package/contracts/oracle/IOracleService.sol +12 -12
  375. package/contracts/oracle/Oracle.sol +2 -2
  376. package/contracts/pool/BundleService.sol +1 -1
  377. package/contracts/pool/IBundleService.sol +1 -1
  378. package/contracts/pool/IPoolService.sol +1 -1
  379. package/contracts/pool/PoolService.sol +1 -1
  380. package/contracts/product/BasicProductAuthorization.sol +3 -2
  381. package/contracts/product/IPolicyService.sol +1 -1
  382. package/contracts/product/PolicyService.sol +1 -1
  383. package/contracts/product/PolicyServiceLib.sol +5 -3
  384. package/contracts/registry/ChainNft.sol +1 -1
  385. package/contracts/registry/IRegistry.sol +1 -1
  386. package/contracts/registry/Registry.sol +5 -3
  387. package/contracts/registry/RegistryAdmin.sol +7 -1
  388. package/contracts/registry/ReleaseAdmin.sol +8 -1
  389. package/contracts/shared/ComponentService.sol +36 -2
  390. package/contracts/shared/EcdsaChecker.sol +5 -0
  391. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  392. package/contracts/shared/IComponentService.sol +24 -0
  393. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  394. package/contracts/shared/InstanceLinkedComponent.sol +60 -19
  395. package/contracts/staking/IStaking.sol +2 -0
  396. package/contracts/staking/IStakingService.sol +1 -1
  397. package/contracts/staking/Staking.sol +1 -0
  398. package/contracts/staking/StakingService.sol +1 -1
  399. package/contracts/type/ObjectType.sol +2 -31
  400. package/contracts/type/Referral.sol +6 -0
  401. package/contracts/type/RequestIdSet.sol +62 -0
  402. package/contracts/type/Seconds.sol +4 -0
  403. package/contracts/type/String.sol +30 -0
  404. package/contracts/type/Timestamp.sol +10 -1
  405. package/package.json +4 -3
@@ -34,6 +34,7 @@ import {RiskId} from "../type/RiskId.sol";
34
34
  import {RiskSet} from "./RiskSet.sol";
35
35
  import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
36
36
  import {StateId} from "../type/StateId.sol";
37
+ import {Str, StrLib} from "../type/String.sol";
37
38
  import {TokenHandler} from "../shared/TokenHandler.sol";
38
39
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
39
40
 
@@ -163,7 +164,9 @@ contract InstanceReader {
163
164
 
164
165
 
165
166
  /// @dev Returns the currently locked amount for the given NFT ID.
166
- /// The target NFT ID may reference a pool or a bundle.
167
+ /// Locked amounts are only tracked for bundles, not for pool. To get the
168
+ /// pool locked amount, then locked amounts of the bundles contained in the
169
+ /// pool must be summed up. The target NFT ID may only a bundle.
167
170
  function getLockedAmount(NftId targetNftId) external view returns (Amount) {
168
171
  return _store.getLockedAmount(targetNftId);
169
172
  }
@@ -177,8 +180,8 @@ contract InstanceReader {
177
180
 
178
181
 
179
182
  /// @dev Returns th product NFT ID for the given index.
180
- function getProductNftId(uint256 idx) public view returns (NftId productNftId) {
181
- return _instance.getProductNftId(idx);
183
+ function getProduct(uint256 idx) public view returns (NftId productNftId) {
184
+ return _instance.getProduct(idx);
182
185
  }
183
186
 
184
187
 
@@ -219,6 +222,12 @@ contract InstanceReader {
219
222
  }
220
223
 
221
224
 
225
+ /// @dev Returns true if the specified risk exists for the given product NFT ID.
226
+ function isProductRisk(NftId productNftId, RiskId riskId) public view returns (bool exists) {
227
+ return _riskSet.hasRisk(productNftId, riskId);
228
+ }
229
+
230
+
222
231
  /// @dev Returns the risk info for the given risk ID.
223
232
  function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
224
233
  return _productStore.getRiskInfo(riskId);
@@ -240,10 +249,21 @@ contract InstanceReader {
240
249
 
241
250
 
242
251
  /// @dev Returns the linked policy NFT ID for the given risk ID and index.
243
- function getPolicyNftIdForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
252
+ function getPolicyForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
244
253
  return _riskSet.getLinkedPolicyNftId(riskId, idx);
245
254
  }
246
255
 
256
+ /// @dev Returns the number of linked policies for the given bundle NFT ID.
257
+ function policiesForBundle(NftId bundleNftId) public view returns (uint256 linkedPolicies) {
258
+ return _bundleSet.activePolicies(bundleNftId);
259
+ }
260
+
261
+
262
+ /// @dev Returns the linked policy NFT ID for the given risk ID and index.
263
+ function getPolicyForBundle(NftId bundleNftId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
264
+ return _bundleSet.getActivePolicy(bundleNftId, idx);
265
+ }
266
+
247
267
 
248
268
  /// @dev Returns the info for the given policy NFT ID.
249
269
  function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
@@ -341,6 +361,11 @@ contract InstanceReader {
341
361
  return _store.getRequestInfo(requestId);
342
362
  }
343
363
 
364
+ /// @dev Returns the request info for the given oracle request ID.
365
+ function getRequestState(RequestId requestId) public view returns (StateId state) {
366
+ return getState(requestId.toKey32());
367
+ }
368
+
344
369
  //--- pool functions -----------------------------------------------------------//
345
370
 
346
371
  /// @dev Returns the pool info for the given pool NFT ID.
@@ -444,6 +469,12 @@ contract InstanceReader {
444
469
  }
445
470
 
446
471
 
472
+ /// @dev Returns the role ID for the given index.
473
+ function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
474
+ return _instanceAdmin.getRoleForName(name);
475
+ }
476
+
477
+
447
478
  /// @dev Returns the role ID for the instance owner role.
448
479
  /// This role may be used as a "root" admin role for other custom roles defined for this instance.
449
480
  function getInstanceOwnerRole() public pure returns (RoleId roleId) {
@@ -573,13 +604,18 @@ contract InstanceReader {
573
604
  }
574
605
 
575
606
 
576
- function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
577
- return UFixedLib.toUFixed(value, exp);
607
+ function toInt(UFixed value) public pure returns (uint256) {
608
+ return UFixedLib.toInt(value);
578
609
  }
579
610
 
580
611
 
581
- function toInt(UFixed value) public pure returns (uint256) {
582
- return UFixedLib.toInt(value);
612
+ function toString(Str str) public pure returns (string memory) {
613
+ return StrLib.toString(str);
614
+ }
615
+
616
+
617
+ function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
618
+ return UFixedLib.toUFixed(value, exp);
583
619
  }
584
620
 
585
621
  //--- internal functions ----------------------------------------------------//
@@ -372,6 +372,10 @@ contract InstanceService is
372
372
  IInstance masterInstance = IInstance(_masterInstance);
373
373
  IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
374
374
  masterInstanceNftId = info.nftId;
375
+
376
+ emit LogInstanceServiceMasterInstanceRegistered(
377
+ masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
378
+ _masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceStore, _masterProductStore);
375
379
  }
376
380
  }
377
381
 
@@ -22,6 +22,7 @@ contract BasicOracle is
22
22
  _respond(requestId, responseData);
23
23
  }
24
24
 
25
+
25
26
  function _initializeBasicOracle(
26
27
  address registry,
27
28
  NftId instanceNftId,
@@ -41,26 +41,26 @@ interface IOracleService is IService {
41
41
  string calldata callbackMethodName
42
42
  ) external returns (RequestId requestId);
43
43
 
44
- /// @dev respond to oracle request by oracle compnent.
45
- /// the response data is amende in the request info stored with the instance.
46
- /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
44
+ /// @dev Respond to oracle request by oracle compnent.
45
+ /// The response data is amended in the request info stored with the instance.
46
+ /// The request state changes to FULFILLED (when calling the callback method of the requester is successful)
47
47
  /// or to FAILED when calling the requester is not succesful.
48
- /// the function returns true iff the state changes to FULFILLED.
49
- /// permissioned: only the oracle component linked to the request id may call this method
48
+ /// The function returns true iff the state changes to FULFILLED.
49
+ /// Permissioned: only the receiving oracle component may call this method
50
50
  function respond(
51
51
  RequestId requestId,
52
52
  bytes calldata responseData
53
53
  ) external returns (bool success);
54
54
 
55
- /// @dev re send a failed response to the requester.
56
- /// only requests in state FAILED may be re sent.
57
- /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
58
- /// permissioned: only the requester may resend a request
55
+ /// @dev Resend a failed response to the requester.
56
+ /// Only requests in state FAILED may be resent.
57
+ /// The request state changes to FULFILLED when calling the callback method of the requester is successful.
58
+ /// Permissioned: only the receiving oracle may resend a request
59
59
  function resend(RequestId requestId) external;
60
60
 
61
- /// @dev notify the oracle component that the specified request has become invalid.
62
- /// only requests in state ACTIVE may be cancelled.
63
- /// permissioned: only the requester may cancel a request
61
+ /// @dev Notify the oracle component that the specified request has become invalid.
62
+ /// Only requests in state ACTIVE may be cancelled.
63
+ /// Permissioned: only the requester may cancel a request
64
64
  function cancel(RequestId requestId) external;
65
65
 
66
66
  }
@@ -140,10 +140,10 @@ abstract contract Oracle is
140
140
  internal
141
141
  virtual
142
142
  {
143
- _getOracleStorage()._oracleService.respond(
144
- requestId, responseData);
143
+ _getOracleStorage()._oracleService.respond(requestId, responseData);
145
144
  }
146
145
 
146
+
147
147
  function _getOracleStorage() private pure returns (OracleStorage storage $) {
148
148
  assembly {
149
149
  $.slot := ORACLE_STORAGE_LOCATION_V1
@@ -130,7 +130,7 @@ contract BundleService is
130
130
  BundleSet bundleManager = instance.getBundleSet();
131
131
  bundleManager.add(bundleNftId);
132
132
 
133
- emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
133
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime, bundleFee.fixedFee, bundleFee.fractionalFee);
134
134
  }
135
135
 
136
136
 
@@ -30,7 +30,7 @@ interface IBundleService is IService {
30
30
 
31
31
  error ErrorBundleServiceExtensionLifetimeIsZero();
32
32
 
33
- event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
33
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime, Amount fixedFee, UFixed fractionalFee);
34
34
  event LogBundleServiceBundleClosed(NftId bundleNftId);
35
35
  event LogBundleServiceBundleLocked(NftId bundleNftId);
36
36
  event LogBundleServiceBundleUnlocked(NftId bundleNftId);
@@ -19,7 +19,7 @@ interface IPoolService is IService {
19
19
  event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
20
20
 
21
21
  event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
- event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
22
+ event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount balanceAmount, Amount feeAmount);
23
23
 
24
24
  event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
25
25
  event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
@@ -98,7 +98,7 @@ contract PoolService is
98
98
  unstakedAmount + feeAmount,
99
99
  AmountLib.zero());
100
100
 
101
- emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
101
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, feeAmount);
102
102
 
103
103
  if ((unstakedAmount + feeAmount).gtz()){
104
104
  IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
@@ -7,7 +7,7 @@ import {IProductComponent} from "./IProductComponent.sol";
7
7
 
8
8
  import {Authorization} from "../authorization/Authorization.sol";
9
9
  import {BasicProduct} from "./BasicProduct.sol";
10
- import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
10
+ import {COMPONENT, ORACLE, PRODUCT, POLICY} from "../type/ObjectType.sol";
11
11
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
12
12
  import {TokenHandler} from "../shared/TokenHandler.sol";
13
13
 
@@ -30,7 +30,8 @@ contract BasicProductAuthorization
30
30
  virtual override
31
31
  {
32
32
  _authorizeServiceDomain(COMPONENT(), address(10));
33
- _authorizeServiceDomain(POLICY(), address(11));
33
+ _authorizeServiceDomain(ORACLE(), address(11));
34
+ _authorizeServiceDomain(POLICY(), address(12));
34
35
  }
35
36
 
36
37
  function _setupTokenHandlerAuthorizations() internal virtual override {
@@ -13,7 +13,7 @@ interface IPolicyService is IService {
13
13
 
14
14
  event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
15
  event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
- event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, NftId productNftId, Amount premiumAmount, Timestamp activateAt);
17
17
  event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
18
  event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
19
19
  event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
@@ -247,7 +247,7 @@ contract PolicyService is
247
247
  instance.getProductStore().updatePremiumState(policyNftId, PAID());
248
248
 
249
249
  // log premium collection before interactions with token
250
- emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
250
+ emit LogPolicyServicePolicyPremiumCollected(policyNftId, policyInfo.productNftId, premium.premiumAmount, activateAt);
251
251
 
252
252
  // interactions
253
253
  _transferPremiumAmounts(instanceReader, policyNftId, policyInfo.productNftId, premium);
@@ -95,13 +95,14 @@ library PolicyServiceLib {
95
95
  {
96
96
  if (policyState != COLLATERALIZED()) {
97
97
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
98
- }
99
- if (TimestampLib.current() < policyInfo.activatedAt) {
98
+ }
99
+
100
+ if (policyInfo.activatedAt.eqz() || TimestampLib.current() < policyInfo.activatedAt) {
100
101
  revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
101
102
  }
102
103
 
103
104
  // check expiredAt represents a valid expiry time
104
- if (newExpiredAt >= policyInfo.expiredAt) {
105
+ if (newExpiredAt > policyInfo.expiredAt) {
105
106
  revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
106
107
  }
107
108
 
@@ -110,6 +111,7 @@ library PolicyServiceLib {
110
111
  }
111
112
  }
112
113
 
114
+
113
115
  function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
114
116
  external
115
117
  view
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
11
11
  event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
@@ -20,7 +20,7 @@ interface IRegistry is
20
20
  {
21
21
 
22
22
  event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
23
+ event LogRegistryServiceRegistered(NftId nftId, VersionPart majorVersion, ObjectType domain);
24
24
  event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
25
 
26
26
  // initialize
@@ -2,7 +2,6 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
7
6
  import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
8
7
 
@@ -16,7 +15,6 @@ import {IRelease} from "./IRelease.sol";
16
15
  import {IRegisterable} from "../shared/IRegisterable.sol";
17
16
  import {IStaking} from "../staking/IStaking.sol";
18
17
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
19
- import {TokenRegistry} from "./TokenRegistry.sol";
20
18
  import {RegistryAdmin} from "./RegistryAdmin.sol";
21
19
 
22
20
  /// @dev IMPORTANT
@@ -231,7 +229,7 @@ contract Registry is
231
229
 
232
230
  _service[version][domain] = service;
233
231
 
234
- emit LogRegistryServiceRegistered(version, domain);
232
+ emit LogRegistryServiceRegistered(info.nftId,version, domain);
235
233
 
236
234
  nftId = _register(info);
237
235
  }
@@ -566,6 +564,8 @@ contract Registry is
566
564
  initialOwner: NFT_LOCK_ADDRESS,
567
565
  data: ""}),
568
566
  true);
567
+
568
+ emit LogRegistryObjectRegistered(protocolNftId, NftIdLib.zero(), PROTOCOL(), false, address(0), NFT_LOCK_ADDRESS);
569
569
  }
570
570
 
571
571
  /// @dev register this registry
@@ -671,6 +671,8 @@ contract Registry is
671
671
 
672
672
  // calls nft receiver
673
673
  CHAIN_NFT.mint(info.initialOwner, info.nftId.toInt());
674
+
675
+ emit LogRegistryObjectRegistered(info.nftId, info.parentNftId, info.objectType, info.isInterceptor, info.objectAddress, info.initialOwner);
674
676
  }
675
677
 
676
678
  function _setAddressForNftId(NftId nftId, address objectAddress)
@@ -85,7 +85,13 @@ contract RegistryAdmin is
85
85
  registry,
86
86
  release);
87
87
 
88
- _checkAuthorization(authorization, REGISTRY(), release, false, true);
88
+ AccessAdminLib.checkAuthorization(
89
+ address(_authorization),
90
+ authorization,
91
+ REGISTRY(),
92
+ release,
93
+ false, // expectServiceAuthorization
94
+ false); // checkAlreadyInitialized);
89
95
 
90
96
  _registry = registry;
91
97
  _authorization = IAuthorization(authorization);
@@ -72,7 +72,14 @@ contract ReleaseAdmin is
72
72
  release);
73
73
 
74
74
  IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
75
- _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
75
+ AccessAdminLib.checkAuthorization(
76
+ address(_authorization),
77
+ address(serviceAuthorization),
78
+ RELEASE(),
79
+ release,
80
+ true, // expectServiceAuthorization
81
+ true); // checkAlreadyInitialized);
82
+
76
83
  _serviceAuthorization = serviceAuthorization;
77
84
 
78
85
  // link nft ownability to registry
@@ -312,9 +312,27 @@ contract ComponentService is
312
312
  productNftId,
313
313
  initialProductInfo);
314
314
 
315
+ emit LogComponentServiceProductCreated(productNftId, productAddress, initialProductInfo.hasDistribution, initialProductInfo.expectedNumberOfOracles);
316
+
317
+ IComponents.FeeInfo memory initialFeeInfo = product.getInitialFeeInfo();
318
+
315
319
  productStore.createFee(
316
320
  productNftId,
317
- product.getInitialFeeInfo());
321
+ initialFeeInfo);
322
+
323
+ emit LogComponentServiceProductInitialProductFeesSet(
324
+ productNftId,
325
+ initialFeeInfo.productFee.fixedFee, initialFeeInfo.productFee.fractionalFee,
326
+ initialFeeInfo.processingFee.fixedFee, initialFeeInfo.processingFee.fractionalFee);
327
+ emit LogComponentServiceProductInitialDistributionFeesSet(
328
+ productNftId,
329
+ initialFeeInfo.distributionFee.fixedFee, initialFeeInfo.distributionFee.fractionalFee,
330
+ initialFeeInfo.minDistributionOwnerFee.fixedFee, initialFeeInfo.minDistributionOwnerFee.fractionalFee);
331
+ emit LogComponentServiceProductInitialPoolFeesSet(
332
+ productNftId,
333
+ initialFeeInfo.poolFee.fixedFee, initialFeeInfo.poolFee.fractionalFee,
334
+ initialFeeInfo.stakingFee.fixedFee, initialFeeInfo.stakingFee.fractionalFee,
335
+ initialFeeInfo.performanceFee.fixedFee, initialFeeInfo.performanceFee.fractionalFee);
318
336
  }
319
337
 
320
338
  //-------- distribution -------------------------------------------------//
@@ -341,6 +359,8 @@ contract ComponentService is
341
359
  // set distribution in product info
342
360
  productInfo.distributionNftId = distributionNftId;
343
361
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
362
+
363
+ emit LogComponentServiceDistributionCreated(distributionNftId, productNftId);
344
364
  }
345
365
 
346
366
 
@@ -400,6 +420,8 @@ contract ComponentService is
400
420
  productInfo.oracleNftId[productInfo.numberOfOracles] = oracleNftId;
401
421
  productInfo.numberOfOracles++;
402
422
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
423
+
424
+ emit LogComponentServiceOracleCreated(oracleNftId, productNftId);
403
425
  }
404
426
 
405
427
  //-------- pool ---------------------------------------------------------//
@@ -423,13 +445,20 @@ contract ComponentService is
423
445
 
424
446
  // create info
425
447
  IPoolComponent pool = IPoolComponent(componentAddress);
448
+ IComponents.PoolInfo memory initialPoolInfo = pool.getInitialPoolInfo();
426
449
  instanceStore.createPool(
427
450
  poolNftId,
428
- pool.getInitialPoolInfo());
451
+ initialPoolInfo);
429
452
 
430
453
  // update pool in product info
431
454
  productInfo.poolNftId = poolNftId;
432
455
  productStore.updateProduct(productNftId, productInfo, KEEP_STATE());
456
+
457
+ emit LogComponentServicePoolCreated(
458
+ poolNftId, productNftId, componentAddress,
459
+ initialPoolInfo.maxBalanceAmount, initialPoolInfo.collateralizationLevel,
460
+ initialPoolInfo.retentionLevel, initialPoolInfo.isExternallyManaged,
461
+ initialPoolInfo.isVerifyingApplications);
433
462
  }
434
463
 
435
464
 
@@ -543,6 +572,11 @@ contract ComponentService is
543
572
  address(component), // initially, component is its own wallet
544
573
  token,
545
574
  instanceAdmin.authority());
575
+
576
+ emit LogComponentServiceTokenHandlerDeployed(
577
+ componentNftId,
578
+ address(componentInfo.tokenHandler),
579
+ token);
546
580
 
547
581
  // register component with instance
548
582
  instanceStore.createComponent(
@@ -0,0 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
5
+ import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+
7
+ /// @dev component base class
8
+ /// component examples are product, distribution, pool and oracle
9
+ interface IAuthorizedComponent is
10
+ IComponent
11
+ {
12
+ /// @dev returns the initial component authorization specification.
13
+ function getAuthorization() external view returns (IAuthorization authorization);
14
+
15
+ }
@@ -46,6 +46,7 @@ interface IComponentService is
46
46
  error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
47
47
 
48
48
  event LogComponentServiceComponentLocked(address component, bool locked);
49
+ event LogComponentServiceTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
49
50
  event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
50
51
  event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
51
52
  event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
@@ -61,6 +62,29 @@ interface IComponentService is
61
62
  UFixed newFractionalFee,
62
63
  Amount newFixedFee
63
64
  );
65
+ event LogComponentServiceProductCreated(
66
+ NftId indexed productNftId, address indexed productAddress, bool indexed hasDistribution, uint8 expectedNumberOfOracles);
67
+ event LogComponentServiceProductInitialProductFeesSet(
68
+ NftId indexed productNftId,
69
+ Amount indexed productFeeFixed, UFixed indexed productFeeFractional,
70
+ Amount processingFeeFixed, UFixed processingFeeFractional);
71
+ event LogComponentServiceProductInitialDistributionFeesSet(
72
+ NftId indexed productNftId,
73
+ Amount indexed distributionFeeFixed, UFixed indexed distributionFeeFractional,
74
+ Amount minDistributionOwnerFeeFixed, UFixed minDistributionOwnerFeeFractional);
75
+ event LogComponentServiceProductInitialPoolFeesSet(
76
+ NftId indexed productNftId,
77
+ Amount indexed poolFeeFixed, UFixed indexed poolFeeFractional,
78
+ Amount stakingFeeFixed, UFixed stakingFeeFractional,
79
+ Amount performanceFeeFixed, UFixed performanceFeeFractional);
80
+ event LogComponentServicePoolCreated(
81
+ NftId indexed poolNftId, NftId indexed productNftId, address indexed componentAddress,
82
+ Amount maxBalanceAmount, UFixed collateralizationLevel, UFixed retentionLevel,
83
+ bool isExternallyManaged, bool isVerifyingApplications);
84
+ event LogComponentServiceDistributionCreated(
85
+ NftId indexed distributionNftId, NftId indexed productNftId);
86
+ event LogComponentServiceOracleCreated(
87
+ NftId indexed oracleNftId, NftId indexed productNftId);
64
88
 
65
89
  //-------- component ----------------------------------------------------//
66
90
 
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IInstance} from "../instance/IInstance.sol";
8
8
  import {NftId} from "../type/NftId.sol";
@@ -11,7 +11,7 @@ import {ObjectType} from "../type/ObjectType.sol";
11
11
  /// @dev component base class
12
12
  /// component examples are product, distribution, pool and oracle
13
13
  interface IInstanceLinkedComponent is
14
- IComponent
14
+ IAuthorizedComponent
15
15
  {
16
16
  error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
17
17
  error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
@@ -24,7 +24,4 @@ interface IInstanceLinkedComponent is
24
24
  /// @dev defines the instance to which this component is linked to
25
25
  function getInstance() external view returns (IInstance instance);
26
26
 
27
- /// @dev returns the initial component authorization specification.
28
- function getAuthorization() external view returns (IAuthorization authorization);
29
-
30
27
  }