@etherisc/gif-next 0.0.2-91f98cf-477 → 0.0.2-92c50c2-136

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 (711) hide show
  1. package/README.md +237 -41
  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 +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +266 -1608
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +538 -1958
  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 +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  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/base/Cloneable.sol/Cloneable.json +137 -0
  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 +4 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  48. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  50. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  52. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  53. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  54. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  55. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  56. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  58. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  60. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  62. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  64. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  66. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  68. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  70. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  72. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +380 -307
  74. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  76. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  77. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  78. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  79. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  80. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  82. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  84. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  86. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  88. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  90. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  92. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  94. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  96. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  98. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  99. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  100. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  101. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  102. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → product/IProductService.sol/IProductService.json} +195 -171
  104. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  106. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  108. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  110. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  112. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  113. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  114. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  116. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  122. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  124. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  126. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  127. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  128. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  129. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  130. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  132. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  134. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  136. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  138. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1177 -0
  140. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  142. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  143. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  144. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  146. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  148. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  150. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  154. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  155. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  156. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  158. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  160. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  162. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  164. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  168. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  170. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  172. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  180. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  182. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  184. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  186. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  188. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  190. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  191. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  192. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IService.sol/IService.json} +171 -150
  194. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  196. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +102 -165
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  203. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  204. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  210. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  211. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  212. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  214. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  215. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  216. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  218. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  219. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  220. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  221. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  222. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  284. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  296. package/contracts/distribution/Distribution.sol +261 -0
  297. package/contracts/distribution/DistributionService.sol +297 -0
  298. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  299. package/contracts/distribution/IDistributionComponent.sol +66 -0
  300. package/contracts/distribution/IDistributionService.sol +81 -0
  301. package/contracts/instance/BundleManager.sol +126 -0
  302. package/contracts/instance/IInstance.sol +80 -46
  303. package/contracts/instance/IInstanceService.sol +97 -0
  304. package/contracts/instance/Instance.sol +248 -59
  305. package/contracts/instance/InstanceAdmin.sol +331 -0
  306. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  307. package/contracts/instance/InstanceReader.sol +392 -0
  308. package/contracts/instance/InstanceService.sol +439 -0
  309. package/contracts/instance/InstanceServiceManager.sol +44 -0
  310. package/contracts/instance/InstanceStore.sol +272 -0
  311. package/contracts/instance/base/BalanceStore.sol +123 -0
  312. package/contracts/instance/base/Cloneable.sol +28 -0
  313. package/contracts/instance/base/ObjectCounter.sol +21 -0
  314. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  315. package/contracts/instance/base/ObjectManager.sol +80 -0
  316. package/contracts/instance/module/IAccess.sol +46 -0
  317. package/contracts/instance/module/IBundle.sol +20 -0
  318. package/contracts/instance/module/IComponents.sol +52 -0
  319. package/contracts/instance/module/IDistribution.sol +42 -0
  320. package/contracts/instance/module/IPolicy.sol +84 -0
  321. package/contracts/instance/module/IRisk.sol +11 -0
  322. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  323. package/contracts/oracle/IOracle.sol +20 -0
  324. package/contracts/oracle/IOracleComponent.sol +32 -0
  325. package/contracts/oracle/IOracleService.sol +65 -0
  326. package/contracts/oracle/Oracle.sol +145 -0
  327. package/contracts/oracle/OracleService.sol +278 -0
  328. package/contracts/oracle/OracleServiceManager.sol +42 -0
  329. package/contracts/pool/BundleService.sol +296 -0
  330. package/contracts/pool/BundleServiceManager.sol +42 -0
  331. package/contracts/pool/IBundleService.sol +106 -0
  332. package/contracts/pool/IPoolComponent.sol +112 -0
  333. package/contracts/pool/IPoolService.sol +150 -0
  334. package/contracts/pool/Pool.sol +299 -0
  335. package/contracts/pool/PoolService.sol +452 -0
  336. package/contracts/pool/PoolServiceManager.sol +42 -0
  337. package/contracts/product/ApplicationService.sol +254 -0
  338. package/contracts/product/ApplicationServiceManager.sol +38 -0
  339. package/contracts/product/ClaimService.sol +442 -0
  340. package/contracts/product/ClaimServiceManager.sol +38 -0
  341. package/contracts/product/IApplicationService.sol +62 -0
  342. package/contracts/product/IClaimService.sol +99 -0
  343. package/contracts/product/IPolicyService.sol +78 -0
  344. package/contracts/product/IPricingService.sol +39 -0
  345. package/contracts/product/IProductComponent.sol +42 -0
  346. package/contracts/product/IProductService.sol +33 -0
  347. package/contracts/product/PolicyService.sol +475 -0
  348. package/contracts/product/PolicyServiceManager.sol +42 -0
  349. package/contracts/product/PricingService.sol +300 -0
  350. package/contracts/product/PricingServiceManager.sol +42 -0
  351. package/contracts/product/Product.sol +377 -0
  352. package/contracts/product/ProductService.sol +124 -0
  353. package/contracts/product/ProductServiceManager.sol +42 -0
  354. package/contracts/registry/ChainNft.sol +95 -37
  355. package/contracts/registry/IRegistry.sol +95 -28
  356. package/contracts/registry/IRegistryService.sol +69 -0
  357. package/contracts/registry/IServiceAuthorization.sol +38 -0
  358. package/contracts/registry/ITransferInterceptor.sol +7 -0
  359. package/contracts/registry/Registry.sol +482 -281
  360. package/contracts/registry/RegistryAdmin.sol +335 -0
  361. package/contracts/registry/RegistryService.sol +266 -0
  362. package/contracts/registry/RegistryServiceManager.sol +53 -0
  363. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  364. package/contracts/registry/ReleaseManager.sol +503 -0
  365. package/contracts/registry/ServiceAuthorization.sol +90 -0
  366. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  367. package/contracts/registry/TokenRegistry.sol +315 -0
  368. package/contracts/shared/AccessAdmin.sol +759 -0
  369. package/contracts/shared/AccessManagerCustom.sol +741 -0
  370. package/contracts/shared/AccessManagerExtended.sol +481 -0
  371. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  372. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  373. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  374. package/contracts/shared/Component.sol +281 -0
  375. package/contracts/shared/ComponentService.sol +620 -0
  376. package/contracts/shared/ComponentServiceManager.sol +35 -0
  377. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  378. package/contracts/shared/ERC165.sol +15 -9
  379. package/contracts/shared/IAccessAdmin.sol +168 -0
  380. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  381. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  382. package/contracts/shared/IComponent.sol +70 -0
  383. package/contracts/shared/IComponentService.sol +102 -0
  384. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  385. package/contracts/shared/IKeyValueStore.sol +54 -0
  386. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  387. package/contracts/shared/INftOwnable.sol +23 -0
  388. package/contracts/shared/IPolicyHolder.sol +45 -0
  389. package/contracts/shared/IRegisterable.sol +10 -19
  390. package/contracts/shared/IRegistryLinked.sol +11 -0
  391. package/contracts/shared/IService.sol +25 -0
  392. package/contracts/shared/IVersionable.sol +38 -37
  393. package/contracts/shared/InitializableCustom.sol +177 -0
  394. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  395. package/contracts/shared/KeyValueStore.sol +131 -0
  396. package/contracts/shared/Lifecycle.sol +77 -0
  397. package/contracts/shared/NftIdSetManager.sol +65 -0
  398. package/contracts/shared/NftOwnable.sol +107 -0
  399. package/contracts/shared/PolicyHolder.sol +102 -0
  400. package/contracts/shared/ProxyManager.sol +199 -0
  401. package/contracts/shared/Registerable.sol +54 -65
  402. package/contracts/shared/RegistryLinked.sol +43 -0
  403. package/contracts/shared/Service.sol +83 -0
  404. package/contracts/shared/TokenHandler.sol +58 -0
  405. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  406. package/contracts/shared/Versionable.sol +38 -68
  407. package/contracts/staking/IStaking.sol +168 -0
  408. package/contracts/staking/IStakingService.sol +153 -0
  409. package/contracts/staking/StakeManagerLib.sol +231 -0
  410. package/contracts/staking/Staking.sol +513 -0
  411. package/contracts/staking/StakingLifecycle.sol +23 -0
  412. package/contracts/staking/StakingManager.sol +54 -0
  413. package/contracts/staking/StakingReader.sol +187 -0
  414. package/contracts/staking/StakingService.sol +411 -0
  415. package/contracts/staking/StakingServiceManager.sol +44 -0
  416. package/contracts/staking/StakingStore.sol +615 -0
  417. package/contracts/staking/TargetManagerLib.sol +207 -0
  418. package/contracts/{types → type}/AddressSet.sol +1 -1
  419. package/contracts/type/Amount.sol +128 -0
  420. package/contracts/{types → type}/Blocknumber.sol +21 -3
  421. package/contracts/type/ClaimId.sol +75 -0
  422. package/contracts/type/DistributorType.sol +55 -0
  423. package/contracts/type/Fee.sol +66 -0
  424. package/contracts/{types → type}/Key32.sol +8 -3
  425. package/contracts/{types → type}/NftId.sol +21 -15
  426. package/contracts/type/NftIdSet.sol +62 -0
  427. package/contracts/type/ObjectType.sol +241 -0
  428. package/contracts/type/PayoutId.sol +82 -0
  429. package/contracts/type/Referral.sol +89 -0
  430. package/contracts/type/RequestId.sol +75 -0
  431. package/contracts/{types → type}/RiskId.sol +1 -1
  432. package/contracts/type/RoleId.sol +201 -0
  433. package/contracts/type/Seconds.sol +81 -0
  434. package/contracts/type/Selector.sol +102 -0
  435. package/contracts/{types → type}/StateId.sol +39 -5
  436. package/contracts/type/String.sol +53 -0
  437. package/contracts/{types → type}/Timestamp.sol +27 -14
  438. package/contracts/{types → type}/UFixed.sol +129 -12
  439. package/contracts/{types → type}/Version.sol +15 -2
  440. package/package.json +11 -7
  441. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  442. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  443. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  444. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  445. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  446. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  447. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  448. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  449. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  450. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  451. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  453. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  454. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  455. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  456. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  457. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  459. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  461. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  463. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  465. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  467. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  469. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  471. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  473. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  475. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  477. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  479. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  482. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  484. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  486. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  488. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  490. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  491. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  492. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  494. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  495. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  496. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  497. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  498. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  500. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  501. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  502. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  503. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  504. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  505. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  508. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  509. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  510. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  513. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  515. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  517. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  518. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  519. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  520. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  521. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  522. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  525. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  526. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  528. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  531. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  533. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  535. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  537. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  539. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  541. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  542. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  544. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  546. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  548. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  550. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  552. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -531
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -420
  556. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  558. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -440
  561. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -543
  564. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  566. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  567. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  568. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  569. package/artifacts/contracts/registry/RegistryUpgradeable.sol/Registry.dbg.json +0 -4
  570. package/artifacts/contracts/registry/RegistryUpgradeable.sol/Registry.json +0 -495
  571. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  572. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  573. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  574. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -178
  575. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  576. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +0 -129
  577. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
  578. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -187
  579. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  580. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  581. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  582. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  583. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  584. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  585. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  587. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  589. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  591. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  593. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  595. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  597. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  599. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  600. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  601. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  602. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  603. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  605. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  607. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  609. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  610. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  611. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  613. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  614. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  615. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  617. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  619. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  621. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  623. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  626. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  628. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  630. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  632. package/contracts/components/BaseComponent.sol +0 -94
  633. package/contracts/components/Distribution.sol +0 -132
  634. package/contracts/components/IBaseComponent.sol +0 -19
  635. package/contracts/components/IDistributionComponent.sol +0 -47
  636. package/contracts/components/IPoolComponent.sol +0 -71
  637. package/contracts/components/IProductComponent.sol +0 -38
  638. package/contracts/components/Pool.sol +0 -235
  639. package/contracts/components/Product.sol +0 -227
  640. package/contracts/experiment/errors/Require.sol +0 -38
  641. package/contracts/experiment/errors/Revert.sol +0 -44
  642. package/contracts/experiment/inheritance/A.sol +0 -53
  643. package/contracts/experiment/inheritance/B.sol +0 -28
  644. package/contracts/experiment/inheritance/C.sol +0 -34
  645. package/contracts/experiment/inheritance/IA.sol +0 -13
  646. package/contracts/experiment/inheritance/IB.sol +0 -10
  647. package/contracts/experiment/inheritance/IC.sol +0 -12
  648. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  649. package/contracts/experiment/statemachine/ISM.sol +0 -25
  650. package/contracts/experiment/statemachine/README.md +0 -112
  651. package/contracts/experiment/statemachine/SM.sol +0 -57
  652. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  653. package/contracts/experiment/types/TypeA.sol +0 -47
  654. package/contracts/experiment/types/TypeB.sol +0 -29
  655. package/contracts/instance/IInstanceLinked.sol +0 -8
  656. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  657. package/contracts/instance/base/IInstanceBase.sol +0 -22
  658. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  659. package/contracts/instance/base/IService.sol +0 -15
  660. package/contracts/instance/base/InstanceBase.sol +0 -91
  661. package/contracts/instance/base/KeyValueStore.sol +0 -161
  662. package/contracts/instance/base/Lifecycle.sol +0 -100
  663. package/contracts/instance/base/ModuleBase.sol +0 -57
  664. package/contracts/instance/base/ServiceBase.sol +0 -37
  665. package/contracts/instance/module/access/Access.sol +0 -149
  666. package/contracts/instance/module/access/IAccess.sol +0 -53
  667. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  668. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  669. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  670. package/contracts/instance/module/component/IComponent.sol +0 -28
  671. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  672. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  673. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  674. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  675. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  676. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  677. package/contracts/instance/module/risk/IRisk.sol +0 -26
  678. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  679. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  680. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  681. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  682. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  683. package/contracts/instance/service/DistributionService.sol +0 -59
  684. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  685. package/contracts/instance/service/IDistributionService.sol +0 -12
  686. package/contracts/instance/service/IPoolService.sol +0 -37
  687. package/contracts/instance/service/IProductService.sol +0 -107
  688. package/contracts/instance/service/PoolService.sol +0 -149
  689. package/contracts/instance/service/ProductService.sol +0 -509
  690. package/contracts/registry/IChainNft.sol +0 -21
  691. package/contracts/registry/IRegistryLinked.sol +0 -8
  692. package/contracts/registry/RegistryUpgradeable.sol +0 -415
  693. package/contracts/shared/IOwnable.sol +0 -6
  694. package/contracts/shared/Proxy.sol +0 -83
  695. package/contracts/shared/VersionableUpgradeable.sol +0 -108
  696. package/contracts/test/TestDistribution.sol +0 -21
  697. package/contracts/test/TestFee.sol +0 -25
  698. package/contracts/test/TestPool.sol +0 -25
  699. package/contracts/test/TestProduct.sol +0 -72
  700. package/contracts/test/TestRegisterable.sol +0 -19
  701. package/contracts/test/TestRoleId.sol +0 -14
  702. package/contracts/test/TestService.sol +0 -32
  703. package/contracts/test/TestToken.sol +0 -26
  704. package/contracts/test/TestVersion.sol +0 -44
  705. package/contracts/test/TestVersionable.sol +0 -17
  706. package/contracts/types/ChainId.sol +0 -38
  707. package/contracts/types/Fee.sol +0 -56
  708. package/contracts/types/NftIdSet.sol +0 -60
  709. package/contracts/types/ObjectType.sol +0 -131
  710. package/contracts/types/ReferralId.sol +0 -48
  711. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,131 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../type/Blocknumber.sol";
