@etherisc/gif-next 0.0.2-b12de3e-067 → 0.0.2-b147315-239

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 (652) hide show
  1. package/README.md +19 -16
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -143
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +274 -1333
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +444 -171
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +330 -2934
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +630 -351
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +605 -464
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +353 -155
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  46. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  54. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  56. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  58. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  60. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  62. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  64. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  66. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  68. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  69. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +312 -278
  70. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  72. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  74. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  75. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  76. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  78. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  80. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  82. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  84. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  86. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  88. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  89. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +224 -248
  90. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  92. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +346 -290
  94. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  95. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +283 -233
  96. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  97. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  98. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  99. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +144 -112
  100. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  102. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  104. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  106. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  108. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  109. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  110. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  112. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  114. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  116. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +388 -127
  118. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +395 -219
  120. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +576 -182
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +477 -318
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
  132. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
  134. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1235 -0
  136. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  138. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  140. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  142. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  144. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  146. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  155. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +216 -198
  162. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  164. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  168. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  170. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  171. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +281 -103
  172. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  174. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  176. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +60 -34
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  186. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  187. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  190. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  192. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  193. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +75 -43
  200. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  206. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Service.sol/Service.json +201 -162
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  216. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  217. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  218. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  220. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  222. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  224. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  226. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  228. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
  230. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  232. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  234. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  236. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  238. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
  240. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  242. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  244. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  246. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  248. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  250. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  252. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  254. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  258. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  260. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  262. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  264. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  266. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  268. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  270. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  272. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  278. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  280. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  282. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  284. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  286. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  287. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  288. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  290. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  292. package/contracts/distribution/Distribution.sol +261 -0
  293. package/contracts/distribution/DistributionService.sol +297 -0
  294. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  295. package/contracts/distribution/IDistributionComponent.sol +66 -0
  296. package/contracts/distribution/IDistributionService.sol +81 -0
  297. package/contracts/instance/BundleManager.sol +22 -25
  298. package/contracts/instance/IInstance.sol +76 -49
  299. package/contracts/instance/IInstanceService.sol +81 -18
  300. package/contracts/instance/Instance.sol +181 -382
  301. package/contracts/instance/InstanceAdmin.sol +331 -0
  302. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  303. package/contracts/instance/InstanceReader.sol +160 -83
  304. package/contracts/instance/InstanceService.sol +349 -209
  305. package/contracts/instance/InstanceServiceManager.sol +12 -25
  306. package/contracts/instance/InstanceStore.sol +272 -0
  307. package/contracts/instance/base/BalanceStore.sol +123 -0
  308. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  309. package/contracts/instance/base/ObjectCounter.sol +21 -0
  310. package/contracts/instance/base/ObjectLifecycle.sol +96 -0
  311. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -37
  312. package/contracts/instance/module/IAccess.sol +29 -21
  313. package/contracts/instance/module/IBundle.sol +8 -8
  314. package/contracts/instance/module/IComponents.sol +52 -0
  315. package/contracts/instance/module/IDistribution.sol +7 -4
  316. package/contracts/instance/module/IPolicy.sol +56 -17
  317. package/contracts/instance/module/IRisk.sol +1 -1
  318. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  319. package/contracts/oracle/IOracle.sol +20 -0
  320. package/contracts/oracle/IOracleComponent.sol +32 -0
  321. package/contracts/oracle/IOracleService.sol +65 -0
  322. package/contracts/oracle/Oracle.sol +145 -0
  323. package/contracts/oracle/OracleService.sol +278 -0
  324. package/contracts/oracle/OracleServiceManager.sol +42 -0
  325. package/contracts/pool/BundleService.sol +296 -0
  326. package/contracts/pool/BundleServiceManager.sol +42 -0
  327. package/contracts/pool/IBundleService.sol +106 -0
  328. package/contracts/pool/IPoolComponent.sol +112 -0
  329. package/contracts/pool/IPoolService.sol +150 -0
  330. package/contracts/pool/Pool.sol +299 -0
  331. package/contracts/pool/PoolService.sol +452 -0
  332. package/contracts/pool/PoolServiceManager.sol +42 -0
  333. package/contracts/product/ApplicationService.sol +254 -0
  334. package/contracts/product/ApplicationServiceManager.sol +38 -0
  335. package/contracts/product/ClaimService.sol +442 -0
  336. package/contracts/product/ClaimServiceManager.sol +38 -0
  337. package/contracts/product/IApplicationService.sol +62 -0
  338. package/contracts/product/IClaimService.sol +99 -0
  339. package/contracts/product/IPolicyService.sol +78 -0
  340. package/contracts/product/IPricingService.sol +39 -0
  341. package/contracts/product/IProductComponent.sol +42 -0
  342. package/contracts/product/IProductService.sol +33 -0
  343. package/contracts/product/PolicyService.sol +475 -0
  344. package/contracts/product/PolicyServiceManager.sol +42 -0
  345. package/contracts/product/PricingService.sol +300 -0
  346. package/contracts/product/PricingServiceManager.sol +42 -0
  347. package/contracts/product/Product.sol +377 -0
  348. package/contracts/product/ProductService.sol +124 -0
  349. package/contracts/product/ProductServiceManager.sol +42 -0
  350. package/contracts/registry/ChainNft.sol +15 -0
  351. package/contracts/registry/IRegistry.sol +73 -30
  352. package/contracts/registry/IRegistryService.sol +47 -28
  353. package/contracts/registry/IServiceAuthorization.sol +38 -0
  354. package/contracts/registry/ITransferInterceptor.sol +1 -0
  355. package/contracts/registry/Registry.sol +382 -248
  356. package/contracts/registry/RegistryAdmin.sol +333 -0
  357. package/contracts/registry/RegistryService.sol +114 -206
  358. package/contracts/registry/RegistryServiceManager.sol +24 -51
  359. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  360. package/contracts/registry/ReleaseManager.sol +501 -0
  361. package/contracts/registry/ServiceAuthorization.sol +90 -0
  362. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  363. package/contracts/registry/TokenRegistry.sol +261 -57
  364. package/contracts/shared/AccessAdmin.sol +759 -0
  365. package/contracts/shared/AccessManagerCustom.sol +741 -0
  366. package/contracts/shared/AccessManagerExtended.sol +481 -0
  367. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  368. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  369. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  370. package/contracts/shared/Component.sol +281 -0
  371. package/contracts/shared/ComponentService.sol +620 -0
  372. package/contracts/shared/ComponentServiceManager.sol +35 -0
  373. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  374. package/contracts/shared/ERC165.sol +15 -13
  375. package/contracts/shared/IAccessAdmin.sol +168 -0
  376. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  377. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  378. package/contracts/shared/IComponent.sol +70 -0
  379. package/contracts/shared/IComponentService.sol +102 -0
  380. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  381. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  382. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  383. package/contracts/shared/INftOwnable.sol +13 -12
  384. package/contracts/shared/IPolicyHolder.sol +45 -0
  385. package/contracts/shared/IRegisterable.sol +4 -6
  386. package/contracts/shared/IRegistryLinked.sol +11 -0
  387. package/contracts/shared/IService.sol +15 -5
  388. package/contracts/shared/IVersionable.sol +5 -48
  389. package/contracts/shared/InitializableCustom.sol +177 -0
  390. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  391. package/contracts/shared/KeyValueStore.sol +131 -0
  392. package/contracts/shared/Lifecycle.sol +71 -0
  393. package/contracts/shared/NftIdSetManager.sol +65 -0
  394. package/contracts/shared/NftOwnable.sol +59 -86
  395. package/contracts/shared/PolicyHolder.sol +102 -0
  396. package/contracts/shared/ProxyManager.sol +131 -26
  397. package/contracts/shared/Registerable.sol +26 -41
  398. package/contracts/shared/RegistryLinked.sol +43 -0
  399. package/contracts/shared/Service.sol +57 -29
  400. package/contracts/shared/TokenHandler.sol +37 -6
  401. package/contracts/shared/Versionable.sol +4 -92
  402. package/contracts/staking/IStaking.sol +168 -0
  403. package/contracts/staking/IStakingService.sol +153 -0
  404. package/contracts/staking/StakeManagerLib.sol +231 -0
  405. package/contracts/staking/Staking.sol +513 -0
  406. package/contracts/staking/StakingLifecycle.sol +24 -0
  407. package/contracts/staking/StakingManager.sol +54 -0
  408. package/contracts/staking/StakingReader.sol +187 -0
  409. package/contracts/staking/StakingService.sol +411 -0
  410. package/contracts/staking/StakingServiceManager.sol +44 -0
  411. package/contracts/staking/StakingStore.sol +615 -0
  412. package/contracts/staking/TargetManagerLib.sol +207 -0
  413. package/contracts/{types → type}/AddressSet.sol +1 -1
  414. package/contracts/type/Amount.sol +128 -0
  415. package/contracts/{types → type}/Blocknumber.sol +21 -3
  416. package/contracts/type/ClaimId.sol +75 -0
  417. package/contracts/{types → type}/DistributorType.sol +2 -2
  418. package/contracts/{types → type}/Fee.sol +33 -23
  419. package/contracts/{types → type}/NftId.sol +21 -15
  420. package/contracts/{types → type}/NftIdSet.sol +2 -2
  421. package/contracts/type/ObjectType.sol +241 -0
  422. package/contracts/type/PayoutId.sol +82 -0
  423. package/contracts/{types → type}/Referral.sol +5 -1
  424. package/contracts/type/RequestId.sol +75 -0
  425. package/contracts/{types → type}/RiskId.sol +1 -1
  426. package/contracts/type/RoleId.sol +201 -0
  427. package/contracts/type/Seconds.sol +81 -0
  428. package/contracts/type/Selector.sol +102 -0
  429. package/contracts/{types → type}/StateId.sol +34 -4
  430. package/contracts/type/String.sol +53 -0
  431. package/contracts/{types → type}/Timestamp.sol +23 -14
  432. package/contracts/{types → type}/UFixed.sol +1 -0
  433. package/contracts/{types → type}/Version.sol +2 -1
  434. package/package.json +6 -5
  435. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  436. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  437. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  438. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  439. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  440. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  441. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  442. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  443. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  444. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  445. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  446. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  447. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  448. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  449. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  451. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  453. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  455. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  457. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  459. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  461. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  463. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  465. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  467. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  469. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  472. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  474. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  476. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  479. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  481. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  483. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  485. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  487. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  488. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  489. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  490. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  491. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  492. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  493. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  494. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  495. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  496. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  497. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  498. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  499. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  500. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  501. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  502. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
  503. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  505. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  506. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  508. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  509. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  512. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  514. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  516. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  518. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  520. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  523. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  525. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  530. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  532. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  534. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  536. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  538. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  540. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  541. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  542. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  544. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  545. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  546. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  547. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  548. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  549. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  550. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  552. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  554. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  556. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  557. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  558. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  559. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  560. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  561. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  563. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  565. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  568. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  569. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  571. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  572. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  574. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  576. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  578. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  581. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  584. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  588. package/contracts/components/BaseComponent.sol +0 -132
  589. package/contracts/components/Distribution.sol +0 -163
  590. package/contracts/components/IBaseComponent.sol +0 -31
  591. package/contracts/components/IDistributionComponent.sol +0 -44
  592. package/contracts/components/IPoolComponent.sol +0 -66
  593. package/contracts/components/IProductComponent.sol +0 -35
  594. package/contracts/components/Pool.sol +0 -271
  595. package/contracts/components/Product.sol +0 -292
  596. package/contracts/experiment/cloning/Cloner.sol +0 -47
  597. package/contracts/experiment/errors/Require.sol +0 -38
  598. package/contracts/experiment/errors/Revert.sol +0 -44
  599. package/contracts/experiment/inheritance/A.sol +0 -53
  600. package/contracts/experiment/inheritance/B.sol +0 -28
  601. package/contracts/experiment/inheritance/C.sol +0 -34
  602. package/contracts/experiment/inheritance/IA.sol +0 -13
  603. package/contracts/experiment/inheritance/IB.sol +0 -10
  604. package/contracts/experiment/inheritance/IC.sol +0 -12
  605. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  606. package/contracts/experiment/statemachine/ISM.sol +0 -25
  607. package/contracts/experiment/statemachine/SM.sol +0 -57
  608. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  609. package/contracts/experiment/types/TypeA.sol +0 -47
  610. package/contracts/experiment/types/TypeB.sol +0 -29
  611. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  612. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  613. package/contracts/instance/IInstanceBase.sol +0 -26
  614. package/contracts/instance/InstanceAccessManager.sol +0 -288
  615. package/contracts/instance/InstanceBase.sol +0 -41
  616. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  617. package/contracts/instance/base/IInstanceBase.sol +0 -23
  618. package/contracts/instance/base/KeyValueStore.sol +0 -172
  619. package/contracts/instance/base/Lifecycle.sol +0 -100
  620. package/contracts/instance/module/ISetup.sol +0 -46
  621. package/contracts/instance/module/ITreasury.sol +0 -23
  622. package/contracts/instance/service/BundleService.sol +0 -260
  623. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  624. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  625. package/contracts/instance/service/DistributionService.sol +0 -118
  626. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  627. package/contracts/instance/service/IBundleService.sol +0 -45
  628. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  629. package/contracts/instance/service/IDistributionService.sol +0 -12
  630. package/contracts/instance/service/IPolicyService.sol +0 -87
  631. package/contracts/instance/service/IPoolService.sol +0 -20
  632. package/contracts/instance/service/IProductService.sol +0 -40
  633. package/contracts/instance/service/PolicyService.sol +0 -508
  634. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  635. package/contracts/instance/service/PoolService.sol +0 -124
  636. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  637. package/contracts/instance/service/ProductService.sol +0 -173
  638. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  639. package/contracts/shared/ContractDeployerLib.sol +0 -72
  640. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  641. package/contracts/test/TestFee.sol +0 -25
  642. package/contracts/test/TestRegisterable.sol +0 -18
  643. package/contracts/test/TestRoleId.sol +0 -14
  644. package/contracts/test/TestService.sol +0 -24
  645. package/contracts/test/TestToken.sol +0 -26
  646. package/contracts/test/TestVersion.sol +0 -44
  647. package/contracts/test/TestVersionable.sol +0 -17
  648. package/contracts/types/ChainId.sol +0 -38
  649. package/contracts/types/NumberId.sol +0 -52
  650. package/contracts/types/ObjectType.sol +0 -152
  651. package/contracts/types/RoleId.sol +0 -92
  652. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -7,42 +7,29 @@ import {ProxyManager} from "../shared/ProxyManager.sol";
