@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff3a8a0-504

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 (592) hide show
  1. package/README.md +139 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +174 -601
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +788 -535
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +278 -128
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +178 -330
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +622 -178
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +59 -205
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +604 -92
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +532 -56
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +657 -257
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1772 -822
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +552 -193
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +210 -94
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1705 -1498
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +550 -400
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +272 -102
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +384 -86
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +233 -423
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +749 -377
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/Pool.sol/Pool.json +247 -629
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +954 -743
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +271 -113
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +370 -252
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +231 -89
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +491 -341
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +253 -115
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +454 -69
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +217 -75
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +380 -225
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +289 -66
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +507 -384
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +237 -123
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +261 -333
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +235 -109
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  186. package/artifacts/contracts/product/Product.sol/Product.json +428 -509
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +478 -61
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +280 -127
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +920 -125
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +332 -245
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +208 -92
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -125
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Component.sol/Component.json +128 -296
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1076 -156
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +129 -135
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -55
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2576 -128
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +705 -103
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +2914 -226
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +298 -74
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +754 -207
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +218 -84
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +92 -15
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +119 -58
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +167 -2
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +26 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +137 -175
  375. package/contracts/distribution/DistributionService.sol +314 -215
  376. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  377. package/contracts/distribution/IDistributionComponent.sol +23 -49
  378. package/contracts/distribution/IDistributionService.sol +61 -33
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BaseStore.sol +93 -0
  393. package/contracts/instance/BundleSet.sol +130 -0
  394. package/contracts/instance/IBaseStore.sol +37 -0
  395. package/contracts/instance/IInstance.sol +128 -49
  396. package/contracts/instance/IInstanceService.sol +83 -37
  397. package/contracts/instance/Instance.sol +254 -132
  398. package/contracts/instance/InstanceAdmin.sol +379 -0
  399. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  400. package/contracts/instance/InstanceReader.sol +489 -243
  401. package/contracts/instance/InstanceService.sol +418 -212
  402. package/contracts/instance/InstanceServiceManager.sol +14 -29
  403. package/contracts/instance/InstanceStore.sol +228 -104
  404. package/contracts/instance/ProductStore.sol +303 -0
  405. package/contracts/instance/RiskSet.sol +126 -0
  406. package/contracts/instance/TargetNames.sol +10 -0
  407. package/contracts/instance/base/BalanceStore.sol +121 -0
  408. package/contracts/instance/base/Cloneable.sol +2 -25
  409. package/contracts/instance/base/ObjectCounter.sol +20 -0
  410. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  411. package/contracts/instance/base/ObjectSet.sol +77 -0
  412. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  413. package/contracts/instance/module/IBundle.sol +6 -8
  414. package/contracts/instance/module/IComponents.sol +40 -19
  415. package/contracts/instance/module/IDistribution.sol +21 -9
  416. package/contracts/instance/module/IPolicy.sol +57 -30
  417. package/contracts/instance/module/IRisk.sol +5 -0
  418. package/contracts/mock/Dip.sol +26 -0
  419. package/contracts/oracle/BasicOracle.sol +45 -0
  420. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  421. package/contracts/oracle/IOracle.sol +41 -0
  422. package/contracts/oracle/IOracleComponent.sol +33 -0
  423. package/contracts/oracle/IOracleService.sol +66 -0
  424. package/contracts/oracle/Oracle.sol +154 -0
  425. package/contracts/oracle/OracleService.sol +310 -0
  426. package/contracts/oracle/OracleServiceManager.sol +39 -0
  427. package/contracts/pool/BasicPool.sol +162 -0
  428. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  429. package/contracts/pool/BundleService.sol +250 -246
  430. package/contracts/pool/BundleServiceManager.sol +13 -25
  431. package/contracts/pool/IBundleService.sol +47 -49
  432. package/contracts/pool/IPoolComponent.sol +23 -75
  433. package/contracts/pool/IPoolService.sol +112 -56
  434. package/contracts/pool/Pool.sol +200 -169
  435. package/contracts/pool/PoolLib.sol +341 -0
  436. package/contracts/pool/PoolService.sol +475 -264
  437. package/contracts/pool/PoolServiceManager.sol +12 -24
  438. package/contracts/product/ApplicationService.sol +223 -82
  439. package/contracts/product/ApplicationServiceManager.sol +12 -9
  440. package/contracts/product/BasicProduct.sol +49 -0
  441. package/contracts/product/BasicProductAuthorization.sol +63 -0
  442. package/contracts/product/ClaimService.sol +398 -214
  443. package/contracts/product/ClaimServiceManager.sol +12 -9
  444. package/contracts/product/IApplicationService.sol +30 -4
  445. package/contracts/product/IClaimService.sol +52 -9
  446. package/contracts/product/IPolicyService.sol +62 -40
  447. package/contracts/product/IPricingService.sol +14 -11
  448. package/contracts/product/IProductComponent.sol +31 -10
  449. package/contracts/product/IRiskService.sol +48 -0
  450. package/contracts/product/PolicyService.sol +505 -236
  451. package/contracts/product/PolicyServiceLib.sol +139 -0
  452. package/contracts/product/PolicyServiceManager.sol +12 -27
  453. package/contracts/product/PricingService.sol +133 -102
  454. package/contracts/product/PricingServiceManager.sol +12 -24
  455. package/contracts/product/Product.sol +267 -153
  456. package/contracts/product/RiskService.sol +189 -0
  457. package/contracts/product/RiskServiceManager.sol +39 -0
  458. package/contracts/registry/ChainNft.sol +72 -39
  459. package/contracts/registry/IRegistry.sol +100 -38
  460. package/contracts/registry/IRegistryService.sol +28 -35
  461. package/contracts/registry/IRelease.sol +29 -0
  462. package/contracts/registry/ITransferInterceptor.sol +1 -2
  463. package/contracts/registry/Registry.sol +453 -222
  464. package/contracts/registry/RegistryAdmin.sol +191 -0
  465. package/contracts/registry/RegistryAuthorization.sol +336 -0
  466. package/contracts/registry/RegistryService.sol +75 -138
  467. package/contracts/registry/RegistryServiceManager.sol +23 -30
  468. package/contracts/registry/ReleaseAdmin.sol +195 -0
  469. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  470. package/contracts/registry/ReleaseRegistry.sol +525 -0
  471. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  472. package/contracts/registry/TokenRegistry.sol +264 -63
  473. package/contracts/shared/Component.sol +126 -183
  474. package/contracts/shared/ComponentService.sol +640 -99
  475. package/contracts/shared/ComponentServiceManager.sol +38 -0
  476. package/contracts/shared/ContractLib.sol +312 -0
  477. package/contracts/shared/IComponent.sol +18 -50
  478. package/contracts/shared/IComponentService.sol +111 -0
  479. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  480. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  481. package/contracts/shared/INftOwnable.sol +5 -1
  482. package/contracts/shared/IPolicyHolder.sol +12 -17
  483. package/contracts/shared/IRegisterable.sol +22 -1
  484. package/contracts/shared/IService.sol +11 -6
  485. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  486. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  487. package/contracts/shared/Lifecycle.sol +88 -0
  488. package/contracts/shared/NftIdSet.sol +65 -0
  489. package/contracts/shared/NftOwnable.sol +35 -24
  490. package/contracts/shared/PolicyHolder.sol +19 -50
  491. package/contracts/shared/Registerable.sol +54 -23
  492. package/contracts/shared/RegistryLinked.sol +9 -14
  493. package/contracts/shared/Service.sol +36 -41
  494. package/contracts/shared/TokenHandler.sol +320 -13
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +358 -6
  497. package/contracts/staking/IStakingService.sol +98 -76
  498. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  499. package/contracts/staking/Staking.sol +761 -27
  500. package/contracts/staking/StakingLib.sol +195 -0
  501. package/contracts/staking/StakingManager.sol +27 -18
  502. package/contracts/staking/StakingReader.sol +171 -0
  503. package/contracts/staking/StakingService.sol +175 -58
  504. package/contracts/staking/StakingServiceManager.sol +13 -8
  505. package/contracts/staking/StakingStore.sol +1368 -0
  506. package/contracts/staking/TargetHandler.sol +132 -0
  507. package/contracts/staking/TargetManagerLib.sol +234 -0
  508. package/contracts/type/AddressSet.sol +1 -1
  509. package/contracts/type/Amount.sol +48 -3
  510. package/contracts/type/Blocknumber.sol +36 -13
  511. package/contracts/type/ChainId.sol +101 -0
  512. package/contracts/type/ClaimId.sol +6 -1
  513. package/contracts/type/Fee.sol +22 -21
  514. package/contracts/type/Key32.sol +2 -2
  515. package/contracts/type/Key32Set.sol +62 -0
  516. package/contracts/type/NftId.sol +21 -16
  517. package/contracts/type/NftIdSet.sol +1 -1
  518. package/contracts/type/ObjectType.sol +204 -63
  519. package/contracts/type/PayoutId.sol +10 -10
  520. package/contracts/type/Referral.sol +2 -1
  521. package/contracts/type/RequestId.sol +75 -0
  522. package/contracts/type/RiskId.sol +39 -7
  523. package/contracts/type/RoleId.sol +122 -74
  524. package/contracts/type/Seconds.sol +67 -1
  525. package/contracts/type/Selector.sol +107 -0
  526. package/contracts/type/StateId.sol +41 -2
  527. package/contracts/type/String.sol +65 -0
  528. package/contracts/type/Timestamp.sol +20 -9
  529. package/contracts/type/UFixed.sol +62 -125
  530. package/contracts/type/Version.sol +58 -7
  531. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  532. package/contracts/{shared → upgradeability}/ProxyManager.sol +115 -38
  533. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  534. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  535. package/package.json +12 -8
  536. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  540. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  542. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  548. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  550. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  552. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  555. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  556. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  557. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  558. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  560. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  561. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  562. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  563. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
  564. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  566. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  567. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  568. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  570. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  571. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  572. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  573. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  574. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  575. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  576. package/contracts/instance/BundleManager.sol +0 -126
  577. package/contracts/instance/InstanceAccessManager.sol +0 -543
  578. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  579. package/contracts/instance/base/IKeyValueStore.sol +0 -53
  580. package/contracts/instance/base/KeyValueStore.sol +0 -169
  581. package/contracts/instance/base/Lifecycle.sol +0 -121
  582. package/contracts/instance/base/ObjectManager.sol +0 -82
  583. package/contracts/instance/module/IAccess.sol +0 -54
  584. package/contracts/instance/module/ISetup.sol +0 -33
  585. package/contracts/instance/module/ITreasury.sol +0 -23
  586. package/contracts/product/IProductService.sol +0 -40
  587. package/contracts/product/ProductService.sol +0 -210
  588. package/contracts/product/ProductServiceManager.sol +0 -54
  589. package/contracts/registry/RegistryAccessManager.sol +0 -207
  590. package/contracts/registry/ReleaseManager.sol +0 -360
  591. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  592. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -1,45 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Instance} from "./Instance.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {InstanceService} from "./InstanceService.sol";
