@etherisc/gif-next 0.0.2-bb3faee-097 → 0.0.2-bb9ecaf-723

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. package/README.md +15 -320
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +49 -29
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +201 -130
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +845 -126
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +73 -46
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +105 -77
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +12 -2
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +12 -2
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +38 -32
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +8 -18
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +93 -54
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -10
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +2 -2
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +79 -59
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -10
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +20 -30
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -54
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +64 -74
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +93 -54
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +21 -31
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +93 -54
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +16 -26
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -34
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -54
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -35
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +93 -54
  61. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  62. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +50 -228
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +23 -0
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +20 -0
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +70 -35
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +335 -284
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +82 -112
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +55 -175
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +40 -20
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +45 -25
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1362 -2115
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +6 -16
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +87 -48
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -10
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -10
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +54 -34
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -10
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -54
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +66 -46
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -10
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -10
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -47
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -28
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -10
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +93 -54
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -74
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +71 -51
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -10
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
  160. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  162. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +64 -44
  164. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  166. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -35
  168. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  169. package/artifacts/contracts/product/Product.sol/Product.json +0 -10
  170. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  172. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -26
  174. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +312 -217
  183. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +126 -63
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -21
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +330 -211
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -86
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +62 -40
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  198. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Component.sol/Component.json +0 -10
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +28 -28
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -45
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -10
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -10
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -10
  223. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  236. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  238. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -10
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  243. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -48
  245. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -38
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +44 -24
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -166
  257. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  258. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  260. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +21 -2
  265. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  288. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -6
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  292. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  293. package/contracts/authorization/AccessAdmin.sol +220 -321
  294. package/contracts/authorization/AccessAdminLib.sol +309 -27
  295. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  296. package/contracts/authorization/Authorization.sol +30 -9
  297. package/contracts/authorization/IAccess.sol +13 -14
  298. package/contracts/authorization/IAccessAdmin.sol +9 -11
  299. package/contracts/authorization/ServiceAuthorization.sol +10 -30
  300. package/contracts/distribution/BasicDistribution.sol +1 -2
  301. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  302. package/contracts/distribution/Distribution.sol +2 -4
  303. package/contracts/instance/BaseStore.sol +93 -0
  304. package/contracts/instance/IBaseStore.sol +37 -0
  305. package/contracts/instance/IInstance.sol +11 -0
  306. package/contracts/instance/IInstanceService.sol +2 -0
  307. package/contracts/instance/Instance.sol +18 -14
  308. package/contracts/instance/InstanceAdmin.sol +43 -119
  309. package/contracts/instance/InstanceAuthorizationV3.sol +49 -40
  310. package/contracts/instance/InstanceReader.sol +33 -59
  311. package/contracts/instance/InstanceService.sol +57 -43
  312. package/contracts/instance/InstanceStore.sol +153 -128
  313. package/contracts/instance/ProductStore.sol +290 -0
  314. package/contracts/instance/TargetNames.sol +10 -0
  315. package/contracts/instance/module/IComponents.sol +0 -2
  316. package/contracts/oracle/BasicOracle.sol +1 -2
  317. package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
  318. package/contracts/oracle/Oracle.sol +2 -4
  319. package/contracts/pool/BasicPool.sol +1 -2
  320. package/contracts/pool/BasicPoolAuthorization.sol +1 -1
  321. package/contracts/pool/Pool.sol +2 -4
  322. package/contracts/product/ApplicationService.sol +2 -2
  323. package/contracts/product/BasicProduct.sol +1 -2
  324. package/contracts/product/BasicProductAuthorization.sol +1 -1
  325. package/contracts/product/ClaimService.sol +49 -53
  326. package/contracts/product/PolicyService.sol +9 -9
  327. package/contracts/product/Product.sol +2 -4
  328. package/contracts/product/RiskService.sol +3 -4
  329. package/contracts/registry/RegistryAdmin.sol +12 -30
  330. package/contracts/registry/RegistryAuthorization.sol +32 -31
  331. package/contracts/registry/ReleaseAdmin.sol +13 -9
  332. package/contracts/shared/Component.sol +2 -6
  333. package/contracts/shared/ComponentService.sol +22 -18
  334. package/contracts/shared/InstanceLinkedComponent.sol +2 -4
  335. package/contracts/staking/IStaking.sol +0 -1
  336. package/contracts/staking/Staking.sol +6 -6
  337. package/contracts/staking/StakingStore.sol +6 -0
  338. package/contracts/type/Blocknumber.sol +4 -9
  339. package/contracts/upgradeability/ProxyManager.sol +2 -2
  340. package/package.json +1 -1
  341. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  342. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  343. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  344. package/contracts/shared/IKeyValueStore.sol +0 -54
  345. package/contracts/shared/KeyValueStore.sol +0 -131
