@etherisc/gif-next 0.0.2-86f4673-518 → 0.0.2-8773a53-517

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 (676) hide show
  1. package/README.md +54 -88
  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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  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 +1518 -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/{components → distribution}/Distribution.sol/Distribution.json +390 -334
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -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 +945 -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 +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +235 -1591
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +291 -208
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2729
  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 +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +676 -369
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +375 -475
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +254 -130
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  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 +25 -150
  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 +1155 -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/{instance/base/ComponentService.sol/ComponentService.json → oracle/IOracleService.sol/IOracleService.json} +274 -353
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +501 -422
  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 +1510 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +499 -370
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +418 -366
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1652 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -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/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +405 -402
  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 +1339 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +121 -247
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +319 -298
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +262 -225
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +422 -250
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +116 -175
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1324 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -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 +1238 -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 +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -277
  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 +453 -34
  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 +407 -306
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +246 -126
  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 +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +307 -177
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +219 -245
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +222 -232
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +224 -113
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +246 -217
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -40
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -40
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -34
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +76 -164
  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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +19 -78
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -47
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +28 -90
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -36
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +88 -208
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/distribution/Distribution.sol +295 -0
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  324. package/contracts/instance/IInstance.sol +61 -47
  325. package/contracts/instance/IInstanceService.sol +57 -24
  326. package/contracts/instance/Instance.sol +177 -191
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +181 -61
  330. package/contracts/instance/InstanceService.sol +316 -306
  331. package/contracts/instance/InstanceServiceManager.sol +13 -27
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  338. package/contracts/instance/module/IAccess.sol +19 -20
  339. package/contracts/instance/module/IBundle.sol +8 -8
  340. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +22 -22
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +56 -17
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +441 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +133 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +149 -0
  360. package/contracts/pool/Pool.sol +328 -0
  361. package/contracts/pool/PoolService.sol +525 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/product/ApplicationServiceManager.sol +38 -0
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +424 -0
  368. package/contracts/product/ClaimServiceManager.sol +38 -0
  369. package/contracts/{instance/service → product}/IApplicationService.sol +17 -37
  370. package/contracts/product/IClaimService.sol +100 -0
  371. package/contracts/product/IPolicyService.sol +84 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +542 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +411 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +16 -1
  383. package/contracts/registry/IRegistry.sol +61 -26
  384. package/contracts/registry/IRegistryService.sol +47 -43
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +252 -138
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +98 -107
  389. package/contracts/registry/RegistryServiceManager.sol +24 -33
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +262 -60
  394. package/contracts/shared/Component.sol +281 -0
  395. package/contracts/shared/ComponentService.sol +650 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/IComponent.sol +71 -0
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +6 -11
  404. package/contracts/shared/IPolicyHolder.sol +29 -10
  405. package/contracts/shared/IRegistryLinked.sol +0 -4
  406. package/contracts/shared/IService.sol +15 -6
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -3
  409. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  410. package/contracts/shared/KeyValueStore.sol +131 -0
  411. package/contracts/shared/Lifecycle.sol +77 -0
  412. package/contracts/shared/NftIdSet.sol +65 -0
  413. package/contracts/shared/NftOwnable.sol +12 -95
  414. package/contracts/shared/PolicyHolder.sol +41 -23
  415. package/contracts/shared/Registerable.sol +15 -21
  416. package/contracts/shared/RegistryLinked.sol +5 -26
  417. package/contracts/shared/Service.sol +52 -30
  418. package/contracts/shared/TokenHandler.sol +41 -6
  419. package/contracts/staking/IStaking.sol +167 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +231 -0
  422. package/contracts/staking/Staking.sol +516 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +135 -0
  432. package/contracts/{types → type}/Blocknumber.sol +27 -3
  433. package/contracts/type/ClaimId.sol +75 -0
  434. package/contracts/{types → type}/DistributorType.sol +2 -2
  435. package/contracts/{types → type}/Fee.sol +33 -23
  436. package/contracts/{types → type}/NftId.sol +21 -15
  437. package/contracts/{types → type}/NftIdSet.sol +2 -2
  438. package/contracts/type/ObjectType.sol +271 -0
  439. package/contracts/type/PayoutId.sol +82 -0
  440. package/contracts/{types → type}/Referral.sol +6 -1
  441. package/contracts/type/RequestId.sol +75 -0
  442. package/contracts/{types → type}/RiskId.sol +1 -1
  443. package/contracts/type/RoleId.sol +174 -0
  444. package/contracts/type/Seconds.sol +93 -0
  445. package/contracts/type/Selector.sol +102 -0
  446. package/contracts/{types → type}/StateId.sol +34 -4
  447. package/contracts/type/String.sol +53 -0
  448. package/contracts/{types → type}/Timestamp.sol +34 -15
  449. package/contracts/{types → type}/UFixed.sol +35 -9
  450. package/contracts/{types → type}/Version.sol +5 -2
  451. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  452. package/contracts/upgradeability/ProxyManager.sol +198 -0
  453. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  454. package/contracts/upgradeability/Versionable.sol +59 -0
  455. package/package.json +8 -5
  456. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  457. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  458. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  463. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  466. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  468. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  470. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  472. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  474. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  476. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  478. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  480. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  482. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  484. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  486. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  488. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  490. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  492. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  495. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  497. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  499. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  501. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  503. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  505. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  506. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  508. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  510. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  515. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  517. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1117
  521. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1318
  523. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -586
  525. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -923
  527. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -574
  529. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1378
  537. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -642
  539. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -957
  541. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -574
  543. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1007
  545. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -574
  547. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  549. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  551. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  552. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  553. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  555. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -499
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -446
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  569. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -759
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  577. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  578. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  581. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  583. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  585. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  587. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  589. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  590. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  591. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  593. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  594. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  595. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  597. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  599. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  601. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  603. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  605. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  608. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  610. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  612. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  614. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  616. package/contracts/components/Component.sol +0 -230
  617. package/contracts/components/Distribution.sol +0 -156
  618. package/contracts/components/IComponent.sol +0 -50
  619. package/contracts/components/IDistributionComponent.sol +0 -47
  620. package/contracts/components/IPoolComponent.sol +0 -87
  621. package/contracts/components/IProductComponent.sol +0 -39
  622. package/contracts/components/Pool.sol +0 -254
  623. package/contracts/components/Product.sol +0 -278
  624. package/contracts/experiment/cloning/Cloner.sol +0 -47
  625. package/contracts/experiment/errors/Require.sol +0 -38
  626. package/contracts/experiment/errors/Revert.sol +0 -44
  627. package/contracts/experiment/inheritance/A.sol +0 -53
  628. package/contracts/experiment/inheritance/B.sol +0 -28
  629. package/contracts/experiment/inheritance/C.sol +0 -34
  630. package/contracts/experiment/inheritance/IA.sol +0 -13
  631. package/contracts/experiment/inheritance/IB.sol +0 -10
  632. package/contracts/experiment/inheritance/IC.sol +0 -12
  633. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  634. package/contracts/experiment/statemachine/ISM.sol +0 -25
  635. package/contracts/experiment/statemachine/SM.sol +0 -57
  636. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  637. package/contracts/experiment/types/TypeA.sol +0 -47
  638. package/contracts/experiment/types/TypeB.sol +0 -29
  639. package/contracts/instance/InstanceAccessManager.sol +0 -297
  640. package/contracts/instance/base/ComponentService.sol +0 -134
  641. package/contracts/instance/base/KeyValueStore.sol +0 -172
  642. package/contracts/instance/base/Lifecycle.sol +0 -100
  643. package/contracts/instance/module/ITreasury.sol +0 -23
  644. package/contracts/instance/service/ApplicationService.sol +0 -268
  645. package/contracts/instance/service/BundleService.sol +0 -298
  646. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  647. package/contracts/instance/service/DistributionService.sol +0 -105
  648. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  649. package/contracts/instance/service/IBundleService.sol +0 -54
  650. package/contracts/instance/service/IDistributionService.sol +0 -12
  651. package/contracts/instance/service/IPolicyService.sol +0 -88
  652. package/contracts/instance/service/IPoolService.sol +0 -20
  653. package/contracts/instance/service/IProductService.sol +0 -40
  654. package/contracts/instance/service/PolicyService.sol +0 -524
  655. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  656. package/contracts/instance/service/PoolService.sol +0 -109
  657. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  658. package/contracts/instance/service/ProductService.sol +0 -233
  659. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  660. package/contracts/registry/RegistryAccessManager.sol +0 -216
  661. package/contracts/registry/ReleaseManager.sol +0 -332
  662. package/contracts/shared/ContractDeployerLib.sol +0 -72
  663. package/contracts/shared/ProxyManager.sol +0 -95
  664. package/contracts/shared/Versionable.sol +0 -148
  665. package/contracts/test/TestFee.sol +0 -25
  666. package/contracts/test/TestRegisterable.sol +0 -18
  667. package/contracts/test/TestRoleId.sol +0 -14
  668. package/contracts/test/TestService.sol +0 -25
  669. package/contracts/test/TestVersion.sol +0 -44
  670. package/contracts/test/TestVersionable.sol +0 -17
  671. package/contracts/test/Usdc.sol +0 -26
  672. package/contracts/types/ChainId.sol +0 -38
  673. package/contracts/types/NumberId.sol +0 -52
  674. package/contracts/types/ObjectType.sol +0 -156
  675. package/contracts/types/RoleId.sol +0 -90
  676. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,49 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "VersionPartLib",