8
- import {Registry} from "../registry/Registry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
- import {REGISTRY} from "../type/ObjectType.sol";
11
7
 
12
8
  contract InstanceServiceManager is ProxyManager {
13
9
 
14
10
  InstanceService private _instanceService;
15
11
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
12
+ /// @dev initializes proxy manager with instance service implementation
17
13
  constructor(
18
- address registryAddress
19
- )
20
- ProxyManager(registryAddress)
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
21
18
  {
22
- InstanceService instSrv = new InstanceService();
23
- // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
- address(instSrv),
27
- data);
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
28
26
 
29
27
  _instanceService = InstanceService(address(versionable));
30
-
31
- // TODO `this` must have a role or own nft to register service
32
- //Registry registry = Registry(registryAddress);
33
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
34
- //RegistryService registryService = RegistryService(registryServiceAddress);
35
- //registryService.registerService(_instanceService);
36
- // RegistryService registryService = _instanceService.getRegistryService();
37
-
38
- // TODO no nft to link yet
39
- // link ownership of instance service manager ot nft owner of instance service
40
- //_linkToNftOwnable(
41
- // address(registryAddress),
42
- // address(_instanceService));
43
28
  }
44
29
 
45
30
  //--- view functions ----------------------------------------------------//
@@ -3,197 +3,321 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
- import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
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
+
12
+ import {Amount} from "../type/Amount.sol";
13
+ import {BaseStore} from "./BaseStore.sol";
14
+ import {Blocknumber} from "../type/Blocknumber.sol";
15
+ import {Key32} from "../type/Key32.sol";
7
16
  import {NftId} from "../type/NftId.sol";