7
7
  import {InstanceService} from "./InstanceService.sol";
8
8
  import {Registry} from "../registry/Registry.sol";
9
9
  import {RegistryService} from "../registry/RegistryService.sol";
10
- import {VersionLib} from "../types/Version.sol";
10
+ import {REGISTRY} from "../type/ObjectType.sol";
11
11
 
12
12
  contract InstanceServiceManager is ProxyManager {
13
13
 
14
14
  InstanceService private _instanceService;
15
15
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
16
+ /// @dev initializes proxy manager with instance service implementation
17
17
  constructor(
18
- address registryAddress
19
- )
20
- ProxyManager()
18
+ address authority,
19
+ address registryAddress,
20
+ bytes32 salt
21
+ )
22
+ ProxyManager(registryAddress)
21
23
  {
22
- InstanceService instSrv = new InstanceService();
24
+ InstanceService instSrv = new InstanceService{salt: salt}();
23
25
  // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
27
+ IVersionable versionable = deployDetermenistic(
26
28
  address(instSrv),
27
- data);
29
+ data,
30
+ salt);
28
31
 
29
32
  _instanceService = InstanceService(address(versionable));
30
-
31
- Registry registry = Registry(registryAddress);
32
- address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
33
- RegistryService registryService = RegistryService(registryServiceAddress);
34
- // TODO this must have a role or own nft to register service
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
-
44
- // implies that after this constructor call only upgrade functionality is available
45
- _isDeployed = true;
46
33
  }