@@ -3,41 +3,62 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
+ import {IBundle} from "./module/IBundle.sol";
7
+ import {IComponents} from "./module/IComponents.sol";
8
+ import {IDistribution} from "./module/IDistribution.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IOracle} from "../oracle/IOracle.sol";
11
+
6
12
  import {Amount} from "../type/Amount.sol";
13
+ import {BaseStore} from "./BaseStore.sol";
14
+ import {Blocknumber} from "../type/Blocknumber.sol";
7
15
  import {Key32} from "../type/Key32.sol";
8
16
  import {NftId} from "../type/NftId.sol";
9
17
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
18
+ import {ObjectType, BUNDLE, POOL, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
11
19
  import {RequestId} from "../type/RequestId.sol";
12
- import {RiskId} from "../type/RiskId.sol";
13
- import {StateId, KEEP_STATE} from "../type/StateId.sol";
20
+ import {StateId} from "../type/StateId.sol";
14
21
  import {ReferralId} from "../type/Referral.sol";
15
22
  import {DistributorType} from "../type/DistributorType.sol";
16
23
  import {PayoutId} from "../type/PayoutId.sol";
17
-
18
24
  import {BalanceStore} from "./base/BalanceStore.sol";
19
- import {IInstance} from "./IInstance.sol";
20
- import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
25
  import {ObjectCounter} from "./base/ObjectCounter.sol";
22
-
23
- import {IBundle} from "./module/IBundle.sol";
24
- import {IComponents} from "./module/IComponents.sol";
25
- import {IDistribution} from "./module/IDistribution.sol";
26
- import {IPolicy} from "./module/IPolicy.sol";
27
- import {IOracle} from "../oracle/IOracle.sol";
28
- import {IRisk} from "./module/IRisk.sol";
29
-
30
26
  import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
31
27
 
32
28
 
33
29
  contract InstanceStore is
34
30
  AccessManagedUpgradeable,
35
31
  BalanceStore,
36
- KeyValueStore,
37
32
  ObjectCounter,
38
- ObjectLifecycle
33
+ ObjectLifecycle,
34
+ BaseStore
39
35
  {
40
36
 
37
+ event LogProductStoreComponentInfoCreated(NftId componentNftId, StateId state, address createdby, address txOrigin);
38
+ event LogProductStoreComponentInfoUpdated(NftId componentNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
39
+ event LogProductStorePoolInfoCreated(NftId poolNftId, StateId state, address createdBy, address txOrigin);
40
+ event LogProductStorePoolInfoUpdated(NftId poolNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
41
+ event LogProductStoreDistributorTypeInfoCreated(DistributorType distributorType, StateId state, address createdBy, address txOrigin);
42
+ event LogProductStoreDistributorTypeInfoUpdated(DistributorType distributorType, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
43
+ event LogProductStoreDistributorInfoCreated(NftId distributorNftId, StateId state, address createdBy, address txOrigin);
44
+ event LogProductStoreDistributorInfoUpdated(NftId distributorNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
45
+ event LogProductStoreReferralInfoCreated(ReferralId referralId, StateId state, address createdBy, address txOrigin);
46
+ event LogProductStoreReferralInfoUpdated(ReferralId referralId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
47
+ event LogProductStoreBundleInfoCreated(NftId bundleNftId, StateId state, address createdBy, address txOrigin);
48
+ event LogProductStoreBundleInfoUpdated(NftId bundleNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
49
+ event LogProductStoreRequestInfoCreated(RequestId requestId, StateId state, address createdBy, address txOrigin);
50
+ event LogProductStoreRequestInfoUpdated(RequestId requestId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
51
+
52
+
53
+ mapping(Key32 => IComponents.ComponentInfo) private _components;
54
+ mapping(Key32 => IComponents.PoolInfo) private _pools;
55
+ mapping(Key32 => IDistribution.DistributorTypeInfo) private _distributorTypes;
56
+ mapping(Key32 => IDistribution.DistributorInfo) private _distributors;
57
+ mapping(Key32 => IDistribution.ReferralInfo) private _referrals;
58
+ mapping(Key32 => IBundle.BundleInfo) private _bundles;
59
+ mapping(Key32 => IOracle.RequestInfo) private _requests;
60
+
61
+
41
62
  /// @dev This initializer needs to be called from the instance itself.
42
63
  function initialize()
43
64
  public
@@ -61,7 +82,12 @@ contract InstanceStore is
61
82
  restricted()
62
83
  {
63
84
  _registerBalanceTarget(componentNftId);
64
- _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
85
+ // _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
86
+ Key32 key = _toNftKey32(componentNftId, COMPONENT());
87
+ _createMetadata(key);
88
+ _components[key] = componentInfo;
89
+ // solhint-disable-next-line avoid-tx-origin
90
+ emit LogProductStoreComponentInfoCreated(componentNftId, getState(key), msg.sender, tx.origin);
65
91
  }
66
92
 
67
93
  function updateComponent(
@@ -72,28 +98,16 @@ contract InstanceStore is
72
98
  external
73
99
  restricted()
74
100
  {
75
- _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
76
- }
77
-
78
- //--- Product -----------------------------------------------------------//
79
-
80
- function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
81
- _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
101
+ // _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
102
+ Key32 key = _toNftKey32(componentNftId, COMPONENT());
103
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
104
+ _components[key] = componentInfo;
105
+ // solhint-disable-next-line avoid-tx-origin
106
+ emit LogProductStoreComponentInfoUpdated(componentNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
82
107
  }
83
108
 
84
- function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
85
- _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
- }
87
-
88
-
89
- //--- Fee -----------------------------------------------------------//
90
- function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
91
- _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
92
- }
93
-
94
- // Fee only has one state, so no change change possible
95
- function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
96
- _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
109
+ function getComponentInfo(NftId componentNftId) external view returns (IComponents.ComponentInfo memory componentInfo) {
110
+ return _components[_toNftKey32(componentNftId, COMPONENT())];
97
111
  }
98
112
 
99
113
  //--- Pool --------------------------------------------------------------//
@@ -105,156 +119,167 @@ contract InstanceStore is
105
119
  external
106
120
  restricted()
107
121
  {
108
- _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
122
+ Key32 key = _toNftKey32(poolNftId, POOL());
123
+ _createMetadata(key);
124
+ _pools[key] = info;
125
+ // solhint-disable-next-line avoid-tx-origin
126
+ emit LogProductStorePoolInfoCreated(poolNftId, getState(key), msg.sender, tx.origin);
109
127
  }
110
128
 
111
129
  function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
112
- _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
130
+ Key32 key = _toNftKey32(poolNftId, POOL());
131
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
132
+ _pools[key] = info;
133
+ // solhint-disable-next-line avoid-tx-origin
134
+ emit LogProductStorePoolInfoUpdated(poolNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
135
+ }
136
+
137
+ function getPoolInfo(NftId poolNftId) external view returns (IComponents.PoolInfo memory info) {
138
+ return _pools[_toNftKey32(poolNftId, POOL())];
113
139
  }
114
140
 
115
141
  //--- DistributorType ---------------------------------------------------//
116
142
  function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
117
- _create(distributorType.toKey32(), abi.encode(info));
143
+ Key32 key = distributorType.toKey32();
144
+ _createMetadata(key);
145
+ _distributorTypes[key] = info;
146
+ // solhint-disable-next-line avoid-tx-origin
147
+ emit LogProductStoreDistributorTypeInfoCreated(distributorType, getState(key), msg.sender, tx.origin);
118
148
  }
119
149
 
120
150
  function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
121
- _update(distributorType.toKey32(), abi.encode(info), newState);
151
+ Key32 key = distributorType.toKey32();
152
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
153
+ _distributorTypes[key] = info;
154
+ // solhint-disable-next-line avoid-tx-origin
155
+ emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
122
156
  }
123
157
 
124
158
  function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
125
- _updateState(distributorType.toKey32(), newState);
159
+ Key32 key = distributorType.toKey32();
160
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
161
+ // solhint-disable-next-line avoid-tx-origin
162
+ emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
163
+ }
164
+
165
+ function getDistributorTypeInfo(DistributorType distributorType) external view returns (IDistribution.DistributorTypeInfo memory info) {
166
+ return _distributorTypes[distributorType.toKey32()];
126
167
  }
127
168
 
128
169
  //--- Distributor -------------------------------------------------------//
129
170
  function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
130
171
  _registerBalanceTarget(distributorNftId);
131
- _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
172
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
173
+ _createMetadata(key);
174
+ _distributors[key] = info;
175
+ // solhint-disable-next-line avoid-tx-origin
176
+ emit LogProductStoreDistributorInfoCreated(distributorNftId, getState(key), msg.sender, tx.origin);
132
177
  }
133
178
 
134
179
  function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
135
- _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
180
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
181
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
182
+ _distributors[key] = info;
183
+ // solhint-disable-next-line avoid-tx-origin
184
+ emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
136
185
  }
137
186
 
138
187
  function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
139
- _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
188
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
189
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
190
+ // solhint-disable-next-line avoid-tx-origin
191
+ emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
192
+ }
193
+
194
+ function getDistributorInfo(NftId distributorNftId) external view returns (IDistribution.DistributorInfo memory info) {
195
+ return _distributors[_toNftKey32(distributorNftId, DISTRIBUTOR())];
140
196
  }
141
197
 
142
198
  //--- Referral ----------------------------------------------------------//
143
199
  function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
144
- _create(referralId.toKey32(), abi.encode(referralInfo));
200
+ Key32 key = referralId.toKey32();
201
+ _createMetadata(key);
202
+ _referrals[key] = referralInfo;
203
+ // solhint-disable-next-line avoid-tx-origin
204
+ emit LogProductStoreReferralInfoCreated(referralId, getState(key), msg.sender, tx.origin);
145
205
  }
146
206
 
147
207
  function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
148
- _update(referralId.toKey32(), abi.encode(referralInfo), newState);
208
+ Key32 key = referralId.toKey32();
209
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
210
+ _referrals[key] = referralInfo;
211
+ // solhint-disable-next-line avoid-tx-origin
212
+ emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
149
213
  }
