@etherisc/gif-next 0.0.2-9b434da-265 → 0.0.2-9b58b75-869

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 (606) hide show
  1. package/README.md +209 -16
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +499 -549
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1234 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1571 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +858 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +956 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +652 -0
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +416 -3032
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1073 -30
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +978 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1288 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +145 -166
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +404 -58
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +389 -194
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +567 -150
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +698 -259
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +368 -123
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1640 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +977 -0
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  201. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/IService.sol/IService.json} +134 -29
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +78 -87
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  218. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +203 -164
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  222. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  224. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  226. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  228. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  229. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  230. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  232. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  234. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  236. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  238. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  240. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  242. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  244. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  246. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  248. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  256. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  258. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  260. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  262. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  264. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  266. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  268. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  270. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  272. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  274. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  280. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  282. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  286. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  288. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  290. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  292. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  294. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  296. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  298. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  300. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  302. package/contracts/authorization/AccessAdmin.sol +591 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +138 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  314. package/contracts/distribution/Distribution.sol +295 -0
  315. package/contracts/distribution/DistributionService.sol +352 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  317. package/contracts/distribution/IDistributionComponent.sol +52 -0
  318. package/contracts/distribution/IDistributionService.sol +98 -0
  319. package/contracts/instance/BundleSet.sol +126 -0
  320. package/contracts/instance/IInstance.sol +86 -0
  321. package/contracts/instance/IInstanceService.sol +92 -0
  322. package/contracts/instance/Instance.sol +185 -321
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  325. package/contracts/instance/InstanceReader.sol +405 -0
  326. package/contracts/instance/InstanceService.sol +422 -24
  327. package/contracts/instance/InstanceServiceManager.sol +40 -0
  328. package/contracts/instance/InstanceStore.sol +276 -0
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/base/ObjectSet.sol +79 -0
  334. package/contracts/instance/module/IAccess.sol +30 -22
  335. package/contracts/instance/module/IBundle.sol +8 -7
  336. package/contracts/instance/module/IComponents.sol +51 -0
  337. package/contracts/instance/module/IDistribution.sol +7 -4
  338. package/contracts/instance/module/IPolicy.sol +56 -17
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +33 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +166 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +39 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  351. package/contracts/pool/BundleService.sol +284 -0
  352. package/contracts/pool/BundleServiceManager.sol +39 -0
  353. package/contracts/pool/IBundleService.sol +106 -0
  354. package/contracts/pool/IPoolComponent.sol +51 -0
  355. package/contracts/pool/IPoolService.sol +150 -0
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +436 -0
  358. package/contracts/pool/PoolServiceManager.sol +39 -0
  359. package/contracts/product/ApplicationService.sol +230 -0
  360. package/contracts/product/ApplicationServiceManager.sol +38 -0
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +43 -0
  363. package/contracts/product/ClaimService.sol +416 -0
  364. package/contracts/product/ClaimServiceManager.sol +38 -0
  365. package/contracts/product/IApplicationService.sol +62 -0
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/product/IPolicyService.sol +78 -0
  368. package/contracts/product/IPricingService.sol +39 -0
  369. package/contracts/product/IProductComponent.sol +40 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +39 -0
  373. package/contracts/product/PricingService.sol +300 -0
  374. package/contracts/product/PricingServiceManager.sol +39 -0
  375. package/contracts/product/Product.sol +392 -0
  376. package/contracts/product/ProductService.sol +99 -0
  377. package/contracts/product/ProductServiceManager.sol +39 -0
  378. package/contracts/registry/ChainNft.sol +55 -25
  379. package/contracts/registry/IRegistry.sol +91 -30
  380. package/contracts/registry/IRegistryService.sol +56 -16
  381. package/contracts/registry/ITransferInterceptor.sol +1 -0
  382. package/contracts/registry/Registry.sol +411 -326
  383. package/contracts/registry/RegistryAdmin.sol +365 -0
  384. package/contracts/registry/RegistryService.sol +155 -272
  385. package/contracts/registry/RegistryServiceManager.sol +29 -19
  386. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  387. package/contracts/registry/ReleaseRegistry.sol +485 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +315 -0
  390. package/contracts/shared/Component.sol +280 -0
  391. package/contracts/shared/ComponentService.sol +622 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/shared/ERC165.sol +16 -10
  395. package/contracts/shared/IComponent.sol +70 -0
  396. package/contracts/shared/IComponentService.sol +112 -0
  397. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  398. package/contracts/{instance/base → shared}/IKeyValueStore.sol +20 -14
  399. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  400. package/contracts/shared/INftOwnable.sol +13 -12
  401. package/contracts/shared/IRegisterable.sol +4 -6
  402. package/contracts/shared/IRegistryLinked.sol +11 -0
  403. package/contracts/shared/IService.sol +25 -0
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSet.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +60 -89
  410. package/contracts/shared/Registerable.sol +27 -41
  411. package/contracts/shared/RegistryLinked.sol +43 -0
  412. package/contracts/shared/Service.sol +82 -0
  413. package/contracts/shared/TokenHandler.sol +39 -8
  414. package/contracts/staking/IStaking.sol +167 -0
  415. package/contracts/staking/IStakingService.sol +160 -0
  416. package/contracts/staking/StakeManagerLib.sol +231 -0
  417. package/contracts/staking/Staking.sol +514 -0
  418. package/contracts/staking/StakingLifecycle.sol +23 -0
  419. package/contracts/staking/StakingManager.sol +50 -0
  420. package/contracts/staking/StakingReader.sol +183 -0
  421. package/contracts/staking/StakingService.sol +411 -0
  422. package/contracts/staking/StakingServiceManager.sol +44 -0
  423. package/contracts/staking/StakingStore.sol +605 -0
  424. package/contracts/staking/TargetManagerLib.sol +207 -0
  425. package/contracts/{types → type}/AddressSet.sol +1 -1
  426. package/contracts/type/Amount.sol +128 -0
  427. package/contracts/{types → type}/Blocknumber.sol +21 -3
  428. package/contracts/type/ClaimId.sol +75 -0
  429. package/contracts/{types → type}/DistributorType.sol +2 -2
  430. package/contracts/type/Fee.sol +66 -0
  431. package/contracts/{types → type}/NftId.sol +21 -15
  432. package/contracts/type/NftIdSet.sol +62 -0
  433. package/contracts/type/ObjectType.sol +271 -0
  434. package/contracts/type/PayoutId.sol +82 -0
  435. package/contracts/{types → type}/Referral.sol +5 -1
  436. package/contracts/type/RequestId.sol +75 -0
  437. package/contracts/{types → type}/RiskId.sol +1 -1
  438. package/contracts/type/RoleId.sol +174 -0
  439. package/contracts/type/Seconds.sol +81 -0
  440. package/contracts/type/Selector.sol +102 -0
  441. package/contracts/{types → type}/StateId.sol +38 -4
  442. package/contracts/type/String.sol +53 -0
  443. package/contracts/{types → type}/Timestamp.sol +23 -14
  444. package/contracts/type/UFixed.sol +332 -0
  445. package/contracts/{types → type}/Version.sol +8 -2
  446. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  447. package/contracts/upgradeability/ProxyManager.sol +198 -0
  448. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  449. package/contracts/upgradeability/Versionable.sol +59 -0
  450. package/package.json +11 -7
  451. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  454. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  456. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  458. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  460. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  462. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  464. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  466. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  469. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  471. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  473. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  476. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  478. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  480. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  482. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  484. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  485. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  486. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  487. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  488. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  490. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -736
  495. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  496. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  497. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  500. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  501. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  502. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  503. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  504. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  505. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  506. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  507. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  508. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  509. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  510. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  511. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  512. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  513. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  514. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  515. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  516. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  517. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -10
  518. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  520. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  521. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  522. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  524. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  526. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  527. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  528. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  529. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  530. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  532. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  534. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  536. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  538. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  540. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  542. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  544. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  546. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  548. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  550. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  552. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  554. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  557. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  559. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  561. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  563. package/contracts/components/IBaseComponent.sol +0 -19
  564. package/contracts/experiment/errors/Require.sol +0 -38
  565. package/contracts/experiment/errors/Revert.sol +0 -44
  566. package/contracts/experiment/inheritance/A.sol +0 -53
  567. package/contracts/experiment/inheritance/B.sol +0 -28
  568. package/contracts/experiment/inheritance/C.sol +0 -34
  569. package/contracts/experiment/inheritance/IA.sol +0 -13
  570. package/contracts/experiment/inheritance/IB.sol +0 -10
  571. package/contracts/experiment/inheritance/IC.sol +0 -12
  572. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  573. package/contracts/experiment/statemachine/ISM.sol +0 -25
  574. package/contracts/experiment/statemachine/SM.sol +0 -57
  575. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  576. package/contracts/experiment/types/TypeA.sol +0 -47
  577. package/contracts/experiment/types/TypeB.sol +0 -29
  578. package/contracts/instance/AccessManagedSimple.sol +0 -114
  579. package/contracts/instance/AccessManagerSimple.sol +0 -682
  580. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  581. package/contracts/instance/InstanceAccessManager.sol +0 -288
  582. package/contracts/instance/base/IService.sol +0 -15
  583. package/contracts/instance/base/KeyValueStore.sol +0 -188
  584. package/contracts/instance/base/Lifecycle.sol +0 -100
  585. package/contracts/instance/base/ServiceBase.sol +0 -44
  586. package/contracts/instance/module/ISetup.sol +0 -41
  587. package/contracts/instance/module/ITreasury.sol +0 -23
  588. package/contracts/registry/IChainNft.sol +0 -22
  589. package/contracts/shared/ContractDeployerLib.sol +0 -72
  590. package/contracts/shared/ProxyManager.sol +0 -94
  591. package/contracts/shared/Versionable.sol +0 -147
  592. package/contracts/test/TestFee.sol +0 -25
  593. package/contracts/test/TestRegisterable.sol +0 -18
  594. package/contracts/test/TestRoleId.sol +0 -14
  595. package/contracts/test/TestService.sol +0 -26
  596. package/contracts/test/TestVersion.sol +0 -44
  597. package/contracts/test/TestVersionable.sol +0 -17
  598. package/contracts/test/Usdc.sol +0 -26
  599. package/contracts/types/ChainId.sol +0 -38
  600. package/contracts/types/Fee.sol +0 -56
  601. package/contracts/types/NftIdSet.sol +0 -60
  602. package/contracts/types/NumberId.sol +0 -52
  603. package/contracts/types/ObjectType.sol +0 -152
  604. package/contracts/types/RoleId.sol +0 -75
  605. package/contracts/types/UFixed.sol +0 -209
  606. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,188 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../types/Blocknumber.sol";
