@etherisc/gif-next 0.0.2-aaa8646-641 → 0.0.2-aac44b0-298

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 (684) hide show
  1. package/README.md +52 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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 +414 -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 +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1471 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -310
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +223 -133
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +120 -107
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +170 -122
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -236
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +981 -331
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -277
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +175 -102
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1438 -433
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +233 -287
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +290 -183
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +325 -447
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +313 -63
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +519 -194
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +389 -424
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +416 -435
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +58 -13
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +224 -251
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +154 -94
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +286 -230
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1843 -0
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  202. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  224. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +225 -268
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  239. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +695 -605
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +596 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +289 -0
  330. package/contracts/authorization/IAccess.sol +49 -0
  331. package/contracts/authorization/IAccessAdmin.sol +137 -0
  332. package/contracts/authorization/IAuthorization.sol +60 -0
  333. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  334. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  335. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  336. package/contracts/distribution/BasicDistribution.sol +139 -0
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  338. package/contracts/{components → distribution}/Distribution.sol +165 -164
  339. package/contracts/distribution/DistributionService.sol +355 -0
  340. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  341. package/contracts/distribution/IDistributionComponent.sol +52 -0
  342. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -24
  343. package/contracts/examples/fire/DamageLevel.sol +59 -0
  344. package/contracts/examples/fire/FirePool.sol +86 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +431 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  354. package/contracts/instance/IInstance.sol +33 -47
  355. package/contracts/instance/IInstanceService.sol +36 -45
  356. package/contracts/instance/Instance.sol +131 -136
  357. package/contracts/instance/InstanceAdmin.sol +277 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  359. package/contracts/instance/InstanceReader.sol +236 -61
  360. package/contracts/instance/InstanceService.sol +269 -164
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +152 -73
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/base/Cloneable.sol +28 -0
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  368. package/contracts/instance/module/IAccess.sol +4 -12
  369. package/contracts/instance/module/IBundle.sol +6 -9
  370. package/contracts/instance/module/IComponents.sol +27 -18
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +44 -36
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +47 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +66 -0
  380. package/contracts/oracle/Oracle.sol +156 -0
  381. package/contracts/oracle/OracleService.sol +292 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +175 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  385. package/contracts/pool/BundleService.sol +485 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +140 -0
  388. package/contracts/pool/IPoolComponent.sol +62 -0
  389. package/contracts/pool/IPoolService.sol +172 -0
  390. package/contracts/pool/Pool.sol +345 -0
  391. package/contracts/pool/PoolService.sol +620 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +259 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +49 -0
  396. package/contracts/product/BasicProductAuthorization.sol +42 -0
  397. package/contracts/product/ClaimService.sol +614 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +14 -12
  400. package/contracts/product/IClaimService.sol +123 -0
  401. package/contracts/product/IPolicyService.sol +82 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +59 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +695 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +432 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +75 -38
  413. package/contracts/registry/IRegistry.sol +98 -26
  414. package/contracts/registry/IRegistryService.sol +34 -40
  415. package/contracts/registry/ITransferInterceptor.sol +1 -2
  416. package/contracts/registry/Registry.sol +453 -195
  417. package/contracts/registry/RegistryAdmin.sol +462 -0
  418. package/contracts/registry/RegistryService.sol +87 -132
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  421. package/contracts/registry/ReleaseRegistry.sol +485 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +229 -0
  425. package/contracts/shared/ComponentService.sol +779 -0
  426. package/contracts/shared/ComponentServiceManager.sol +38 -0
  427. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  428. package/contracts/shared/ContractLib.sol +54 -0
  429. package/contracts/shared/IComponent.sol +67 -0
  430. package/contracts/shared/IComponentService.sol +130 -0
  431. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  432. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  433. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  434. package/contracts/shared/INftOwnable.sol +4 -2
  435. package/contracts/shared/IPolicyHolder.sol +23 -14
  436. package/contracts/shared/IRegisterable.sol +11 -0
  437. package/contracts/shared/IRegistryLinked.sol +0 -1
  438. package/contracts/shared/IService.sol +12 -3
  439. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  440. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  441. package/contracts/shared/KeyValueStore.sol +131 -0
  442. package/contracts/shared/Lifecycle.sol +88 -0
  443. package/contracts/shared/NftIdSet.sol +65 -0
  444. package/contracts/shared/NftOwnable.sol +32 -25
  445. package/contracts/shared/PolicyHolder.sol +22 -41
  446. package/contracts/shared/Registerable.sol +32 -23
  447. package/contracts/shared/RegistryLinked.sol +9 -19
  448. package/contracts/shared/Service.sol +48 -36
  449. package/contracts/shared/TokenHandler.sol +376 -12
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  451. package/contracts/staking/IStaking.sol +173 -0
  452. package/contracts/staking/IStakingService.sol +157 -0
  453. package/contracts/staking/StakeManagerLib.sol +224 -0
  454. package/contracts/staking/Staking.sol +505 -0
  455. package/contracts/staking/StakingLifecycle.sol +23 -0
  456. package/contracts/staking/StakingManager.sol +52 -0
  457. package/contracts/staking/StakingReader.sol +190 -0
  458. package/contracts/staking/StakingService.sol +453 -0
  459. package/contracts/staking/StakingServiceManager.sol +44 -0
  460. package/contracts/staking/StakingStore.sol +605 -0
  461. package/contracts/staking/TargetManagerLib.sol +211 -0
  462. package/contracts/{types → type}/AddressSet.sol +1 -1
  463. package/contracts/type/Amount.sol +150 -0
  464. package/contracts/{types → type}/Blocknumber.sol +26 -3
  465. package/contracts/{types → type}/ClaimId.sol +6 -1
  466. package/contracts/{types → type}/Fee.sol +24 -22
  467. package/contracts/{types → type}/NftId.sol +15 -16
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +276 -0
  470. package/contracts/{types → type}/PayoutId.sol +10 -10
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +17 -3
  474. package/contracts/type/RoleId.sol +162 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +41 -2
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +17 -3
  480. package/contracts/{types → type}/UFixed.sol +38 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +11 -7
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  497. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  499. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  500. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  502. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  503. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  504. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  505. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  506. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  513. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  516. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -902
  518. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -649
  520. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1326
  522. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  524. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1072
  526. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  528. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1515
  530. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -757
  532. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1575
  542. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  544. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1481
  546. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  548. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
  550. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
  552. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
  554. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  556. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  557. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  558. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  559. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  560. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  562. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  564. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  569. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  572. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  574. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  576. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  578. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  580. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  582. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  584. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  585. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  586. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  587. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  588. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  590. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  592. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  594. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  596. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  598. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  600. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  602. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  604. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  605. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  606. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  608. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  610. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  612. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  614. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  616. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  618. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  620. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  622. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  625. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  627. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  629. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  631. package/contracts/components/Component.sol +0 -253
  632. package/contracts/components/IComponent.sol +0 -76
  633. package/contracts/components/IDistributionComponent.sol +0 -71
  634. package/contracts/components/IPoolComponent.sol +0 -113
  635. package/contracts/components/IProductComponent.sol +0 -40
  636. package/contracts/components/Pool.sol +0 -302
  637. package/contracts/components/Product.sol +0 -374
  638. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  639. package/contracts/instance/Cloneable.sol +0 -51
  640. package/contracts/instance/InstanceAccessManager.sol +0 -541
  641. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -300
  642. package/contracts/instance/base/ComponentService.sol +0 -148
  643. package/contracts/instance/base/KeyValueStore.sol +0 -180
  644. package/contracts/instance/base/Lifecycle.sol +0 -117
  645. package/contracts/instance/module/ISetup.sol +0 -33
  646. package/contracts/instance/module/ITreasury.sol +0 -23
  647. package/contracts/instance/service/ApplicationService.sol +0 -185
  648. package/contracts/instance/service/BundleService.sol +0 -440
  649. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  650. package/contracts/instance/service/ClaimService.sol +0 -239
  651. package/contracts/instance/service/DistributionService.sol +0 -342
  652. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  653. package/contracts/instance/service/IBundleService.sol +0 -102
  654. package/contracts/instance/service/IClaimService.sol +0 -92
  655. package/contracts/instance/service/IPolicyService.sol +0 -142
  656. package/contracts/instance/service/IPoolService.sol +0 -102
  657. package/contracts/instance/service/IPricingService.sol +0 -36
  658. package/contracts/instance/service/IProductService.sol +0 -40
  659. package/contracts/instance/service/PolicyService.sol +0 -579
  660. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  661. package/contracts/instance/service/PoolService.sol +0 -338
  662. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  663. package/contracts/instance/service/PricingService.sol +0 -275
  664. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  665. package/contracts/instance/service/ProductService.sol +0 -210
  666. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  667. package/contracts/registry/RegistryAccessManager.sol +0 -216
  668. package/contracts/registry/ReleaseManager.sol +0 -324
  669. package/contracts/shared/ContractDeployerLib.sol +0 -72
  670. package/contracts/test/TestFee.sol +0 -25
  671. package/contracts/test/TestRegisterable.sol +0 -18
  672. package/contracts/test/TestRoleId.sol +0 -14
  673. package/contracts/test/TestService.sol +0 -25
  674. package/contracts/test/TestToken.sol +0 -26
  675. package/contracts/test/TestVersion.sol +0 -44
  676. package/contracts/test/TestVersionable.sol +0 -17
  677. package/contracts/types/Amount.sol +0 -70
  678. package/contracts/types/ChainId.sol +0 -38
  679. package/contracts/types/NumberId.sol +0 -52
  680. package/contracts/types/ObjectType.sol +0 -161
  681. package/contracts/types/RoleId.sol +0 -97
  682. package/contracts/types/Seconds.sol +0 -54
  683. /package/contracts/{types → type}/DistributorType.sol +0 -0
  684. /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": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