150
214
 
151
215
  function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
152
- _updateState(referralId.toKey32(), newState);
216
+ Key32 key = referralId.toKey32();
217
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
218
+ // solhint-disable-next-line avoid-tx-origin
219
+ emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
220
+ }
221
+
222
+ function getReferralInfo(ReferralId referralId) external view returns (IDistribution.ReferralInfo memory referralInfo) {
223
+ return _referrals[referralId.toKey32()];
153
224
  }
154
225
 
155
226
  //--- Bundle ------------------------------------------------------------//
156
227
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
157
228
  _registerBalanceTarget(bundleNftId);
158
- _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
229
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
230
+ _createMetadata(key);
231
+ _bundles[key] = bundle;
232
+ // solhint-disable-next-line avoid-tx-origin
233
+ emit LogProductStoreBundleInfoCreated(bundleNftId, getState(key), msg.sender, tx.origin);
159
234
  }
160
235
 
161
236
  function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
162
- _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
237
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
238
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
239
+ _bundles[key] = bundle;
240
+ // solhint-disable-next-line avoid-tx-origin
241
+ emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
163
242
  }
164
243
 
165
244
  function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
166
- _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
167
- }
168
-
169
- //--- Risk --------------------------------------------------------------//
170
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
171
- _create(riskId.toKey32(), abi.encode(risk));
245
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
246
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
247
+ // solhint-disable-next-line avoid-tx-origin
248
+ emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
172
249
  }