5
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {StateId, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
9
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
+
11
+ import {Lifecycle} from "./Lifecycle.sol";
12
+ import {IKeyValueStore} from "./IKeyValueStore.sol";
13
+
14
+ abstract contract KeyValueStore is
15
+ Lifecycle,
16
+ IKeyValueStore
17
+ {
18
+
19
+ mapping(Key32 key32 => Value value) private _value;
20
+
21
+ function _create(
22
+ Key32 key32,
23
+ bytes memory data
24
+ )
25
+ internal
26
+ {
27
+ ObjectType objectType = key32.toObjectType();
28
+ if (objectType.eqz()) {
29
+ revert ErrorKeyValueStoreTypeUndefined(objectType);
30
+ }
31
+
32
+ Metadata storage metadata = _value[key32].metadata;
33
+ if (metadata.state.gtz()) {
34
+ revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
35
+ }
36
+
37
+ if(!hasLifecycle(objectType)) {
38
+ revert ErrorKeyValueStoreNoLifecycle(objectType);
39
+ }
40
+
41
+ Blocknumber blocknumber = blockBlocknumber();
42
+ StateId initialState = getInitialState(objectType);
43
+
44
+ // set metadata
45
+ metadata.objectType = objectType;
46
+ metadata.state = initialState;
47
+ metadata.updatedIn = blocknumber;
48
+ metadata.createdIn = blocknumber;
49
+
50
+ // set data
51
+ _value[key32].data = data;
52
+
53
+ // solhint-disable-next-line avoid-tx-origin
54
+ emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
55
+ }
56
+
57
+
58
+ function _update(
59
+ Key32 key32,
60
+ bytes memory data,
61
+ StateId state
62
+ )
63
+ internal
64
+ {
65
+ // update state
66
+ Blocknumber lastUpdatedIn = _updateState(key32, state);
67
+
68
+ // update data
69
+ _value[key32].data = data;
70
+
71
+ // solhint-disable-next-line avoid-tx-origin
72
+ emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, msg.sender, tx.origin, lastUpdatedIn);
73
+ }
74
+
75
+
76
+ function _updateState(
77
+ Key32 key32,
78
+ StateId state
79
+ )
80
+ internal
81
+ returns (Blocknumber lastUpdatedIn)
82
+ {
83
+ if (state.eqz()) {
84
+ revert ErrorKeyValueStoreStateZero(key32);
85
+ }
86
+
87
+ Metadata storage metadata = _value[key32].metadata;
88
+ StateId stateOld = metadata.state;
89
+ lastUpdatedIn = metadata.updatedIn;
90
+
91
+ if (stateOld.eqz()) {
92
+ revert ErrorKeyValueStoreNotExisting(key32);
93
+ }
94
+
95
+ // update state
96
+ if(state != KEEP_STATE()) {
97
+ checkTransition(metadata.objectType, stateOld, state);
98
+ metadata.state = state;
99
+
100
+ // solhint-disable-next-line avoid-tx-origin
101
+ emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, msg.sender, tx.origin, lastUpdatedIn);
102
+ }
103
+
104
+ // update metadata
105
+ metadata.updatedIn = blockBlocknumber();
106
+ }
107
+
108
+ function exists(Key32 key32) public view returns (bool) {
109
+ return _value[key32].metadata.state.gtz();
110
+ }
111
+
112
+ function get(Key32 key32) public view returns (Value memory value) {
113
+ return _value[key32];
114
+ }
115
+
116
+ function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
117
+ return _value[key32].metadata;
118
+ }
119
+
120
+ function getData(Key32 key32) public view returns (bytes memory data) {
121
+ return _value[key32].data;
122
+ }
123
+
124
+ function getState(Key32 key32) public view returns (StateId state) {
125
+ return _value[key32].metadata.state;
126
+ }
127
+
128
+ function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
129
+ return Key32Lib.toKey32(objectType, id);
130
+ }
131
+ }
@@ -0,0 +1,77 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ObjectType} from "../type/ObjectType.sol";
5
+ import {StateId, zeroStateId} from "../type/StateId.sol";
6
+ import {ILifecycle} from "./ILifecycle.sol";
7
+
8
+ abstract contract Lifecycle is
9
+ ILifecycle
10
+ {
11
+ mapping(ObjectType objectType => StateId initialState)
12
+ private _initialState;
13
+
14
+ mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
15
+ private _isValidTransition;
16
+
17
+ /// @dev child class must implement and CALL setup func at deployment/initializaton time
18
+ function _setupLifecycle() internal virtual;
19
+
20
+ function setInitialState(ObjectType ttype, StateId state) internal virtual {
21
+ assert(_initialState[ttype] == zeroStateId());
22
+ _initialState[ttype] = state;
23
+ }
24
+
25
+ function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
26
+ assert(_isValidTransition[ttype][oldState][newState] == false);
27
+ _isValidTransition[ttype][oldState][newState] = true;
28
+ }
29
+
30
+ function hasLifecycle(
31
+ ObjectType objectType
32
+ )
33
+ public
34
+ view
35
+ override
36
+ returns (bool)
37
+ {
38
+ return _initialState[objectType].gtz();
39
+ }
40
+
41
+ function getInitialState(
42
+ ObjectType objectType
43
+ )
44
+ public
45
+ view
46
+ returns (StateId)
47
+ {
48
+ return _initialState[objectType];
49
+ }
50
+
51
+ function checkTransition(
52
+ ObjectType objectType,
53
+ StateId fromId,
54
+ StateId toId
55
+ )
56
+ public
57
+ view
58
+ {
59
+ // revert if no life cycle support
60
+ if (_initialState[objectType].eqz()) {
61
+ revert ErrorNoLifecycle(objectType);
62
+ }
63
+
64
+ // enforce valid state transition
65
+ if (!_isValidTransition[objectType][fromId][toId]) {
66
+ revert ErrorInvalidStateTransition(objectType, fromId, toId);
67
+ }
68
+ }
69
+
70
+ function isValidTransition(
71
+ ObjectType objectType,
72
+ StateId fromId,
73
+ StateId toId
74
+ ) public view returns (bool) {
75
+ return _isValidTransition[objectType][fromId][toId];
76
+ }
77
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+
7
+ contract NftIdSetManager {
8
+
9
+ error ErrorNftIdSetManagerNotOwner(address owner, address sender);
10
+ error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
11
+ error ErrorNftIdSetManagerNftIdInvalid(NftId objectNftId);
12
+ error ErrorNftIdSetManagerAlreadyAdded(NftId objectNftId);
13
+
14
+ LibNftIdSet.Set private _allObjects;
15
+ LibNftIdSet.Set private _activeObjects;
16
+ address private _owner;
17
+
18
+ modifier onlyOwner() {
19
+ if(msg.sender != _owner) {
20
+ revert ErrorNftIdSetManagerNotOwner(_owner, msg.sender);
21
+ }
22
+ _;
23
+ }
24
+
25
+ constructor() {
26
+ _owner = msg.sender;
27
+ }
28
+
29
+ function add(NftId objectNftId) external onlyOwner {
30
+ LibNftIdSet.add(_allObjects, objectNftId);
31
+ LibNftIdSet.add(_activeObjects, objectNftId);
32
+ }
33
+
34
+ function activate(NftId componentNftId, NftId objectNftId) external onlyOwner {
35
+ LibNftIdSet.add(_activeObjects, objectNftId);
36
+ }
37
+
38
+ function deactivate(NftId componentNftId, NftId objectNftId) external onlyOwner {
39
+ LibNftIdSet.remove(_activeObjects, objectNftId);
40
+ }
41
+
42
+ function nftIds() external view returns (uint256 ids) {
43
+ return LibNftIdSet.size(_allObjects);
44
+ }
45
+
46
+ function getNftId(uint256 idx) external view returns (NftId) {
47
+ return LibNftIdSet.getElementAt(_allObjects, idx);
48
+ }
49
+
50
+ function exists(NftId objectNftId) external view returns (bool) {
51
+ return LibNftIdSet.contains(_allObjects, objectNftId);
52
+ }
53
+
54
+ function activeNftIds() external view returns (uint256 ids) {
55
+ return LibNftIdSet.size(_activeObjects);
56
+ }
57
+
58
+ function getActiveNftId(uint256 idx) external view returns (NftId) {
59
+ return LibNftIdSet.getElementAt(_activeObjects, idx);
60
+ }
61
+
62
+ function isActive(NftId objectNftId) external view returns (bool) {
63
+ return LibNftIdSet.contains(_activeObjects, objectNftId);
64
+ }
65
+ }
@@ -0,0 +1,107 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ERC165} from "./ERC165.sol";
5
+ import {INftOwnable} from "./INftOwnable.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {RegistryLinked} from "./RegistryLinked.sol";
8
+
9
+ contract NftOwnable is
10
+ ERC165,
11
+ RegistryLinked,
12
+ INftOwnable
13
+ {
14
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.NftOwnable")) - 1)) & ~bytes32(uint256(0xff));
15
+ bytes32 public constant NFT_OWNABLE_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
16
+
17
+ struct NftOwnableStorage {
18
+ NftId _nftId;
19
+ address _initialOwner;
20
+ }
21
+
22
+ /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
23
+ modifier onlyOwner() {
24
+ if (msg.sender != getOwner()) {
25
+ revert ErrorNftOwnableNotOwner(msg.sender);
26
+ }
27
+ _;
28
+ }
29
+
30
+
31
+ /// @dev initialization for upgradable contracts
32
+ // used in _initializeRegisterable
33
+ function initializeNftOwnable(
34
+ address initialOwner,
35
+ address registryAddress
36
+ )
37
+ public
38
+ virtual
39
+ onlyInitializing()
40
+ {
41
+ initializeRegistryLinked(registryAddress);
42
+ initializeERC165();
43
+
44
+ if(initialOwner == address(0)) {
45
+ revert ErrorNftOwnableInitialOwnerZero();
46
+ }
47
+
48
+ _getNftOwnableStorage()._initialOwner = initialOwner;
49
+ }
50
+
51
+
52
+ /// @dev links this contract to nft after registration
53
+ // needs to be done once per registered contract and
54
+ // reduces registry calls to check ownership
55
+ // does not need any protection as function can only do the "right thing"
56
+ function linkToRegisteredNftId()
57
+ public
58
+ virtual
59
+ returns (NftId nftId)
60
+ {
61
+ return _linkToNftOwnable(address(this));
62
+ }
63
+
64
+ function getNftId() public view virtual override returns (NftId) {
65
+ return _getNftOwnableStorage()._nftId;
66
+ }
67
+
68
+ function getOwner() public view virtual override returns (address) {
69
+ NftOwnableStorage storage $ = _getNftOwnableStorage();
70
+
71
+ if ($._nftId.gtz()) {
72
+ return getRegistry().ownerOf($._nftId);
73
+ }
74
+
75
+ return $._initialOwner;
76
+ }
77
+
78
+ /// @dev used in constructor of registry service manager
79
+ // links ownership of registry service manager ot nft owner of registry service
80
+ function _linkToNftOwnable(
81
+ address nftOwnableAddress
82
+ )
83
+ internal
84
+ returns (NftId)
85
+ {
86
+ NftOwnableStorage storage $ = _getNftOwnableStorage();
87
+
88
+ if ($._nftId.gtz()) {
89
+ revert ErrorNftOwnableAlreadyLinked($._nftId);
90
+ }
91
+
92
+ if (!getRegistry().isRegistered(nftOwnableAddress)) {
93
+ revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
94
+ }
95
+
96
+ $._nftId = getRegistry().getNftId(nftOwnableAddress);
97
+
98
+ return $._nftId;
99
+ }
100
+
101
+
102
+ function _getNftOwnableStorage() private pure returns (NftOwnableStorage storage $) {
103
+ assembly {
104
+ $.slot := NFT_OWNABLE_STORAGE_LOCATION_V1
105
+ }
106
+ }
107
+ }
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+ import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {ERC165} from "./ERC165.sol";
11
+ import {IPolicyHolder} from "./IPolicyHolder.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
14
+ import {RegistryLinked} from "./RegistryLinked.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
16
+
17
+ /// @dev template implementation for IPolicyHolder
18
+ contract PolicyHolder is
19
+ ERC165,
20
+ RegistryLinked, // TODO need upgradeable version
21
+ IPolicyHolder
22
+ {
23
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
24
+ // TODO fix address
25
+ bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
26
+
27
+ struct PolicyHolderStorage {
28
+ mapping(NftId policyId => mapping(PayoutId payoutId => address beneficiary)) _beneficiary;
29
+ address _beneficiaryDefault;
30
+ }
31
+
32
+ function initializePolicyHolder(
33
+ address registryAddress,
34
+ address beneficiaryDefault
35
+ )
36
+ public
37
+ virtual
38
+ onlyInitializing()
39
+ {
40
+ initializeRegistryLinked(registryAddress);
41
+
42
+ _getPolicyHolderStorage()._beneficiaryDefault = beneficiaryDefault;
43
+
44
+ registerInterface(type(IPolicyHolder).interfaceId);
45
+ }
46
+
47
+ /// @dev empty default implementation
48
+ function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external { }
49
+
50
+ /// @dev empty default implementation
51
+ function policyActivated(NftId policyNftId) external {}
52
+
53
+ /// @dev empty default implementation
54
+ function policyExpired(NftId policyNftId) external {}
55
+
56
+ /// @dev empty default implementation
57
+ function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
58
+
59
+ /// @dev empty default implementation
60
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external {}
61
+
62
+ /// @dev returns payout specific beneficiary
63
+ /// when no such beneficiary is defined the policy specific beneficiary is returned
64
+ function getBeneficiary(NftId policyNftId, PayoutId payoutId) external virtual view returns (address beneficiary) {
65
+ beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId];
66
+
67
+ // fallback to claim independent beneficiary
68
+ if(beneficiary == address(0) && payoutId.gtz()) {
69
+ beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][PayoutIdLib.zero()];
70
+ }
71
+ }
72
+
73
+ //--- IERC165 functions ---------------//
74
+ function onERC721Received(
75
+ address, // operator
76
+ address, // from
77
+ uint256, // tokenId
78
+ bytes calldata // data
79
+ )
80
+ external
81
+ virtual
82
+ returns (bytes4)
83
+ {
84
+ return IERC721Receiver.onERC721Received.selector;
85
+ }
86
+
87
+ /// @dev sets policy specific beneficiary (used when no payout specific beneficiary is defined)
88
+ function _setBeneficiary(NftId policyNftId, address beneficiary) internal {
89
+ _setBeneficiary(policyNftId, PayoutIdLib.zero(), beneficiary);
90
+ }
91
+
92
+ /// @dev sets policy and claim specific beneficiary
93
+ function _setBeneficiary(NftId policyNftId, PayoutId payoutId, address beneficiary) internal {
94
+ _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId] = beneficiary;
95
+ }
96
+
97
+ function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
98
+ assembly {
99
+ $.slot := POLICY_HOLDER_STORAGE_LOCATION_V1
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,199 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
5
+
6
+ import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
7
+ import {IVersionable} from "./IVersionable.sol";
8
+ import {NftOwnable} from "./NftOwnable.sol";
9
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
10
+ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
11
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
+ import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
+ import {Version, VersionLib} from "../type/Version.sol";
14
+ import {NftId} from "../type/NftId.sol";
15
+
16
+ /// @dev manages proxy deployments for upgradable contracs of type IVersionable
17
+ contract ProxyManager is
18
+ NftOwnable
19
+ {
20
+
21
+ struct VersionInfo {
22
+ Version version;
23
+ address implementation;
24
+ address activatedBy;
25
+ Timestamp activatedAt;
26
+ Blocknumber activatedIn;
27
+ }
28
+
29
+ event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
30
+ event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
31
+
32
+ error ErrorProxyManagerAlreadyDeployed();
33
+ error ErrorProxyManagerNotYetDeployed();
34
+
35
+ error ErrorProxyManagerZeroVersion();
36
+ error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
37
+
38
+ UpgradableProxyWithAdmin internal _proxy;
39
+
40
+ // state to keep version history
41
+ mapping(Version version => VersionInfo info) _versionHistory;
42
+ Version [] _versions;
43
+
44
+ /// @dev only used to capture proxy owner
45
+ constructor(address registry)
46
+ {
47
+ initializeProxyManager(registry);
48
+ }
49
+
50
+ function initializeProxyManager(address registry)
51
+ public
52
+ initializer()
53
+ {
54
+ initializeNftOwnable(msg.sender, registry);
55
+ }
56
+
57
+ /// @dev deploy initial contract
58
+ function deploy(address initialImplementation, bytes memory initializationData)
59
+ public
60
+ virtual
61
+ onlyOwner()
62
+ returns (IVersionable versionable)
63
+ {
64
+ if (_versions.length > 0) {
65
+ revert ErrorProxyManagerAlreadyDeployed();
66
+ }
67
+
68
+ address currentProxyOwner = getOwner(); // used by implementation
69
+ address initialProxyAdminOwner = address(this); // used by proxy
70
+
71
+ _proxy = new UpgradableProxyWithAdmin(
72
+ initialImplementation,
73
+ initialProxyAdminOwner,
74
+ getDeployData(currentProxyOwner, initializationData)
75
+ );
76
+
77
+ versionable = IVersionable(address(_proxy));
78
+ _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
79
+
80
+ emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
81
+ }
82
+
83
+ function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
84
+ public
85
+ virtual
86
+ onlyOwner()
87
+ returns (IVersionable versionable)
88
+ {
89
+ if (_versions.length > 0) {
90
+ revert ErrorProxyManagerAlreadyDeployed();
91
+ }
92
+
93
+ address currentProxyOwner = getOwner();
94
+ address initialProxyAdminOwner = address(this);
95
+
96
+ _proxy = new UpgradableProxyWithAdmin{salt: salt}(
97
+ initialImplementation,
98
+ initialProxyAdminOwner,
99
+ getDeployData(currentProxyOwner, initializationData)
100
+ );
101
+
102
+ versionable = IVersionable(address(_proxy));
103
+ _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
104
+
105
+ emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
106
+ }
107
+
108
+ /// @dev upgrade existing contract
109
+ function upgrade(address newImplementation, bytes memory upgradeData)
110
+ public
111
+ virtual
112
+ onlyOwner()
113
+ returns (IVersionable versionable)
114
+ {
115
+ if (_versions.length == 0) {
116
+ revert ErrorProxyManagerNotYetDeployed();
117
+ }
118
+
119
+ address currentProxyOwner = getOwner();
120
+ ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
121
+ ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
122
+
123
+ proxyAdmin.upgradeAndCall(
124
+ proxy,
125
+ newImplementation,
126
+ getUpgradeData(upgradeData));
127
+
128
+ versionable = IVersionable(address(_proxy));
129
+ _updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
130
+
131
+ emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
132
+
133
+ }
134
+
135
+ function linkToProxy() public returns (NftId) {
136
+ return _linkToNftOwnable(address(_proxy));
137
+ }
138
+
139
+ function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
140
+ return abi.encodeWithSelector(
141
+ IVersionable.initializeVersionable.selector,
142
+ proxyOwner,
143
+ deployData);
144
+ }
145
+
146
+ function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
147
+ return abi.encodeWithSelector(
148
+ IVersionable.upgradeVersionable.selector,
149
+ upgradeData);
150
+ }
151
+
152
+ function getProxy() public view returns (UpgradableProxyWithAdmin) {
153
+ return _proxy;
154
+ }
155
+
156
+ function getVersion() external view virtual returns(Version) {
157
+ return IVersionable(address(_proxy)).getVersion();
158
+ }
159
+
160
+ function getVersionCount() external view returns(uint256) {
161
+ return _versions.length;
162
+ }
163
+
164
+ function getVersion(uint256 idx) external view returns(Version) {
165
+ return _versions[idx];
166
+ }
167
+
168
+ function getVersionInfo(Version _version) external view returns(VersionInfo memory) {
169
+ return _versionHistory[_version];
170
+ }
171
+
172
+ function _updateVersionHistory(
173
+ Version newVersion,
174
+ address implementation,
175
+ address activatedBy
176
+ )
177
+ private
178
+ {
179
+ if(newVersion == VersionLib.zeroVersion()) {
180
+ revert ErrorProxyManagerZeroVersion();
181
+ }
182
+
183
+ if(_versions.length > 0) {
184
+ if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
185
+ revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
186
+ }
187
+ }
188
+
189
+ // update version history
190
+ _versions.push(newVersion);
191
+ _versionHistory[newVersion] = VersionInfo(
192
+ newVersion,
193
+ implementation,
194
+ activatedBy,
195
+ TimestampLib.blockTimestamp(),
196
+ blockNumber()
197
+ );
198
+ }
199
+ }