8
17
  import {ClaimId} from "../type/ClaimId.sol";
9
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
10
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
11
- import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
12
- import {StateId, ACTIVE} from "../type/StateId.sol";
13
- import {TimestampLib} from "../type/Timestamp.sol";
14
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
+ import {ObjectType, BUNDLE, POOL, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
20
+ import {StateId} from "../type/StateId.sol";
15
21
  import {ReferralId} from "../type/Referral.sol";
16
22
  import {DistributorType} from "../type/DistributorType.sol";
17
23
  import {PayoutId} from "../type/PayoutId.sol";
18
-
19
- import {IInstance} from "./IInstance.sol";
20
- import {KeyValueStore} from "./base/KeyValueStore.sol";
21
- import {IKeyValueStore} from "./base/KeyValueStore.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 {IRisk} from "./module/IRisk.sol";
28
- import {ISetup} from "./module/ISetup.sol";
24
+ import {BalanceStore} from "./base/BalanceStore.sol";
25
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
26
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
29
27
 
30
28
 
31
- // TODO combine with instance reader?
32
- contract InstanceStore is AccessManagedUpgradeable, KeyValueStore
29
+ contract InstanceStore is
30
+ AccessManagedUpgradeable,
31
+ BalanceStore,
32
+ ObjectCounter,
33
+ ObjectLifecycle,
34
+ BaseStore
33
35
  {
34
- function initialize(address instance)
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
+
62
+ /// @dev This initializer needs to be called from the instance itself.
63
+ function initialize()
35
64
  public
36
65
  initializer()
37
66
  {
67
+ address instance = msg.sender;
38
68
  address authority = IInstance(instance).authority();
39
- __AccessManaged_init(authority);
40
- initializeLifecycle();
41
- }
42
69
 
43
- //--- ProductSetup ------------------------------------------------------//
44
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
45
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
46
- }
47
-
48
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
49
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
70
+ __AccessManaged_init(authority);
71
+ // double initialization, safe
72
+ _initializeLifecycle();
50
73
  }