173
250
 
174
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
175
- _update(riskId.toKey32(), abi.encode(risk), newState);
251
+ function getBundleInfo(NftId bundleNftId) external view returns (IBundle.BundleInfo memory bundle) {
252
+ return _bundles[_toNftKey32(bundleNftId, BUNDLE())];
176
253
  }
177
-
178
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
179
- _updateState(riskId.toKey32(), newState);
180
- }
181
-
182
- //--- Application (Policy) ----------------------------------------------//
183
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
184
- _registerBalanceTarget(applicationNftId);
185
- _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
186
- }
187
-
188
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
189
- _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
190
- }
191
-
192
- function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
193
- _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
194
- }
195
-
196
- //--- Policy ------------------------------------------------------------//
197
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
198
- _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
199
- }
200
-
201
- function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
202
- _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
203
- }
204
-
205
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
206
- _updateState(_toNftKey32(policyNftId, POLICY()), newState);
207
- }
208
-
209
254
 
210
- //--- Premium (Policy) ----------------------------------------------//
211
- function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
212
- _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
213
- }
214
-
215
- function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
216
- _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
217
- }
218
-
219
- //--- Claim -------------------------------------------------------------//
220
- function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
221
- _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
222
- }
223
-
224
- function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
225
- _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
226
- }
227
-
228
- function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
229
- _updateState(_toClaimKey32(policyNftId, claimId), newState);
230
- }
231
-
232
- //--- Payout ------------------------------------------------------------//
233
- function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
234
- _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
235
- }
236
-
237
- function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
238
- _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
239
- }
240
-
241
- function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
242
- _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
243
- }
244
-
245
255
  //--- Request -----------------------------------------------------------//