47
34
 
48
35
  //--- view functions ----------------------------------------------------//
@@ -0,0 +1,272 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
+ import {RequestId} from "../type/RequestId.sol";
12
+ import {RiskId} from "../type/RiskId.sol";
13
+ import {StateId} from "../type/StateId.sol";
14
+ import {ReferralId} from "../type/Referral.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {PayoutId} from "../type/PayoutId.sol";
17
+
18
+ import {BalanceStore} from "./base/BalanceStore.sol";
19
+ import {IInstance} from "./IInstance.sol";
20
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
+ 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
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
31
+
32
+
33
+ contract InstanceStore is
34
+ AccessManagedUpgradeable,
35
+ BalanceStore,
36
+ KeyValueStore,
37
+ ObjectCounter,
38
+ ObjectLifecycle
39
+ {
40
+ function initialize(address instance)
41
+ public
42
+ initializer()
43
+ {
44
+ address authority = IInstance(instance).authority();
45
+ __AccessManaged_init(authority);
46
+ // double initialization, safe
47
+ _initializeLifecycle();
48
+ }
49
+
50
+ //--- Component ---------------------------------------------------------//
51
+
52
+ function createComponent(
53
+ NftId componentNftId,
54
+ IComponents.ComponentInfo memory componentInfo
55
+ )
56
+ external
57
+ restricted()
58
+ {
59
+ _registerBalanceTarget(componentNftId);
60
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
61
+ }
62
+
63
+ function updateComponent(
64
+ NftId componentNftId,
65
+ IComponents.ComponentInfo memory componentInfo,
66
+ StateId newState
67
+ )
68
+ external
69
+ restricted()
70
+ {
71
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
72
+ }
73
+
74
+ //--- Product -----------------------------------------------------------//
75
+
76
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
77
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
78
+ }
79
+
80
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
81
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
82
+ }
83
+
84
+ //--- Pool --------------------------------------------------------------//
85
+
86
+ function createPool(
87
+ NftId poolNftId,
88
+ IComponents.PoolInfo memory info
89
+ )
90
+ external
91
+ restricted()
92
+ {
93
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
94
+ }
95
+
96
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
97
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
98
+ }
99
+
100
+ //--- DistributorType ---------------------------------------------------//
101
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
102
+ _create(distributorType.toKey32(), abi.encode(info));
103
+ }
104
+
105
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
106
+ _update(distributorType.toKey32(), abi.encode(info), newState);
107
+ }
108
+
109
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
110
+ _updateState(distributorType.toKey32(), newState);
111
+ }
112
+
113
+ //--- Distributor -------------------------------------------------------//
114
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
115
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
116
+ }
117
+
118
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
119
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
120
+ }
121
+
122
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
123
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
124
+ }
125
+
126
+ //--- Referral ----------------------------------------------------------//
127
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
128
+ _create(referralId.toKey32(), abi.encode(referralInfo));
129
+ }
130
+
131
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
132
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
133
+ }
134
+
135
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
136
+ _updateState(referralId.toKey32(), newState);
137
+ }
138
+
139
+ //--- Bundle ------------------------------------------------------------//
140
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
141
+ _registerBalanceTarget(bundleNftId);
142
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
143
+ }
144
+
145
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
146
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
147
+ }
148
+
149
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
150
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
151
+ }
152
+
153
+ //--- Risk --------------------------------------------------------------//
154
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
155
+ _create(riskId.toKey32(), abi.encode(risk));
156
+ }
157
+
158
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
159
+ _update(riskId.toKey32(), abi.encode(risk), newState);
160
+ }
161
+
162
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
163
+ _updateState(riskId.toKey32(), newState);
164
+ }
165
+
166
+ //--- Application (Policy) ----------------------------------------------//
167
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
168
+ _registerBalanceTarget(applicationNftId);
169
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
170
+ }
171
+
172
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
173
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
174
+ }
175
+
176
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
177
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
178
+ }
179
+
180
+ //--- Policy ------------------------------------------------------------//
181
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
182
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
183
+ }
184
+
185
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
186
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
187
+ }
188
+
189
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
190
+ _updateState(_toNftKey32(policyNftId, POLICY()), newState);
191
+ }
192
+
193
+ //--- Claim -------------------------------------------------------------//
194
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
195
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
196
+ }
197
+
198
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
199
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
200
+ }
201
+
202
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
203
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
204
+ }
205
+
206
+ //--- Payout ------------------------------------------------------------//
207
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
208
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
209
+ }
210
+
211
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
212
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
213
+ }
214
+
215
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
216
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
217
+ }
218
+
219
+ //--- Request -----------------------------------------------------------//
220
+
221
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
222
+ requestId = _createNextRequestId();
223
+ _create(requestId.toKey32(), abi.encode(request));
224
+ }
225
+
226
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
227
+ _update(requestId.toKey32(), abi.encode(request), newState);
228
+ }
229
+
230
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
231
+ _updateState(requestId.toKey32(), newState);
232
+ }
233
+
234
+ //--- balance and fee management functions ------------------------------//
235
+
236
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
237
+ return _increaseBalance(targetNftId, amount);
238
+ }
239
+
240
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
241
+ return _decreaseBalance(targetNftId, amount);
242
+ }
243
+
244
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
245
+ return _increaseFees(targetNftId, amount);
246
+ }
247
+
248
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
249
+ return _decreaseFees(targetNftId, amount);
250
+ }
251
+
252
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
253
+ return _increaseLocked(targetNftId, amount);
254
+ }
255
+
256
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
257
+ return _decreaseLocked(targetNftId, amount);
258
+ }
259
+
260
+ //--- internal view/pure functions --------------------------------------//
261
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
262
+ return nftId.toKey32(objectType);
263
+ }
264
+
265
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
266
+ return claimId.toKey32(policyNftId);
267
+ }
268
+
269
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
270
+ return payoutId.toKey32(policyNftId);
271
+ }
272
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+
8
+ contract BalanceStore {
9
+
10
+ error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
11
+ error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
12
+
13
+ event LogBalanceStoreTargetRegistered(NftId targetNftId);
14
+
15
+ event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
+ event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
17
+
18
+ event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
+ event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
20
+
21
+ event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
+ event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
23
+
24
+ mapping(NftId nftId => Amount balance) private _balanceAmount;
25
+ mapping(NftId nftId => Amount locked) private _lockedAmount;
26
+ mapping(NftId nftId => Amount fees) private _feeAmount;
27
+ mapping(NftId nftId => bool isRegistered) private _isRegistered;
28
+
29
+ // TODO check if this is made redundant by *Info struct updates
30
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
31
+
32
+ modifier onlyRegisteredTarget(NftId targetNftId) {
33
+ if (!_isRegistered[targetNftId]) {
34
+ revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
35
+ }
36
+ _;
37
+ }
38
+
39
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
40
+ function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
41
+ function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
42
+
43
+ function getAmounts(NftId targetNftId)
44
+ external
45
+ view
46
+ returns (
47
+ Amount balanceAmount,
48
+ Amount lockedAmount,
49
+ Amount feeAmount
50
+ )
51
+ {
52
+ balanceAmount = _balanceAmount[targetNftId];
53
+ lockedAmount = _lockedAmount[targetNftId];
54
+ feeAmount = _feeAmount[targetNftId];
55
+ }
56
+
57
+ function _registerBalanceTarget(NftId targetNftId) internal {
58
+ if (_isRegistered[targetNftId]) {
59
+ revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
60
+ }
61
+
62
+ _isRegistered[targetNftId] = true;
63
+ _setLastUpdatedIn(targetNftId);
64
+
65
+ emit LogBalanceStoreTargetRegistered(targetNftId);
66
+ }
67
+
68
+ //--- fee management ----------------------------------------------------//
69
+ function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
70
+ newBalance = _feeAmount[targetNftId] + amount;
71
+ _feeAmount[targetNftId] = newBalance;
72
+
73
+ emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
74
+ _setLastUpdatedIn(targetNftId);
75
+ }
76
+
77
+ function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
78
+ newBalance = _feeAmount[targetNftId] - amount;
79
+ _feeAmount[targetNftId] = newBalance;
80
+
81
+ emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
82
+ _setLastUpdatedIn(targetNftId);
83
+ }
84
+
85
+ //--- locked management -------------------------------------------------//
86
+ function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
87
+ newBalance = _lockedAmount[targetNftId] + amount;
88
+ _lockedAmount[targetNftId] = newBalance;
89
+
90
+ emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
91
+ _setLastUpdatedIn(targetNftId);
92
+ }
93
+
94
+ function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
95
+ newBalance = _lockedAmount[targetNftId] - amount;
96
+ _lockedAmount[targetNftId] = newBalance;
97
+
98
+ emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
99
+ _setLastUpdatedIn(targetNftId);
100
+ }
101
+
102
+ //--- balance management ------------------------------------------------//
103
+ function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
104
+ newBalance = _balanceAmount[targetNftId] + amount;
105
+ _balanceAmount[targetNftId] = newBalance;
106
+
107
+ emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
108
+ _setLastUpdatedIn(targetNftId);
109
+ }
110
+
111
+ function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
112
+ newBalance = _balanceAmount[targetNftId] - amount;
113
+ _balanceAmount[targetNftId] = newBalance;
114
+
115
+ emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
116
+ _setLastUpdatedIn(targetNftId);
117
+ }
118
+
119
+ //--- internal/private functions ----------------------------------------//
120
+ function _setLastUpdatedIn(NftId targetNftId) internal {
121
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
122
+ }
123
+ }
@@ -2,42 +2,24 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
5
 