5
- import {Key32, KeyId, Key32Lib} from "../../types/Key32.sol";
6
- import {NftId} from "../../types/NftId.sol";
7
- import {ObjectType} from "../../types/ObjectType.sol";
8
- import {StateId, ACTIVE} from "../../types/StateId.sol";
9
- import {Timestamp, TimestampLib} from "../../types/Timestamp.sol";
10
-
11
- import {Lifecycle} from "./Lifecycle.sol";
12
- import {IKeyValueStore} from "./IKeyValueStore.sol";
13
-
14
- contract KeyValueStore is Lifecycle, IKeyValueStore {
15
-
16
- mapping(Key32 key32 => Value value) private _value;
17
- address private _owner;
18
-
19
- modifier onlyOwner() {
20
- require(
21
- msg.sender == _owner,
22
- "ERROR:KVS-001:NOT_OWNER");
23
- _;
24
- }
25
-
26
- constructor() {
27
- _owner = msg.sender;
28
- }
29
-
30
- function create(
31
- Key32 key32,
32
- bytes memory data
33
- )
34
- public
35
- onlyOwner
36
- {
37
- _create(key32, data);
38
- }
39
-
40
- function _create(
41
- Key32 key32,
42
- bytes memory data
43
- )
44
- internal
45
- {
46
- ObjectType objectType = key32.toObjectType();
47
- require(objectType.gtz(), "ERROR:KVS-010:TYPE_UNDEFINED");
48
-
49
- Metadata storage metadata = _value[key32].metadata;
50
- require(metadata.state.eqz(), "ERROR:KVS-012:ALREADY_CREATED");
51
-
52
- address createdBy = msg.sender;
53
- Blocknumber blocknumber = blockBlocknumber();
54
- StateId initialState = hasLifecycle(objectType) ? getInitialState(objectType) : ACTIVE();
55
-
56
- // set metadata
57
- metadata.objectType = objectType;
58
- metadata.state = initialState;
59
- metadata.updatedBy = createdBy;
60
- metadata.updatedIn = blocknumber;
61
- metadata.createdIn = blocknumber;
62
-
63
- // set data
64
- _value[key32].data = data;
65
-
66
- // solhint-disable-next-line avoid-tx-origin
67
- emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, createdBy, tx.origin);
68
- }
69
-
70
- function update(
71
- Key32 key32,
72
- bytes memory data,
73
- StateId state
74
- )
75
- public
76
- onlyOwner
77
- {
78
- _update(key32, data, state);
79
- }
80
-
81
- function _update(
82
- Key32 key32,
83
- bytes memory data,
84
- StateId state
85
- )
86
- internal
87
- {
88
- require(state.gtz(), "ERROR:KVS-020:STATE_UNDEFINED");
89
- Metadata storage metadata = _value[key32].metadata;
90
- StateId stateOld = metadata.state;
91
- require(stateOld.gtz(), "ERROR:KVS-021:NOT_EXISTING");
92
-
93
- // update data
94
- _value[key32].data = data;
95
-
96
- // update metadata (and state)
97
- address updatedBy = msg.sender;
98
- Blocknumber lastUpdatedIn = metadata.updatedIn;
99
- metadata.state = state;
100
- metadata.updatedBy = updatedBy;
101
- metadata.updatedIn = blockBlocknumber();
102
-
103
- // create log entries
104
- // solhint-disable avoid-tx-origin
105
- emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), state, stateOld, updatedBy, tx.origin, lastUpdatedIn);
106
- emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, updatedBy, tx.origin, lastUpdatedIn);
107
- // solhing-enable
108
- }
109
-
110
- function updateData(Key32 key32, bytes memory data)
111
- public
112
- onlyOwner
113
- {
114
- _updateData(key32, data);
115
- }
116
-
117
- function _updateData(Key32 key32, bytes memory data)
118
- internal
119
- {
120
- Metadata storage metadata = _value[key32].metadata;
121
- StateId state = metadata.state;
122
- require(state.gtz(), "ERROR:KVS-030:NOT_EXISTING");
123
-
124
- // update data
125
- _value[key32].data = data;
126
-
127
- // update metadata
128
- address updatedBy = msg.sender;
129
- Blocknumber lastUpdatedIn = metadata.updatedIn;
130
- metadata.updatedBy = updatedBy;
131
- metadata.updatedIn = blockBlocknumber();
132
-
133
- // create log entry
134
- // solhint-disable-next-line avoid-tx-origin
135
- emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, updatedBy, tx.origin, lastUpdatedIn);
136
- }
137
-
138
- function updateState(Key32 key32, StateId state)
139
- public
140
- onlyOwner
141
- {
142
- _updateState(key32, state);
143
- }
144
-
145
- function _updateState(Key32 key32, StateId state)
146
- internal
147
- {
148
- require(state.gtz(), "ERROR:KVS-040:STATE_UNDEFINED");
149
- Metadata storage metadata = _value[key32].metadata;
150
- StateId stateOld = metadata.state;
151
- require(stateOld.gtz(), "ERROR:KVS-041:NOT_EXISTING");
152
-
153
- // update metadata (and state)
154
- address updatedBy = msg.sender;
155
- Blocknumber lastUpdatedIn = metadata.updatedIn;
156
- metadata.state = state;
157
- metadata.updatedBy = updatedBy;
158
- metadata.updatedIn = blockBlocknumber();
159
-
160
- // create log entry
161
- // solhint-disable-next-line avoid-tx-origin
162
- emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), state, stateOld, updatedBy, tx.origin, lastUpdatedIn);
163
- }
164
-
165
- function exists(Key32 key32) public view returns (bool) {
166
- return _value[key32].metadata.state.gtz();
167
- }
168
-
169
- function get(Key32 key32) public view returns (Value memory value) {
170
- return _value[key32];
171
- }
172
-
173
- function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
174
- return _value[key32].metadata;
175
- }
176
-
177
- function getData(Key32 key32) public view returns (bytes memory data) {
178
- return _value[key32].data;
179
- }
180
-
181
- function getState(Key32 key32) public view returns (StateId state) {
182
- return _value[key32].metadata.state;
183
- }
184
-
185
- function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
186
- return Key32Lib.toKey32(objectType, id);
187
- }
188
- }
@@ -1,100 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK} from "../../types/ObjectType.sol";
6
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, UNDERWRITTEN, REVOKED, DECLINED} from "../../types/StateId.sol";
7
- import {ILifecycle} from "./ILifecycle.sol";
8
-
9
- contract Lifecycle is ILifecycle {
10
- mapping(ObjectType objectType => StateId initialState)
11
- private _initialState;
12
-
13
- mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
14
- private _isValidTransition;
15
-
16
- constructor() {
17
- _setupBundleLifecycle();
18
- _setupComponentLifecycle();
19
- _setupPolicyLifecycle();
20
- _setupRiskLifecycle();
21
- }
22
-
23
- function hasLifecycle(
24
- ObjectType objectType
25
- )
26
- public
27
- view
28
- override
29
- returns (bool)
30
- {
31
- return _initialState[objectType].gtz();
32
- }
33
-
34
- function getInitialState(
35
- ObjectType objectType
36
- )
37
- public
38
- view
39
- returns (StateId)
40
- {
41
- return _initialState[objectType];
42
- }
43
-
44
- function checkTransition(
45
- ObjectType objectType,
46
- StateId fromId,
47
- StateId toId
48
- )
49
- public
50
- view
51
- {
52
- // return if no life cycle support
53
- if (_initialState[objectType].eqz()) {
54
- return;
55
- }
56
-
57
- // enforce valid state transition
58
- if (!_isValidTransition[objectType][fromId][toId]) {
59
- revert ErrorInvalidStateTransition(objectType, fromId, toId);
60
- }
61
- }
62
-
63
- function isValidTransition(
64
- ObjectType objectType,
65
- StateId fromId,
66
- StateId toId
67
- ) public view returns (bool) {
68
- return _isValidTransition[objectType][fromId][toId];
69
- }
70
-
71
- function _setupComponentLifecycle() internal {
72
- _initialState[COMPONENT()] = ACTIVE();
73
- _isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
74
- _isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
75
- _isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
76
- }
77
-
78
- function _setupBundleLifecycle() internal {
79
- _initialState[BUNDLE()] = ACTIVE();
80
- _isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
81
- _isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
82
- _isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
83
- }
84
-
85
- function _setupPolicyLifecycle() internal {
86
- _initialState[POLICY()] = APPLIED();
87
- _isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
88
- _isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
89
- _isValidTransition[POLICY()][APPLIED()][UNDERWRITTEN()] = true;
90
- _isValidTransition[POLICY()][UNDERWRITTEN()][ACTIVE()] = true;
91
- _isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
92
- }
93
-
94
- function _setupRiskLifecycle() internal {
95
- _initialState[RISK()] = ACTIVE();
96
- _isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
97
- _isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
98
- _isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
99
- }
100
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId, zeroNftId} from "../../types/NftId.sol";
5
- import {ObjectType, SERVICE} from "../../types/ObjectType.sol";
6
- import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
7
-
8
- import {Registerable} from "../../shared/Registerable.sol";
9
- import {IRegistry} from "../../registry/IRegistry.sol";
10
- import {IVersionable} from "../../shared/IVersionable.sol";
11
- import {Versionable} from "../../shared/Versionable.sol";
12
-
13
- import {IService} from "./IService.sol";
14
-
15
- abstract contract ServiceBase is
16
- Registerable,
17
- Versionable,
18
- IService
19
- {
20
- function getName() public pure virtual override returns(string memory name);
21
-
22
- function getMajorVersion() public view virtual override returns(VersionPart majorVersion) {
23
- return getVersion().toMajorPart();
24
- }
25
-
26
- // from Versionable
27
- function getVersion()
28
- public
29
- pure
30
- virtual override (IVersionable, Versionable)
31
- returns(Version)
32
- {
33
- return VersionLib.toVersion(3,0,0);
34
- }
35
-
36
- function _initializeServiceBase(address registry, NftId registryNftId, address initialOwner)
37
- internal
38
- //onlyInitializing //TODO uncomment when "fully" upgradeable
39
- {// service must provide its name and version upon registration
40
- bytes memory data = abi.encode(getName(), getMajorVersion());
41
- _initializeRegisterable(registry, registryNftId, SERVICE(), false, initialOwner, data);
42
- _registerInterface(type(IService).interfaceId);
43
- }
44
- }
@@ -1,41 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Fee} from "../../types/Fee.sol";
7
- import {NftId} from "../../types/NftId.sol";
8
- import {TokenHandler} from "../../shared/TokenHandler.sol";
9
-
10
- interface ISetup {
11
- struct ProductSetupInfo {
12
- IERC20Metadata token;
13
- TokenHandler tokenHandler;
14
- NftId distributionNftId;
15
- NftId poolNftId;
16
- Fee distributionFee; // default distribution fee (no referral id)
17
- Fee productFee; // product fee on net premium
18
- Fee processingFee; // product fee on payout amounts
19
- Fee poolFee; // pool fee on net premium
20
- Fee stakingFee; // pool fee on staked capital from investor
21
- Fee performanceFee; // pool fee on profits from capital investors
22
- }
23
-
24
- struct DistributionSetupInfo {
25
- NftId productNftId;
26
- TokenHandler tokenHandler;
27
- Fee distributionFee; // default distribution fee (no referral id)
28
- bool isIntercepting; // intercepts nft transfers (for distributors)
29
- address wallet;
30
- }
31
-
32
- struct PoolSetupInfo {
33
- NftId productNftId;
34
- TokenHandler tokenHandler;
35
- Fee poolFee; // pool fee on net premium
36
- Fee stakingFee; // pool fee on staked capital from investor
37
- Fee performanceFee; // pool fee on profits from capital investors
38
- bool isIntercepting; // intercepts nft transfers (for bundles)
39
- address wallet;
40
- }
41
- }
@@ -1,23 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Fee} from "../../types/Fee.sol";
7
- import {NftId} from "../../types/NftId.sol";
8
- import {TokenHandler} from "../../shared/TokenHandler.sol";
9
-
10
- interface ITreasury {
11
- struct TreasuryInfo {
12
- IERC20Metadata token;
13
- TokenHandler tokenHandler;
14
- NftId distributionNftId;
15
- NftId poolNftId;
16
- Fee distributionFee; // default distribution fee (no referral id)
17
- Fee productFee; // product fee on net premium
18
- Fee processingFee; // product fee on payout amounts
19
- Fee poolFee; // pool fee on net premium
20
- Fee stakingFee; // pool fee on staked capital from investor
21
- Fee performanceFee; // pool fee on profits from capital investors
22
- }
23
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC721Enumerable} from "@openzeppelin5/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
5
-
6
- interface IChainNft is IERC721Enumerable {
7
- function mint(
8
- address to,
9
- address interceptor,
10
- string memory uri
11
- ) external returns (uint256 tokenId);
12
-
13
- function burn(uint256 tokenId) external;
14
-
15
- function setURI(uint256 tokenId, string memory uri) external;
16
-
17
- function exists(uint256 tokenId) external view returns (bool);
18
-
19
- function totalMinted() external view returns (uint256);
20
-
21
- function getRegistryAddress() external view returns (address registry);
22
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- library ContractDeployerLib {
5
-
6
- event LogContractDeployed(address contractAddress);
7
-
8
- error ErrorCreationCodeHashMismatch(bytes32 expectedHash, bytes32 actualHash);
9
-
10
- /// @dev deploys a new contract using the provided creation code
11
- function deploy(
12
- bytes memory creationCode,
13
- bytes32 expectedCreationCodeHash
14
- )
15
- public
16
- returns (address contractAdress)
17
- {
18
- // check against expected hash, if provided
19
- if (expectedCreationCodeHash != bytes32(0)) {
20
- bytes32 creationCodeHash = getHash(creationCode);
21
- if (creationCodeHash != expectedCreationCodeHash) {
22
- revert ErrorCreationCodeHashMismatch(expectedCreationCodeHash, creationCodeHash);
23
- }
24
- }
25
-
26
- // solhint-disable no-inline-assembly
27
- assembly {
28
- contractAdress := create(0, add(creationCode, 0x20), mload(creationCode))
29
-
30
- if iszero(extcodesize(contractAdress)) {
31
- revert(0, 0)
32
- }
33
- }
34
- // solhint enable
35
-
36
- emit LogContractDeployed(contractAdress);
37
- }
38
-
39
- /// @dev gets the creation code for the new contract
40
- // for terminology see eg https://www.rareskills.io/post/ethereum-contract-creation-code
41
- function getCreationCode(
42
- bytes memory byteCodeWithInitCode, // what you get with type(<Contract>).creationCode
43
- bytes memory encodedConstructorArguments // what you get with
44
- )
45
- public
46
- pure
47
- returns (bytes memory creationCode)
48
- {
49
- return abi.encodePacked(byteCodeWithInitCode, encodedConstructorArguments);
50
- }
51
-
52
-
53
- function matchesWithHash(
54
- bytes memory creationCode,
55
- bytes32 expectedHash
56
- )
57
- public
58
- pure
59
- returns (bool isMatching)
60
- {
61
- return getHash(creationCode) == expectedHash;
62
- }
63
-
64
-
65
- function getHash(bytes memory creationCode)
66
- public
67
- pure
68
- returns (bytes32 hash)
69
- {
70
- return keccak256(creationCode);
71
- }
72
- }
@@ -1,94 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Ownable} from "@openzeppelin5/contracts/access/Ownable.sol";
5
- import {ProxyAdmin} from "@openzeppelin5/contracts/proxy/transparent/ProxyAdmin.sol";
6
- import {ITransparentUpgradeableProxy} from "@openzeppelin5/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
7
-
8
- import {IVersionable} from "./IVersionable.sol";
9
- import {NftOwnable} from "./NftOwnable.sol";
10
- import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
11
-
12
- /// @dev manages proxy deployments for upgradable contracs of type IVersionable
13
- contract ProxyManager is
14
- NftOwnable
15
- {
16
-
17
- event LogProxyDeployed(address indexed proxy, address initialImplementation);
18
- event LogProxyDeployedWithSalt(address indexed proxy, address initialImplementation);
19
- event LogProxyUpgraded(address indexed proxy, address upgradedImplementation);
20
-
21
- error ErrorAlreadyDeployed();
22
- error ErrorAlreadyDeployedWithSalt();
23
- error ErrorNotYetDeployed();
24
-
25
- UpgradableProxyWithAdmin internal _proxy;
26
- bool internal _isDeployed;
27
-
28
- /// @dev only used to capture proxy owner
29
- constructor()
30
- NftOwnable()
31
- { }
32
-
33
- /// @dev deploy initial contract
34
- function deploy(address initialImplementation, bytes memory initializationData)
35
- public
36
- virtual
37
- onlyOwner()
38
- returns (IVersionable versionable)
39
- {
40
- if (_isDeployed) { revert ErrorAlreadyDeployed(); }
41
-
42
- address currentProxyOwner = getOwner(); // used by implementation
43
- address initialProxyAdminOwner = address(this); // used by proxy
44
- bytes memory data = getDeployData(initialImplementation, currentProxyOwner, initializationData);
45
-
46
- _proxy = new UpgradableProxyWithAdmin(
47
- initialImplementation,
48
- initialProxyAdminOwner,
49
- data
50
- );
51
-
52
- _isDeployed = true;
53
- versionable = IVersionable(address(_proxy));
54
-
55
- emit LogProxyDeployed(address(_proxy), initialImplementation);
56
- }
57
-
58
- /// @dev upgrade existing contract
59
- function upgrade(address newImplementation, bytes memory upgradeData)
60
- public
61
- virtual
62
- onlyOwner()
63
- returns (IVersionable versionable)
64
- {
65
- if (!_isDeployed) { revert ErrorNotYetDeployed(); }
66
-
67
- address currentProxyOwner = getOwner();
68
- ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
69
- ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
70
- bytes memory data = getUpgradeData(newImplementation, currentProxyOwner, upgradeData);
71
-
72
- proxyAdmin.upgradeAndCall(
73
- proxy,
74
- newImplementation,
75
- data);
76
-
77
- versionable = IVersionable(address(_proxy));
78
-
79
- emit LogProxyUpgraded(address(_proxy), newImplementation);
80
-
81
- }
82
-
83
- function getDeployData(address implementation, address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
84
- return abi.encodeWithSelector(IVersionable.initialize.selector, implementation, proxyOwner, deployData);
85
- }
86
-
87
- function getUpgradeData(address implementation, address proxyOwner, bytes memory upgradeData) public pure returns (bytes memory data) {
88
- return abi.encodeWithSelector(IVersionable.upgrade.selector, implementation, proxyOwner, upgradeData);
89
- }
90
-
91
- function getProxy() public returns (UpgradableProxyWithAdmin) {
92
- return _proxy;
93
- }
94
- }