246
256
 
247
257
  function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
248
258
  requestId = _createNextRequestId();
249
- _create(requestId.toKey32(), abi.encode(request));
259
+ Key32 key = requestId.toKey32();
260
+ _createMetadata(key);
261
+ _requests[key] = request;
262
+ // solhint-disable-next-line avoid-tx-origin
263
+ emit LogProductStoreRequestInfoCreated(requestId, getState(key), msg.sender, tx.origin);
250
264
  }
251
265
 
252
266
  function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
253
- _update(requestId.toKey32(), abi.encode(request), newState);
267
+ Key32 key = requestId.toKey32();
268
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
269
+ _requests[key] = request;
270
+ // solhint-disable-next-line avoid-tx-origin
271
+ emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
254
272
  }
255
273
 
256
274
  function updateRequestState(RequestId requestId, StateId newState) external restricted() {
257
- _updateState(requestId.toKey32(), newState);
275
+ Key32 key = requestId.toKey32();
276
+ (Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
277
+ // solhint-disable-next-line avoid-tx-origin
278
+ emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
279
+ }
280
+
281
+ function getRequestInfo(RequestId requestId) external view returns (IOracle.RequestInfo memory request) {
282
+ return _requests[requestId.toKey32()];
258
283
  }
259
284
 
260
285
  //--- balance and fee management functions ------------------------------//