46
- "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
47
- "linkReferences": {},
48
- "deployedLinkReferences": {}
49
- }
@@ -1,253 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
-
9
- import {IComponent} from "./IComponent.sol";
10
- import {IComponents} from "../instance/module/IComponents.sol";
11
- import {IProductService} from "../instance/service/IProductService.sol";
12
- import {IInstanceService} from "../instance/IInstanceService.sol";
13
- import {IInstance} from "../instance/IInstance.sol";
14
- import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
15
- import {InstanceReader} from "../instance/InstanceReader.sol";
16
- import {IRegistry} from "../registry/IRegistry.sol";
17
- import {NftId} from "../types/NftId.sol";
18
- import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
19
- import {VersionPart} from "../types/Version.sol";
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
22
- import {IAccess} from "../instance/module/IAccess.sol";
23
- import {VersionPart} from "../types/Version.sol";
24
-
25
- // TODO discuss to inherit from oz accessmanaged
26
- // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
27
- // same pattern as for Service which is also upgradeable
28
- abstract contract Component is
29
- Registerable,
30
- IComponent,
31
- AccessManagedUpgradeable
32
- {
33
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
34
- bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
35
-
36
- struct ComponentStorage {
37
- string _name; // unique (per instance) component name
38
- IERC20Metadata _token; // token for this component
39
- IInstance _instance; // instance for this component
40
- address _wallet; // wallet for this component (default = component contract itself)
41
- InstanceReader _instanceReader; // instance reader for this component
42
- bool _isNftInterceptor; // declares if component is involved in nft transfers
43
- NftId _productNftId; // only relevant for components that are linked to a aproduct
44
- }
45
-
46
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
47
- assembly {
48
- $.slot := COMPONENT_LOCATION_V1
49
- }
50
- }
51
-
52
- modifier onlyChainNft() {
53
- if(msg.sender != getRegistry().getChainNftAddress()) {
54
- revert ErrorComponentNotChainNft(msg.sender);
55
- }
56
- _;
57
- }
58
-
59
- function initializeComponent(
60
- address registry,
61
- NftId instanceNftId,
62
- string memory name,
63
- address token,
64
- ObjectType componentType,
65
- bool isInterceptor,
66
- address initialOwner,
67
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
68
- )
69
- public
70
- virtual
71
- onlyInitializing()
72
- {
73
- initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, registryData);
74
-
75
- // set and check linked instance
76
- ComponentStorage storage $ = _getComponentStorage();
77
- $._instance = IInstance(
78
- getRegistry().getObjectInfo(instanceNftId).objectAddress);
79
-
80
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
81
- revert ErrorComponentNotInstance(instanceNftId);
82
- }
83
-
84
- // initialize AccessManagedUpgradeable
85
- __AccessManaged_init($._instance.authority());
86
-
87
- // set component state
88
- $._name = name;
89
- $._isNftInterceptor = isInterceptor;
90
- $._instanceReader = $._instance.getInstanceReader();
91
- $._wallet = address(this);
92
- $._token = IERC20Metadata(token);
93
-
94
- registerInterface(type(IAccessManaged).interfaceId);
95
- registerInterface(type(IComponent).interfaceId);
96
- }
97
-
98
- function lock() external onlyOwner override {
99
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
100
- }
101
-
102
- function unlock() external onlyOwner override {
103
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
104
- }
105
-
106
- function setWallet(address newWallet)
107
- external
108
- override
109
- onlyOwner
110
- {
111
- ComponentStorage storage $ = _getComponentStorage();
112
-
113
- address currentWallet = $._wallet;
114
- uint256 currentBalance = $._token.balanceOf(currentWallet);
115
-
116
- // checks
117
- if (newWallet == address(0)) {
118
- revert ErrorComponentWalletAddressZero();
119
- }
120
-
121
- if (newWallet == currentWallet) {
122
- revert ErrorComponentWalletAddressIsSameAsCurrent();
123
- }
124
-
125
- if (currentBalance > 0) {
126
- if (currentWallet == address(this)) {
127
- // move tokens from component smart contract to external wallet
128
- } else {
129
- // move tokens from external wallet to component smart contract or another external wallet
130
- uint256 allowance = $._token.allowance(currentWallet, address(this));
131
- if (allowance < currentBalance) {
132
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
133
- }
134
- }
135
- }
136
-
137
- // effects
138
- $._wallet = newWallet;
139
- emit LogComponentWalletAddressChanged(currentWallet, newWallet);
140
-
141
- // interactions
142
- if (currentBalance > 0) {
143
- // transfer tokens from current wallet to new wallet
144
- if (currentWallet == address(this)) {
145
- // transferFrom requires self allowance too
146
- $._token.approve(address(this), currentBalance);
147
- }
148
-
149
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
150
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
151
- }
152
- }
153
-
154
- function setProductNftId(NftId productNftId)
155
- external
156
- override
157
- {
158
- ComponentStorage storage $ = _getComponentStorage();
159
-
160
- // verify caller is product service
161
- if(msg.sender != _getServiceAddress(PRODUCT())) {
162
- revert ErrorComponentNotProductService(msg.sender);
163
- }
164
-
165
- // verify component is not yet linked to a product
166
- if($._productNftId.gtz()) {
167
- revert ErrorComponentProductNftAlreadySet();
168
- }
169
-
170
- $._productNftId = productNftId;
171
- }
172
-
173
- function nftMint(address to, uint256 tokenId)
174
- external
175
- virtual
176
- onlyChainNft
177
- {}
178
-
179
- /// @dev callback function for nft transfers
180
- /// may only be called by chain nft contract.
181
- /// do not override this function to implement business logic for handling transfers
182
- /// override internal function _nftTransferFrom instead
183
- function nftTransferFrom(address from, address to, uint256 tokenId)
184
- external
185
- virtual
186
- onlyChainNft
187
- {
188
- _nftTransferFrom(from, to, tokenId);
189
- }
190
-
191
- function getWallet() public view override returns (address walletAddress)
192
- {
193
- return _getComponentStorage()._wallet;
194
- }
195
-
196
- function getToken() public view override returns (IERC20Metadata token) {
197
- return _getComponentStorage()._token;
198
- }
199
-
200
- function isNftInterceptor() public view override returns(bool isInterceptor) {
201
- return _getComponentStorage()._isNftInterceptor;
202
- }
203
-
204
- function getInstance() public view override returns (IInstance instance) {
205
- return _getComponentStorage()._instance;
206
- }
207
-
208
- function getName() public view override returns(string memory name) {
209
- return _getComponentStorage()._name;
210
- }
211
-
212
- function getProductNftId() public view override returns (NftId productNftId) {
213
- return _getComponentStorage()._productNftId;
214
- }
215
-
216
- function getComponentInfo() public view returns (IComponents.ComponentInfo memory info) {
217
- info = _getInstanceReader().getComponentInfo(getNftId());
218
-
219
- // fallback to initial info (wallet is always != address(0))
220
- if(info.wallet == address(0)) {
221
- info = _getInitialInfo();
222
- }
223
- }
224
-
225
- /// @dev defines initial component specification
226
- /// overwrite this function according to your use case
227
- function _getInitialInfo()
228
- internal
229
- view
230
- virtual
231
- returns (IComponents.ComponentInfo memory info)
232
- { }
233
-
234
-
235
- /// @dev internal function for nft transfers.
236
- /// handling logic that deals with nft transfers need to overwrite this function
237
- function _nftTransferFrom(address from, address to, uint256 tokenId)
238
- internal
239
- virtual
240
- { }
241
-
242
- /// @dev returns reader for linked instance
243
- function _getInstanceReader() internal view returns (InstanceReader reader) {
244
- return _getComponentStorage()._instanceReader;
245
- }
246
-
247
- /// @dev returns the service address for the specified domain
248
- /// gets address via lookup from registry using the major version form the linked instance
249
- function _getServiceAddress(ObjectType domain) internal view returns (address service) {
250
- VersionPart majorVersion = _getComponentStorage()._instance.getMajorVersion();
251
- return getRegistry().getServiceAddress(domain, majorVersion);
252
- }
253
- }
@@ -1,76 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
-
7
- import {IComponents} from "../instance/module/IComponents.sol";
8
- import {IInstance} from "../instance/IInstance.sol";
9
- import {IInstanceService} from "../instance/IInstanceService.sol";
10
- import {IProductService} from "../instance/service/IProductService.sol";
11
- import {IRegisterable} from "../shared/IRegisterable.sol";
12
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
- import {NftId} from "../types/NftId.sol";
14
- import {ObjectType} from "../types/ObjectType.sol";
15
-
16
- /// @dev component base class
17
- /// component examples are product, distribution, pool and oracle
18
- interface IComponent is
19
- IRegisterable,
20
- ITransferInterceptor,
21
- IAccessManaged
22
- {
23
- error ErrorComponentNotChainNft(address caller);
24
- error ErrorComponentNotProductService(address caller);
25
- error ErrorComponentNotInstance(NftId instanceNftId);
26
- error ErrorComponentProductNftAlreadySet();
27
-
28
- error ErrorComponentWalletAddressZero();
29
- error ErrorComponentWalletAddressIsSameAsCurrent();
30
- error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
31
-
32
- event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
33
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
34
-
35
- /// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
36
- /// only component owner (nft holder) is authorizes to call this function
37
- function lock() external;
38
-
39
- /// @dev unlocks component to (re-)enable functions that may change state related to this component
40
- /// only component owner (nft holder) is authorizes to call this function
41
- function unlock() external;
42
-
43
- /// @dev sets the wallet address for the component
44
- /// if the current wallet has tokens, these will be transferred
45
- /// if the new wallet address is externally owned, an approval from the
46
- /// owner of the external wallet for the component to move all tokens must exist
47
- function setWallet(address walletAddress) external;
48
-
49
- /// @dev only product service may set product nft id during registration of product setup
50
- function setProductNftId(NftId productNftId) external;
51
-
52
- /// @dev returns the name of this component
53
- /// to successfully register the component with an instance the name MUST be unique in the linked instance
54
- function getName() external view returns (string memory name);
55
-
56
- /// @dev defines which ERC20 token is used by this component
57
- function getToken() external view returns (IERC20Metadata token);
58
-
59
- /// @dev defines the instance to which this component is linked to
60
- function getInstance() external view returns (IInstance instance);
61
-
62
- /// @dev defines the wallet address used to hold the ERC20 tokens related to this component
63
- /// the default address is the component token address
64
- function getWallet() external view returns (address walletAddress);
65
-
66
- /// @dev defines the product to which this component is linked to
67
- /// this is only relevant for pool and distribution components
68
- function getProductNftId() external view returns (NftId productNftId);
69
-
70
- function isNftInterceptor() external view returns(bool isInterceptor);
71
-
72
- /// @dev returns component infos for this pool
73
- /// when registered with an instance the info is obtained from the data stored in the instance
74
- /// when not registered the function returns the info from the component contract
75
- function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
76
- }
@@ -1,71 +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, ReferralStatus} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
- import {DistributorType} from "../types/DistributorType.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
- import {Timestamp} from "../types/Timestamp.sol";
12
-
13
- interface IDistributionComponent is IComponent {
14
-
15
- event LogDistributorUpdated(address to, address caller);
16
-
17
- function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
18
-
19
- function setFees(
20
- Fee memory minDistributionOwnerFee,
21
- Fee memory distributionFee
22
- ) external;
23
-
24
- function createDistributorType(
25
- string memory name,
26
- UFixed minDiscountPercentage,
27
- UFixed maxDiscountPercentage,
28
- UFixed commissionPercentage,
29
- uint32 maxReferralCount,
30
- uint32 maxReferralLifetime,
31
- bool allowSelfReferrals,
32
- bool allowRenewals,
33
- bytes memory data
34
- ) external returns (DistributorType distributorType);
35
-
36
- function createDistributor(
37
- address distributor,
38
- DistributorType distributorType,
39
- bytes memory data
40
- ) external returns(NftId distributorNftId);
41
-
42
- function updateDistributorType(
43
- NftId distributorNftId,
44
- DistributorType distributorType,
45
- bytes memory data
46
- ) external;
47
-
48
- function calculateRenewalFeeAmount(
49
- ReferralId referralId,
50
- uint256 netPremiumAmount
51
- ) external view returns (uint256 feeAmount);
52
-
53
- /// @dev callback from product service when a policy is renews for a specific referralId
54
- function processRenewal(
55
- ReferralId referralId,
56
- uint256 feeAmount
57
- ) external;
58
-
59
- function getDiscountPercentage(
60
- string memory referralCode
61
- ) external view returns (UFixed discountPercentage, ReferralStatus status);
62
-
63
- function getDistributionFee() external view returns (Fee memory distibutionFee);
64
-
65
- function getReferralId(
66
- string memory referralCode
67
- ) external returns (ReferralId referralId);
68
-
69
- /// @dev returns true iff the component needs to be called when selling/renewing policis
70
- function isVerifying() external view returns (bool verifying);
71
- }
@@ -1,113 +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 {IComponents} from "../instance/module/IComponents.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {Seconds} from "../types/Seconds.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
-
12
- /// @dev pool components hold and manage the collateral to cover active policies
13
- /// pools come in different flavors
14
- interface IPoolComponent is IComponent {
15
-
16
- error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
17
- error ErrorPoolNotPoolService(address caller);
18
-
19
- error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
-
21
- event LogPoolVerifiedByPool(address pool, NftId applicationNftId, uint256 collateralizationAmount);
22
-
23
- /// @dev increases the staked tokens by the specified amount
24
- /// only the bundle owner may stake tokens
25
- /// bundle MUST be in active or locked state
26
- function stake(NftId bundleNftId, uint256 amount) external;
27
-
28
- /// @dev decreases the staked tokens by the specified amount
29
- /// only the bundle owner may unstake tokens from the bundle
30
- /// bundle MUST be in active, locked or closed state
31
- function unstake(NftId bundleNftId, uint256 amount) external;
32
-
33
- /// @dev extends the bundle lifetime of the bundle by the specified time
34
- /// only the bundle owner may extend the bundle's lifetime
35
- /// bundle MUST be in active or locked state
36
- function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
37
-
38
- /// @dev locks the specified bundle
39
- /// a bundle to be locked MUST be in active state
40
- /// locked bundles may not be used to collateralize any new policy
41
- function lockBundle(NftId bundleNftId) external;
42
-
43
- /// @dev unlocks the specified bundle
44
- /// a bundle to be unlocked MUST be in locked state
45
- function unlockBundle(NftId bundleNftId) external;
46
-
47
- /// @dev close the specified bundle
48
- /// a bundle to be closed MUST be in active or locked state
49
- /// to close a bundle all all linked policies MUST be in closed state as well
50
- /// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
51
- /// once a bundle is closed this action cannot be reversed
52
- function close(NftId bundleNftId) external;
53
-
54
- /// @dev sets the fee for the specified bundle
55
- /// the fee is added on top of the poolFee and deducted from the premium amounts
56
- /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
57
- function setBundleFee(
58
- NftId bundleNftId,
59
- Fee memory fee
60
- ) external;
61
-
62
- /// @dev sets the maximum overall capital amound held by this pool
63
- /// function may only be called by pool owner
64
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
65
-
66
- /// @dev sets the required role to create/own bundles
67
- /// may only be called once after setting up a pool
68
- /// may only be called by pool owner
69
- function setBundleOwnerRole(RoleId bundleOwnerRole) external;
70
-
71
- /// @dev update pool fees to the specified values
72
- /// pool fees: are deducted from the premium amount and goes to the pool owner
73
- /// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
74
- /// performance fees: when a bundle is closed a bundle specific profit is calculated
75
- /// the performance fee is deducted from this profit and goes to the pool owner
76
- function setFees(
77
- Fee memory poolFee,
78
- Fee memory stakingFee,
79
- Fee memory performanceFee
80
- ) external;
81
-
82
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
83
- /// the pool has the option to check the details and object to underwriting by reverting.
84
- /// the function is only called for "active" pools that ask to be involved/notified
85
- /// by product related state changes.
86
- function verifyApplication(
87
- NftId applicationNftId,
88
- bytes memory applicationData,
89
- NftId bundleNftId,
90
- bytes memory bundleFilter,
91
- uint256 collateralizationAmount
92
- ) external;
93
-
94
- /// @dev returns true iff the application matches with the bundle
95
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
96
- /// default implementation returns true
97
- function applicationMatchesBundle(
98
- NftId applicationNftId,
99
- bytes memory applicationData,
100
- NftId bundleNftId,
101
- bytes memory bundleFilter,
102
- uint256 collateralizationAmount
103
- )
104
- external
105
- view
106
- returns (bool isMatching);
107
-
108
- /// @dev returns pool specific infos for this pool
109
- /// when registered with an instance the info is obtained from the data stored in the instance
110
- /// when not registered the function returns the info from the component contract
111
- function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
112
-
113
- }
@@ -1,40 +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
- import {Seconds} from "../types/Seconds.sol";
11
-
12
- interface IProductComponent is IComponent {
13
-
14
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
15
-
16
- function setFees(
17
- Fee memory productFee,
18
- Fee memory processingFee
19
- ) external;
20
-
21
- function calculatePremium(
22
- uint256 sumInsuredAmount,
23
- RiskId riskId,
24
- Seconds lifetime,
25
- bytes memory applicationData,
26
- NftId bundleNftId,
27
- ReferralId referralId
28
- ) external view returns (uint256 premiumAmount);
29
-
30
- function calculateNetPremium(
31
- uint256 sumInsuredAmount,
32
- RiskId riskId,
33
- Seconds lifetime,
34
- bytes memory applicationData
35
- ) external view returns (uint256 netPremiumAmount);
36
-
37
-
38
- function getPoolNftId() external view returns (NftId poolNftId);
39
- function getDistributionNftId() external view returns (NftId distributionNftId);
40
- }