51
74
 
52
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
53
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
54
- }
75
+ //--- Component ---------------------------------------------------------//
55
76
 
56
- //--- DistributionSetup ------------------------------------------------------//
57
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
58
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
77
+ function createComponent(
78
+ NftId componentNftId,
79
+ IComponents.ComponentInfo memory componentInfo
80
+ )
81
+ external
82
+ restricted()
83
+ {
84
+ _registerBalanceTarget(componentNftId);
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);
91
+ }
92
+
93
+ function updateComponent(
94
+ NftId componentNftId,
95
+ IComponents.ComponentInfo memory componentInfo,
96
+ StateId newState
97
+ )
98
+ external
99
+ restricted()
100
+ {
101
+ // _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
102
+ Key32 key = _toNftKey32(componentNftId, COMPONENT());
103
+ StateId oldState = getState(key);
104
+ Blocknumber updatedIn = _updateState(key, newState);
105
+ _components[key] = componentInfo;
106
+ // solhint-disable-next-line avoid-tx-origin
107
+ emit LogProductStoreComponentInfoUpdated(componentNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
59
108
  }
60
109
 
61
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
62
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
110
+ function getComponentInfo(NftId componentNftId) external view returns (IComponents.ComponentInfo memory componentInfo) {
111
+ return _components[_toNftKey32(componentNftId, COMPONENT())];
63
112
  }
64
113
 
65
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
66
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
67
- }
114
+ //--- Pool --------------------------------------------------------------//
68
115
 
69
- //--- PoolSetup ------------------------------------------------------//
70
- function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
71
- create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
116
+ function createPool(
117
+ NftId poolNftId,
118
+ IComponents.PoolInfo memory info
119
+ )
120
+ external
121
+ restricted()
122
+ {
123
+ Key32 key = _toNftKey32(poolNftId, POOL());
124
+ _createMetadata(key);
125
+ _pools[key] = info;
126
+ // solhint-disable-next-line avoid-tx-origin
127
+ emit LogProductStorePoolInfoCreated(poolNftId, getState(key), msg.sender, tx.origin);
72
128
  }
73
129
 
74
- function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
75
- update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
130
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
131
+ Key32 key = _toNftKey32(poolNftId, POOL());
132
+ StateId oldState = getState(key);
133
+ Blocknumber updatedIn = _updateState(key, newState);
134
+ _pools[key] = info;
135
+ // solhint-disable-next-line avoid-tx-origin
136
+ emit LogProductStorePoolInfoUpdated(poolNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
76
137
  }
77
138
 
78
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
79
- updateState(_toNftKey32(poolNftId, POOL()), newState);
139
+ function getPoolInfo(NftId poolNftId) external view returns (IComponents.PoolInfo memory info) {
140
+ return _pools[_toNftKey32(poolNftId, POOL())];
80
141
  }