4
- "sourceName": "contracts/types/Version.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "VersionPart",
10
- "name": "a",
11
- "type": "uint8"
12
- }
13
- ],
14
- "name": "toInt",
15
- "outputs": [
16
- {
17
- "internalType": "uint256",
18
- "name": "",
19
- "type": "uint256"
20
- }
21
- ],
22
- "stateMutability": "pure",
23
- "type": "function"
24
- },
25
- {
26
- "inputs": [
27
- {
28
- "internalType": "uint256",
29
- "name": "a",
30
- "type": "uint256"
31
- }
32
- ],
33
- "name": "toVersionPart",
34
- "outputs": [
35
- {
36
- "internalType": "VersionPart",
37
- "name": "",
38
- "type": "uint8"
39
- }
40
- ],
41
- "stateMutability": "pure",
42
- "type": "function"
43
- }
44
- ],
45
- "bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea264697066735822122074bb6f75f2cab9692d05e41844bf40283045a9440c662c37a97b2502d38207ed64736f6c63430008140033",
46
- "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea264697066735822122074bb6f75f2cab9692d05e41844bf40283045a9440c662c37a97b2502d38207ed64736f6c63430008140033",
47
- "linkReferences": {},
48
- "deployedLinkReferences": {}
49
- }
@@ -1,230 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
7
-
8
- import {IComponent} from "./IComponent.sol";
9
- import {IProductService} from "../instance/service/IProductService.sol";
10
- import {IInstanceService} from "../instance/IInstanceService.sol";
11
- import {IInstance} from "../instance/IInstance.sol";
12
- import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
13
- import {IRegistry} from "../registry/IRegistry.sol";
14
- import {NftId} from "../types/NftId.sol";
15
- import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
16
- import {VersionPart} from "../types/Version.sol";
17
- import {Registerable} from "../shared/Registerable.sol";
18
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
19
- import {IAccess} from "../instance/module/IAccess.sol";
20
-
21
- // TODO discuss to inherit from oz accessmanaged
22
- // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
23
- // same pattern as for Service which is also upgradeable
24
- abstract contract Component is
25
- Registerable,
26
- IComponent,
27
- AccessManagedUpgradeable
28
- {
29
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
30
- bytes32 public constant CONTRACT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
31
-
32
- struct ComponentStorage {
33
- IInstance _instance; // instance for this component
34
-
35
- string _name; // unique (per instance) component name
36
- IERC20Metadata _token; // token for this component
37
- address _wallet; // wallet for this component (default = component contract itself)
38
- bool _isNftInterceptor; // declares if component is involved in nft transfers
39
- IInstanceService _instanceService; // instance service for this component
40
-
41
- NftId _productNftId; // only relevant for components that are linked to a aproduct
42
- IProductService _productService; // product service for component, might not be relevant for some component types (eg oracles)
43
- }
44
-
45
-
46
- modifier onlyChainNft() {
47
- if(msg.sender != getRegistry().getChainNftAddress()) {
48
- revert ErrorComponentNotChainNft(msg.sender);
49
- }
50
- _;
51
- }
52
-
53
-
54
- modifier onlyProductService() {
55
- if(msg.sender != address(_getComponentStorage()._productService)) {
56
- revert ErrorComponentNotProductService(msg.sender);
57
- }
58
- _;
59
- }
60
-
61
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
62
- assembly {
63
- $.slot := CONTRACT_LOCATION_V1
64
- }
65
- }
66
-
67
- function initializeComponent(
68
- address registry,
69
- NftId instanceNftId,
70
- string memory name,
71
- address token,
72
- ObjectType componentType,
73
- bool isInterceptor,
74
- address initialOwner,
75
- bytes memory data
76
- )
77
- public
78
- virtual
79
- onlyInitializing()
80
- {
81
- ComponentStorage storage $ = _getComponentStorage();
82
- initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
83
-
84
- // set unique name of component
85
- $._name = name;
86
- $._isNftInterceptor = isInterceptor;
87
-
88
- // set and check linked instance
89
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
90
- $._instance = IInstance(instanceInfo.objectAddress);
91
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
92
- revert ErrorComponentNotInstance(instanceNftId, instanceInfo.objectAddress);
93
- }
94
-
95
- // initialize AccessManagedUpgradeable
96
- __AccessManaged_init($._instance.authority());
97
-
98
- // set linked services
99
- VersionPart gifVersion = $._instance.getMajorVersion();
100
- $._instanceService = IInstanceService(getRegistry().getServiceAddress(INSTANCE(), gifVersion));
101
- $._productService = IProductService(getRegistry().getServiceAddress(PRODUCT(), gifVersion));
102
-
103
- // set wallet and token
104
- $._wallet = address(this);
105
- $._token = IERC20Metadata(token);
106
-
107
- registerInterface(type(IComponent).interfaceId);
108
- }
109
-
110
- /// @dev callback function for nft transfers. may only be called by chain nft contract.
111
- /// default implementation is empty. overriding functions MUST add onlyChainNft modifier
112
- function nftTransferFrom(address from, address to, uint256 tokenId)
113
- external
114
- virtual override
115
- onlyChainNft()
116
- { }
117
-
118
- // TODO discuss replacement with modifier restricted from accessmanaged
119
- function lock() external onlyOwner override {
120
- _getComponentStorage()._instanceService.setTargetLocked(getName(), true);
121
- }
122
-
123
- function unlock() external onlyOwner override {
124
- _getComponentStorage()._instanceService.setTargetLocked(getName(), false);
125
- }
126
-
127
- // only product service may set product nft id during registration of product setup
128
- function setProductNftId(NftId productNftId)
129
- external
130
- override
131
- onlyProductService()
132
- {
133
- ComponentStorage storage $ = _getComponentStorage();
134
-
135
- if($._productNftId.gtz()) {
136
- revert ErrorComponentProductNftAlreadySet();
137
- }
138
-
139
- $._productNftId = productNftId;
140
- }
141
-
142
- /// @dev Sets the wallet address for the component.
143
- /// if the current wallet has tokens, these will be transferred.
144
- /// if the new wallet address is externally owned, an approval from the
145
- /// owner of the external wallet for the component to move all tokens must exist.
146
- function setWallet(address newWallet)
147
- external
148
- override
149
- onlyOwner
150
- {
151
- ComponentStorage storage $ = _getComponentStorage();
152
-
153
- address currentWallet = $._wallet;
154
- uint256 currentBalance = $._token.balanceOf(currentWallet);
155
-
156
- // checks
157
- if (newWallet == address(0)) {
158
- revert ErrorComponentWalletAddressZero();
159
- }
160
- if (newWallet == currentWallet) {
161
- revert ErrorComponentWalletAddressIsSameAsCurrent(newWallet);
162
- }
163
-
164
- if (currentBalance > 0) {
165
- if (currentWallet == address(this)) {
166
- // move tokens from component smart contract to external wallet
167
- } else {
168
- // move tokens from external wallet to component smart contract or another external wallet
169
- uint256 allowance = $._token.allowance(currentWallet, address(this));
170
- if (allowance < currentBalance) {
171
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
172
- }
173
- }
174
- }
175
-
176
- // effects
177
- $._wallet = newWallet;
178
- emit LogComponentWalletAddressChanged(newWallet);
179
-
180
- // interactions
181
- if (currentBalance > 0) {
182
- // transfer tokens from current wallet to new wallet
183
- if (currentWallet == address(this)) {
184
- // transferFrom requires self allowance too
185
- $._token.approve(address(this), currentBalance);
186
- }
187
-
188
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
189
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
190
- }
191
- }
192
-
193
- function getWallet()
194
- public
195
- view
196
- override
197
- returns (address walletAddress)
198
- {
199
- return _getComponentStorage()._wallet;
200
- }
201
-
202
- function getToken() public view override returns (IERC20Metadata token) {
203
- return _getComponentStorage()._token;
204
- }
205
-
206
- function isNftInterceptor() public view override returns(bool isInterceptor) {
207
- return _getComponentStorage()._isNftInterceptor;
208
- }
209
-
210
- function getInstance() public view override returns (IInstance instance) {
211
- return _getComponentStorage()._instance;
212
- }
213
-
214
- function getName() public view override returns(string memory name) {
215
- return _getComponentStorage()._name;
216
- }
217
-
218
- function getProductNftId() public view override returns (NftId productNftId) {
219
- return _getComponentStorage()._productNftId;
220
- }
221
-
222
- function getInstanceService() public view returns (IInstanceService) {
223
- return _getComponentStorage()._instanceService;
224
- }
225
-
226
- function getProductService() public view returns (IProductService) {
227
- return _getComponentStorage()._productService;
228
- }
229
-
230
- }
@@ -1,156 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {DISTRIBUTION} from "../types/ObjectType.sol";
5
- import {IDistributionService} from "../instance/service/IDistributionService.sol";
6
- import {IProductService} from "../instance/service/IProductService.sol";
7
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {Fee, FeeLib} from "../types/Fee.sol";
10
- import {Component} from "./Component.sol";
11
- import {IDistributionComponent} from "./IDistributionComponent.sol";
12
- import {IRegistry} from "../registry/IRegistry.sol";
13
- import {IRegisterable} from "../shared/IRegisterable.sol";
14
- import {ISetup} from "../instance/module/ISetup.sol";
15
- import {Registerable} from "../shared/Registerable.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {InstanceReader} from "../instance/InstanceReader.sol";
18
-
19
- abstract contract Distribution is
20
- Component,
21
- IDistributionComponent
22
- {
23
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
24
- bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
25
-
26
- struct DistributionStorage {
27
- Fee _initialDistributionFee;
28
- TokenHandler _tokenHandler;
29
- IDistributionService _distributionService;
30
- }
31
-
32
-
33
- function initializeDistribution(
34
- address registry,
35
- NftId instanceNftId,
36
- string memory name,
37
- address token,
38
- Fee memory distributionFee,
39
- address initialOwner,
40
- bytes memory data
41
- )
42
- public
43
- virtual
44
- onlyInitializing()
45
- {
46
- initializeComponent(registry, instanceNftId, name, token, DISTRIBUTION(), true, initialOwner, data);
47
-
48
- DistributionStorage storage $ = _getDistributionStorage();
49
- // TODO add validation
50
- $._initialDistributionFee = distributionFee;
51
- $._tokenHandler = new TokenHandler(token);
52
- $._distributionService = getInstance().getDistributionService();
53
-
54
- registerInterface(type(IDistributionComponent).interfaceId);
55
- }
56
-
57
- function setFees(
58
- Fee memory distributionFee
59
- )
60
- external
61
- override
62
- onlyOwner
63
- restricted()
64
- {
65
- _getDistributionStorage()._distributionService.setFees(distributionFee);
66
- }
67
-
68
- function calculateFeeAmount(
69
- ReferralId referralId,
70
- uint256 netPremiumAmount
71
- )
72
- external
73
- view
74
- virtual override
75
- returns (uint256 feeAmount)
76
- {
77
- ISetup.DistributionSetupInfo memory setupInfo = getSetupInfo();
78
- Fee memory fee = setupInfo.distributionFee;
79
- (feeAmount,) = FeeLib.calculateFee(fee, netPremiumAmount);
80
- }
81
-
82
-
83
- function calculateRenewalFeeAmount(
84
- ReferralId referralId,
85
- uint256 netPremiumAmount
86
- )
87
- external
88
- view
89
- virtual override
90
- returns (uint256 feeAmount)
91
- {
92
- // default is no fees
93
- return 0 * netPremiumAmount;
94
- }
95
-
96
- function processSale(
97
- ReferralId referralId,
98
- uint256 feeAmount
99
- )
100
- external
101
- onlyOwner
102
- restricted()
103
- virtual override
104
- {
105
- // default is no action
106
- }
107
-
108
- function processRenewal(
109
- ReferralId referralId,
110
- uint256 feeAmount
111
- )
112
- external
113
- onlyOwner
114
- restricted()
115
- virtual override
116
- {
117
- // default is no action
118
- }
119
-
120
- function referralIsValid(ReferralId referralId) external view returns (bool isValid) {
121
- // default is invalid
122
- return false;
123
- }
124
-
125
- function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
126
- InstanceReader reader = getInstance().getInstanceReader();
127
- setupInfo = reader.getDistributionSetupInfo(getNftId());
128
-
129
- // fallback to initial setup info (wallet is always != address(0))
130
- if(setupInfo.wallet == address(0)) {
131
- setupInfo = _getInitialSetupInfo();
132
- }
133
- }
134
-
135
- function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
136
- DistributionStorage storage $ = _getDistributionStorage();
137
- return ISetup.DistributionSetupInfo(
138
- zeroNftId(),
139
- $._tokenHandler,
140
- $._initialDistributionFee,
141
- address(this)
142
- );
143
- }
144
-
145
-
146
- /// @dev returns true iff the component needs to be called when selling/renewing policis
147
- function isVerifying() external view returns (bool verifying) {
148
- return true;
149
- }
150
-
151
- function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
152
- assembly {
153
- $.slot := DISTRIBUTION_STORAGE_LOCATION_V1
154
- }
155
- }
156
- }
@@ -1,50 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegisterable} from "../shared/IRegisterable.sol";
7
- import {IInstance} from "../instance/IInstance.sol";
8
- import {IInstanceService} from "../instance/IInstanceService.sol";
9
- import {IProductService} from "../instance/service/IProductService.sol";
10
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
- import {NftId} from "../types/NftId.sol";
12
-
13
- interface IComponent is
14
- IRegisterable,
15
- ITransferInterceptor
16
- {
17
-
18
- error ErrorComponentNotChainNft(address caller);
19
- error ErrorComponentNotProductService(address caller);
20
- error ErrorComponentNotInstance(NftId instanceNftId, address instance);
21
- error ErrorComponentProductNftAlreadySet();
22
- error ErrorComponentWalletAddressZero();
23
- error ErrorComponentWalletAddressIsSameAsCurrent(address newWallet);
24
- error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
25
- error ErrorComponentUnauthorized(address caller, uint64 requiredRoleIdNum);
26
-
27
- event LogComponentWalletAddressChanged(address newWallet);
28
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
29
-
30
- function getName() external view returns (string memory name);
31
-
32
- // TODO remove and replace with accessmanaged target locking mechanism
33
- function lock() external;
34
- function unlock() external;
35
-
36
- function getToken() external view returns (IERC20Metadata token);
37
-
38
- function setWallet(address walletAddress) external;
39
- function getWallet() external view returns (address walletAddress);
40
-
41
- function isNftInterceptor() external view returns(bool isInterceptor);
42
-
43
- function getInstance() external view returns (IInstance instance);
44
-
45
- function setProductNftId(NftId productNftId) external;
46
- function getProductNftId() external view returns (NftId productNftId);
47
-
48
- function getInstanceService() external view returns (IInstanceService);
49
- function getProductService() external view returns (IProductService);
50
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {ReferralId} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
-
10
- interface IDistributionComponent is IComponent {
11
-
12
- function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
13
-
14
- function setFees(
15
- Fee memory distributionFee
16
- ) external;
17
-
18
- function calculateFeeAmount(
19
- ReferralId referralId,
20
- uint256 netPremiumAmount
21
- ) external view returns (uint256 feeAmount);
22
-
23
- function calculateRenewalFeeAmount(
24
- ReferralId referralId,
25
- uint256 netPremiumAmount
26
- ) external view returns (uint256 feeAmount);
27
-
28
- /// @dev callback from product service when selling a policy for a specific referralId
29
- /// the used referral id and the collected fee are provided as parameters
30
- /// the component implementation can then process this information accordingly
31
- function processSale(
32
- ReferralId referralId,
33
- uint256 feeAmount
34
- ) external;
35
-
36
- /// @dev callback from product service when a policy is renews for a specific referralId
37
- function processRenewal(
38
- ReferralId referralId,
39
- uint256 feeAmount
40
- ) external;
41
-
42
- /// @dev returns true iff the referral id is valid
43
- function referralIsValid(ReferralId referralId) external view returns (bool isValid);
44
-
45
- /// @dev returns true iff the component needs to be called when selling/renewing policis
46
- function isVerifying() external view returns (bool verifying);
47
- }
@@ -1,87 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {UFixed} from "../types/UFixed.sol";
9
-
10
- /// @dev pool components hold and manage the collateral to cover active policies
11
- /// pools come in different flavors
12
- interface IPoolComponent is IComponent {
13
-
14
- event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
15
-
16
- error ErrorPoolNotPoolService(address service);
17
-
18
- function getSetupInfo() external view returns (ISetup.PoolSetupInfo memory setupInfo);
19
-
20
- function setFees(
21
- Fee memory poolFee,
22
- Fee memory stakingFee,
23
- Fee memory performanceFee
24
- ) external;
25
-
26
- /// @dev sets an additional bundle fee, this fee is added on top of the poolFee and deducted from the premium amounts.
27
- /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
28
- function setBundleFee(
29
- NftId bundleNftId,
30
- Fee memory fee
31
- ) external;
32
-
33
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
34
- /// the pool has the option to check the details and object to underwriting by reverting.
35
- /// the function is only called for "active" pools that ask to be involved/notified
36
- /// by product related state changes.
37
- function verifyApplication(
38
- NftId applicationNftId,
39
- bytes memory policyData,
40
- bytes memory bundleFilter,
41
- uint256 collateralizationAmount
42
- ) external;
43
-
44
- function lockBundle(NftId bundleNftId) external;
45
-
46
- function unlockBundle(NftId bundleNftId) external;
47
-
48
- /// @dev defines the multiplier to calculate the required collateral to cover a given sum insured amount
49
- /// default implementation returns 100%
50
- function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
51
-
52
- /// @dev defines the amount of collateral held in the pool.
53
- /// if the value is < 100% the pool is required to hold a policy that covers the locally missing collateral
54
- /// default implementation returns 100%
55
- function getRetentionLevel() external view returns (UFixed retentionLevel);
56
-
57
- /// @dev declares if pool intercept transfers of bundle nft ids
58
- /// - yes: pool may block transfer of bundle ownership or simply updates some bookkeeping related to bundle ownership. callback function is nftTransferFrom
59
- /// - no: pool is not involved in transfer of bundle ownership
60
- /// default implementation returns false (no)
61
- function isInterceptingBundleTransfers() external view returns (bool);
62
-
63
- /// @dev declares if pool relies on external management of collateral (yes/no):
64
- /// - yes: underwriting of new policies does not require an actual token balance, instead it is assumed that the pool owner will manage funds externally and inject enough tokens to allow process confirmed payouts
65
- /// - no: the pool smart contract ensures that the necessary capacity of the pool prior to underwriting.
66
- /// default implementation returns false (no)
67
- function isExternallyManaged() external view returns (bool);
68
-
69
- /// @dev declares if pool component is actively involved in underwriting (yes/no):
70
- /// - yes: verifying pools components actively confirm underwriting applications, ie the pool component logic explicitly needs to confirm the locking of collateral to cover the sum insured of the policy
71
- /// - no: underwriting a policy does not require any interaction with the pool component if the covering bundle can provide the necessary captial
72
- /// default implementation returnsfalse (no)
73
- function isVerifyingApplications() external view returns (bool);
74
-
75
- /// @dev returns true iff the policy application data in policyData matches
76
- /// with the bundle filter criteria encoded in bundleFilter
77
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
78
- /// default implementation returns true
79
- function policyMatchesBundle(
80
- bytes memory policyData,
81
- bytes memory bundleFilter
82
- )
83
- external
84
- view
85
- returns (bool isMatching);
86
-
87
- }
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {RiskId} from "../types/RiskId.sol";
10
-
11
- interface IProductComponent is IComponent {
12
-
13
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
18
- ) external;
19
-
20
- function calculatePremium(
21
- uint256 sumInsuredAmount,
22
- RiskId riskId,
23
- uint256 lifetime,
24
- bytes memory applicationData,
25
- NftId bundleNftId,
26
- ReferralId referralId
27
- ) external view returns (uint256 premiumAmount);
28
-
29
- function calculateNetPremium(
30
- uint256 sumInsuredAmount,
31
- RiskId riskId,
32
- uint256 lifetime,
33
- bytes memory applicationData
34
- ) external view returns (uint256 netPremiumAmount);
35
-
36
-
37
- function getPoolNftId() external view returns (NftId poolNftId);
38
- function getDistributionNftId() external view returns (NftId distributionNftId);
39
- }