7
- import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IRegistry} from "../../registry/IRegistry.sol";
8
7
 
9
8
  abstract contract Cloneable is
10
9
  AccessManagedUpgradeable
11
10
  {
12
- event CloneableInitialized(address authority, address registry);
13
-
14
- error CloneableRegistryInvalid(address registry);
15
-
16
11
  IRegistry internal _registry;
17
12
 
18
- constructor() {
19
- _registry = IRegistry(address(0));
20
- }
21
-
22
13
  /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
23
- function initialize(
14
+ function __Cloneable_init(
24
15
  address authority,
25
16
  address registry
26
17
  )
27
- public
28
- initializer
18
+ internal
19
+ onlyInitializing
29
20
  {
30
- // check/handle access managed
31
21
  __AccessManaged_init(authority);
32
-
33
- // check/handle registry
34
- if (registry.code.length == 0) {
35
- revert CloneableRegistryInvalid(registry);
36
- }
37
-
38
22
  _registry = IRegistry(registry);
39
-
40
- emit CloneableInitialized(authority, registry);
41
23
  }
42
24
 
43
25
  function getRegistry() external view returns (IRegistry) {
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
8
+
9
+ contract ObjectCounter {
10
+
11
+ // TODO refactor risk id
12
+ // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
+
14
+ uint256 private _requestCounter;
15
+
16
+ // TODO introduce RequestId (uint64)
17
+ function _createNextRequestId() internal returns (RequestId requestId) {
18
+ _requestCounter++;
19
+ requestId = RequestIdLib.toRequestId(_requestCounter);
20
+ }
21
+ }
@@ -0,0 +1,96 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ObjectType, COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
5
+ import {StateId, INITIAL, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
6
+ import {Lifecycle} from "../../shared/Lifecycle.sol";
7
+
8
+ contract ObjectLifecycle is
9
+ Lifecycle
10
+ {
11
+ function _initializeLifecycle() internal onlyInitializing
12
+ {
13
+ _setupLifecycle();
14
+ }
15
+
16
+ function _setupLifecycle()
17
+ private
18
+ {
19
+ _setupBundleLifecycle();
20
+ _setupComponentLifecycle();
21
+ _setupPolicyLifecycle();
22
+ _setupClaimAndPayoutLifecycle();
23
+ _setupRiskLifecycle();
24
+ _setupRequestLifecycle();
25
+ _setUpPoolLifecycle();
26
+ _setUpProductLifecycle();
27
+ _setUpDistributionLifecycle();
28
+ }
29
+
30
+ function _setupComponentLifecycle() private {
31
+ _initialState[COMPONENT()] = ACTIVE();
32
+ _isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
33
+ _isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
34
+ _isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
35
+ }
36
+
37
+ function _setupBundleLifecycle() private {
38
+ _initialState[BUNDLE()] = ACTIVE();
39
+ _isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
40
+ _isValidTransition[BUNDLE()][ACTIVE()][CLOSED()] = true;
41
+ _isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
42
+ _isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
43
+ }
44
+
45
+ function _setupPolicyLifecycle() private {
46
+ _initialState[POLICY()] = APPLIED();
47
+ _isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
48
+ _isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
49
+ _isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
50
+ _isValidTransition[POLICY()][APPLIED()][ACTIVE()] = true;
51
+ _isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
52
+ _isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
53
+ }
54
+
55
+ function _setupClaimAndPayoutLifecycle() private {
56
+ _initialState[CLAIM()] = SUBMITTED();
57
+ _isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
58
+ _isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
59
+ _isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
60
+
61
+ _initialState[PAYOUT()] = EXPECTED();
62
+ _isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
63
+ }
64
+
65
+ function _setupRiskLifecycle() private {
66
+ _initialState[RISK()] = ACTIVE();
67
+ _isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
68
+ _isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
69
+ _isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
70
+ }
71
+
72
+ function _setupRequestLifecycle() private {
73
+ _initialState[REQUEST()] = ACTIVE();
74
+ _isValidTransition[REQUEST()][ACTIVE()][FULFILLED()] = true;
75
+ _isValidTransition[REQUEST()][ACTIVE()][FAILED()] = true;
76
+ _isValidTransition[REQUEST()][FAILED()][FULFILLED()] = true;
77
+ _isValidTransition[REQUEST()][ACTIVE()][CANCELLED()] = true;
78
+ }
79
+
80
+ // TODO why this is needed when _setupComponentLifecycle() exists ?!!
81
+ function _setUpPoolLifecycle() private {
82
+ _initialState[POOL()] = ACTIVE();
83
+ }
84
+
85
+ function _setUpProductLifecycle() private {
86
+ _initialState[PRODUCT()] = ACTIVE();
87
+ }
88
+
89
+ function _setUpDistributionLifecycle() private {
90
+ _initialState[DISTRIBUTION()] = ACTIVE();
91
+ _initialState[DISTRIBUTOR()] = ACTIVE();
92
+ _initialState[DISTRIBUTOR_TYPE()] = ACTIVE();
93
+ _initialState[REFERRAL()] = ACTIVE();
94
+ }
95
+
96
+ }