81
142
 
82
- //--- DistributorType -------------------------------------------------------//
143
+ //--- DistributorType ---------------------------------------------------//
83
144
  function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
84
- create(distributorType.toKey32(), abi.encode(info));
145
+ Key32 key = distributorType.toKey32();
146
+ _createMetadata(key);
147
+ _distributorTypes[key] = info;
148
+ // solhint-disable-next-line avoid-tx-origin
149
+ emit LogProductStoreDistributorTypeInfoCreated(distributorType, getState(key), msg.sender, tx.origin);
85
150
  }
86
151
 
87
152
  function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
88
- update(distributorType.toKey32(), abi.encode(info), newState);
153
+ Key32 key = distributorType.toKey32();
154
+ StateId oldState = getState(key);
155
+ Blocknumber updatedIn = _updateState(key, newState);
156
+ _distributorTypes[key] = info;
157
+ // solhint-disable-next-line avoid-tx-origin
158
+ emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
89
159
  }
90
160
 
91
161
  function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
92
- updateState(distributorType.toKey32(), newState);
162
+ Key32 key = distributorType.toKey32();
163
+ StateId oldState = getState(key);
164
+ Blocknumber updatedIn = _updateState(key, newState);
165
+ // solhint-disable-next-line avoid-tx-origin
166
+ emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
167
+ }
168
+
169
+ function getDistributorTypeInfo(DistributorType distributorType) external view returns (IDistribution.DistributorTypeInfo memory info) {
170
+ return _distributorTypes[distributorType.toKey32()];
93
171
  }
94
172
 
95
173
  //--- Distributor -------------------------------------------------------//
96
174
  function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
97
- create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
175
+ _registerBalanceTarget(distributorNftId);
176
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
177
+ _createMetadata(key);
178
+ _distributors[key] = info;
179
+ // solhint-disable-next-line avoid-tx-origin
180
+ emit LogProductStoreDistributorInfoCreated(distributorNftId, getState(key), msg.sender, tx.origin);
98
181
  }
99
182
 
100
183
  function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
101
- update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
184
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
185
+ StateId oldState = getState(key);
186
+ Blocknumber updatedIn = _updateState(key, newState);
187
+ _distributors[key] = info;
188
+ // solhint-disable-next-line avoid-tx-origin
189
+ emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
102
190
  }
103
191
 
104
192
  function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
105
- updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
193
+ Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
194
+ StateId oldState = getState(key);
195
+ Blocknumber updatedIn = _updateState(key, newState);
196
+ // solhint-disable-next-line avoid-tx-origin
197
+ emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
198
+ }
199
+
200
+ function getDistributorInfo(NftId distributorNftId) external view returns (IDistribution.DistributorInfo memory info) {
201
+ return _distributors[_toNftKey32(distributorNftId, DISTRIBUTOR())];
106
202
  }
107
203
 
108
204
  //--- Referral ----------------------------------------------------------//
109
205
  function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
110
- create(referralId.toKey32(), abi.encode(referralInfo));
206
+ Key32 key = referralId.toKey32();
207
+ _createMetadata(key);
208
+ _referrals[key] = referralInfo;
209
+ // solhint-disable-next-line avoid-tx-origin
210
+ emit LogProductStoreReferralInfoCreated(referralId, getState(key), msg.sender, tx.origin);
111
211
  }
112
212
 
113
213
  function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
114
- update(referralId.toKey32(), abi.encode(referralInfo), newState);
214
+ Key32 key = referralId.toKey32();
215
+ StateId oldState = getState(key);
216
+ Blocknumber updatedIn = _updateState(key, newState);
217
+ _referrals[key] = referralInfo;
218
+ // solhint-disable-next-line avoid-tx-origin
219
+ emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
115
220
  }
116
221
 
117
222
  function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
118
- updateState(referralId.toKey32(), newState);
223
+ Key32 key = referralId.toKey32();
224
+ StateId oldState = getState(key);
225
+ Blocknumber updatedIn = _updateState(key, newState);
226
+ // solhint-disable-next-line avoid-tx-origin
227
+ emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
228
+ }
229
+
230
+ function getReferralInfo(ReferralId referralId) external view returns (IDistribution.ReferralInfo memory referralInfo) {
231
+ return _referrals[referralId.toKey32()];
119
232
  }
120
233
 
121
234
  //--- Bundle ------------------------------------------------------------//
122
235
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
123
- create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
236
+ _registerBalanceTarget(bundleNftId);
237
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
238
+ _createMetadata(key);
239
+ _bundles[key] = bundle;
240
+ // solhint-disable-next-line avoid-tx-origin
241
+ emit LogProductStoreBundleInfoCreated(bundleNftId, getState(key), msg.sender, tx.origin);
124
242
  }
125
243
 
126
244
  function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
127
- update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
245
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
246
+ StateId oldState = getState(key);
247
+ Blocknumber updatedIn = _updateState(key, newState);
248
+ _bundles[key] = bundle;
249
+ // solhint-disable-next-line avoid-tx-origin
250
+ emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
128
251
  }
129
252
 
130
253
  function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
131
- updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
132
- }
133
-
134
- //--- Risk --------------------------------------------------------------//
135
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
136
- create(riskId.toKey32(), abi.encode(risk));
137
- }
138
-
139
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
140
- update(riskId.toKey32(), abi.encode(risk), newState);
141
- }
142
-
143
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
144
- updateState(riskId.toKey32(), newState);
254
+ Key32 key = _toNftKey32(bundleNftId, BUNDLE());
255
+ StateId oldState = getState(key);
256
+ Blocknumber updatedIn = _updateState(key, newState);
257
+ // solhint-disable-next-line avoid-tx-origin
258
+ emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
145
259
  }
146
260
 
147
- //--- Application (Policy) ----------------------------------------------//
148
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
149
- create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
261
+ function getBundleInfo(NftId bundleNftId) external view returns (IBundle.BundleInfo memory bundle) {
262
+ return _bundles[_toNftKey32(bundleNftId, BUNDLE())];
150
263
  }
264
+
265
+ //--- Request -----------------------------------------------------------//
151
266
 
152
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
153
- update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
267
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
268
+ requestId = _createNextRequestId();
269
+ Key32 key = requestId.toKey32();
270
+ _createMetadata(key);
271
+ _requests[key] = request;
272
+ // solhint-disable-next-line avoid-tx-origin
273
+ emit LogProductStoreRequestInfoCreated(requestId, getState(key), msg.sender, tx.origin);
154
274
  }
155
275
 
156
- function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
157
- updateState(_toNftKey32(applicationNftId, POLICY()), newState);
276
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
277
+ Key32 key = requestId.toKey32();
278
+ StateId oldState = getState(key);
279
+ Blocknumber updatedIn = _updateState(key, newState);
280
+ _requests[key] = request;
281
+ // solhint-disable-next-line avoid-tx-origin
282
+ emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
158
283
  }
159
284
 
160
- //--- Policy ------------------------------------------------------------//
161
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
162
- update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
285
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
286
+ Key32 key = requestId.toKey32();
287
+ StateId oldState = getState(key);
288
+ Blocknumber updatedIn = _updateState(key, newState);
289
+ // solhint-disable-next-line avoid-tx-origin
290
+ emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
163
291
  }
164
292
 
165
- function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
166
- update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
293
+ function getRequestInfo(RequestId requestId) external view returns (IOracle.RequestInfo memory request) {
294
+ return _requests[requestId.toKey32()];
167
295
  }
168
296
 
169
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
170
- updateState(_toNftKey32(policyNftId, POLICY()), newState);
171
- }
297
+ //--- balance and fee management functions ------------------------------//
172
298
 
173
- //--- Claim -------------------------------------------------------------//
174
- function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
175
- create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
299
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
300
+ return _increaseBalance(targetNftId, amount);
176
301
  }
177
302
 
178
- function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
179
- update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
303
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
304
+ return _decreaseBalance(targetNftId, amount);
180
305
  }
181
306
 
182
- function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
183
- updateState(_toClaimKey32(policyNftId, claimId), newState);
307
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
308
+ return _increaseFees(targetNftId, amount);
184
309
  }
185
310
 
186
- //--- Payout ------------------------------------------------------------//
187
- function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
188
- create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
311
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
312
+ return _decreaseFees(targetNftId, amount);
189
313
  }
190
314
 
191
- function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
192
- update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
315
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
316
+ return _increaseLocked(targetNftId, amount);
193
317
  }
194
318
 
195
- function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
196
- updateState(_toPayoutKey32(policyNftId, payoutId), newState);
319
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
320
+ return _decreaseLocked(targetNftId, amount);
197
321
  }
198
322
 
199
323
  //--- internal view/pure functions --------------------------------------//