@etherisc/gif-next 0.0.2-a4051e9-983 → 0.0.2-a49c197-934

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 (440) hide show
  1. package/README.md +27 -6
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +37 -5
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +166 -104
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -51
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -165
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -295
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
  67. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +240 -93
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  85. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  92. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  167. package/artifacts/contracts/product/Product.sol/Product.json +163 -175
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +31 -2
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  178. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  179. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  180. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/Registry.sol/Registry.json +69 -40
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  190. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +310 -52
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +3 -3
  199. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
  205. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  207. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  209. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  223. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  227. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  234. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  245. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  251. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  252. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  254. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  256. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
  259. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
  261. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  263. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
  265. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  267. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
  269. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
  271. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  273. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  274. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  275. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  276. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  278. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  287. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  288. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  289. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  291. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  292. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  293. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  295. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  297. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  299. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  301. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  303. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  305. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  323. package/contracts/accounting/AccountingService.sol +262 -0
  324. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  325. package/contracts/accounting/IAccountingService.sol +45 -0
  326. package/contracts/authorization/AccessAdmin.sol +136 -73
  327. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  328. package/contracts/authorization/IAccessAdmin.sol +6 -3
  329. package/contracts/distribution/BasicDistribution.sol +6 -6
  330. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  331. package/contracts/distribution/Distribution.sol +32 -30
  332. package/contracts/distribution/DistributionService.sol +35 -33
  333. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  334. package/contracts/distribution/IDistributionService.sol +5 -6
  335. package/contracts/examples/fire/FirePool.sol +25 -10
  336. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
  337. package/contracts/examples/fire/FireProduct.sol +31 -11
  338. package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
  339. package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
  340. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  341. package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
  342. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  343. package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
  344. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  345. package/contracts/instance/BundleSet.sol +38 -34
  346. package/contracts/instance/IInstance.sol +8 -8
  347. package/contracts/instance/IInstanceService.sol +9 -9
  348. package/contracts/instance/Instance.sol +20 -17
  349. package/contracts/instance/InstanceAdmin.sol +98 -49
  350. package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
  351. package/contracts/instance/InstanceReader.sol +108 -7
  352. package/contracts/instance/InstanceService.sol +73 -80
  353. package/contracts/instance/InstanceServiceManager.sol +1 -1
  354. package/contracts/instance/InstanceStore.sol +13 -2
  355. package/contracts/instance/RiskSet.sol +117 -0
  356. package/contracts/instance/base/ObjectCounter.sol +1 -2
  357. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  358. package/contracts/instance/base/ObjectSet.sol +24 -25
  359. package/contracts/instance/module/IComponents.sol +4 -4
  360. package/contracts/instance/module/IPolicy.sol +2 -1
  361. package/contracts/instance/module/IRisk.sol +3 -0
  362. package/contracts/oracle/Oracle.sol +1 -1
  363. package/contracts/oracle/OracleService.sol +90 -72
  364. package/contracts/oracle/OracleServiceManager.sol +1 -1
  365. package/contracts/pool/BasicPool.sol +24 -3
  366. package/contracts/pool/BasicPoolAuthorization.sol +12 -1
  367. package/contracts/pool/BundleService.sol +49 -104
  368. package/contracts/pool/BundleServiceManager.sol +1 -1
  369. package/contracts/pool/IBundleService.sol +2 -24
  370. package/contracts/pool/IPoolComponent.sol +1 -7
  371. package/contracts/pool/IPoolService.sol +12 -26
  372. package/contracts/pool/Pool.sol +112 -102
  373. package/contracts/pool/PoolService.sol +171 -100
  374. package/contracts/pool/PoolServiceManager.sol +1 -1
  375. package/contracts/product/ApplicationService.sol +23 -21
  376. package/contracts/product/ApplicationServiceManager.sol +1 -1
  377. package/contracts/product/BasicProduct.sol +9 -11
  378. package/contracts/product/BasicProductAuthorization.sol +1 -2
  379. package/contracts/product/ClaimService.sol +155 -51
  380. package/contracts/product/ClaimServiceManager.sol +1 -1
  381. package/contracts/product/IApplicationService.sol +5 -2
  382. package/contracts/product/IClaimService.sol +13 -0
  383. package/contracts/product/IPolicyService.sol +17 -7
  384. package/contracts/product/IProductComponent.sol +4 -1
  385. package/contracts/product/PolicyService.sol +248 -195
  386. package/contracts/product/PolicyServiceManager.sol +1 -1
  387. package/contracts/product/PricingService.sol +27 -20
  388. package/contracts/product/PricingServiceManager.sol +3 -3
  389. package/contracts/product/Product.sol +47 -39
  390. package/contracts/product/RiskService.sol +78 -23
  391. package/contracts/product/RiskServiceManager.sol +1 -1
  392. package/contracts/registry/ChainNft.sol +4 -2
  393. package/contracts/registry/IRegistry.sol +8 -15
  394. package/contracts/registry/IRelease.sol +26 -0
  395. package/contracts/registry/Registry.sol +12 -3
  396. package/contracts/registry/RegistryAdmin.sol +121 -225
  397. package/contracts/registry/RegistryService.sol +3 -3
  398. package/contracts/registry/RegistryServiceManager.sol +1 -1
  399. package/contracts/registry/ReleaseAdmin.sol +245 -0
  400. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  401. package/contracts/registry/ReleaseRegistry.sol +129 -119
  402. package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
  403. package/contracts/registry/TokenRegistry.sol +5 -7
  404. package/contracts/shared/Component.sol +59 -98
  405. package/contracts/shared/ComponentService.sol +206 -241
  406. package/contracts/shared/ComponentServiceManager.sol +1 -1
  407. package/contracts/shared/ComponentVerifyingService.sol +15 -13
  408. package/contracts/shared/ContractLib.sol +223 -9
  409. package/contracts/shared/IComponent.sol +4 -17
  410. package/contracts/shared/IComponentService.sol +20 -24
  411. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  412. package/contracts/shared/IRegisterable.sol +15 -4
  413. package/contracts/shared/IService.sol +3 -5
  414. package/contracts/shared/InstanceLinkedComponent.sol +2 -18
  415. package/contracts/shared/NftOwnable.sol +4 -4
  416. package/contracts/shared/PolicyHolder.sol +1 -1
  417. package/contracts/shared/Registerable.sol +44 -20
  418. package/contracts/shared/RegistryLinked.sol +7 -13
  419. package/contracts/shared/Service.sol +8 -27
  420. package/contracts/shared/TokenHandler.sol +316 -66
  421. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  422. package/contracts/staking/IStaking.sol +9 -4
  423. package/contracts/staking/Staking.sol +62 -33
  424. package/contracts/staking/StakingService.sol +55 -9
  425. package/contracts/type/Key32.sol +2 -2
  426. package/contracts/type/Key32Set.sol +62 -0
  427. package/contracts/type/NftId.sol +6 -0
  428. package/contracts/type/ObjectType.sol +32 -18
  429. package/contracts/type/RiskId.sol +23 -6
  430. package/contracts/type/RoleId.sol +5 -2
  431. package/contracts/type/Timestamp.sol +0 -5
  432. package/contracts/type/UFixed.sol +9 -119
  433. package/contracts/type/Version.sol +15 -5
  434. package/contracts/upgradeability/ProxyManager.sol +1 -1
  435. package/package.json +3 -3
  436. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  437. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  438. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  439. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  440. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -1,22 +1,24 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
6
 
9
- import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {ContractLib} from "./ContractLib.sol";
10
9
  import {IComponent} from "./IComponent.sol";
11
10
  import {IComponents} from "../instance/module/IComponents.sol";
12
- import {NftId, NftIdLib} from "../type/NftId.sol";
13
- import {ObjectType, PRODUCT} from "../type/ObjectType.sol";
11
+ import {IComponentService} from "./IComponentService.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {IRelease} from "../registry/IRelease.sol";
14
+ import {NftId} from "../type/NftId.sol";
15
+ import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
14
16
  import {Registerable} from "../shared/Registerable.sol";
15
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPartLib} from "../type/Version.sol";
18
+ import {Version, VersionLib, VersionPart} from "../type/Version.sol";
19
+
17
20
 
18
21
  abstract contract Component is
19
- AccessManagedUpgradeable,
20
22
  Registerable,
21
23
  IComponent
22
24
  {
@@ -26,9 +28,9 @@ abstract contract Component is
26
28
  struct ComponentStorage {
27
29
  string _name; // unique (per instance) component name
28
30
  IERC20Metadata _token; // token for this component
29
- address _wallet;
30
31
  bool _isInterceptor;
31
32
  bytes _data;
33
+ IComponentService _componentService;
32
34
  }
33
35
 
34
36
 
@@ -39,12 +41,14 @@ abstract contract Component is
39
41
  _;
40
42
  }
41
43
 
44
+
42
45
  function _getComponentStorage() private pure returns (ComponentStorage storage $) {
43
46
  assembly {
44
47
  $.slot := COMPONENT_LOCATION_V1
45
48
  }
46
49
  }
47
50
 
51
+
48
52
  function _initializeComponent(
49
53
  address authority,
50
54
  address registry,
@@ -61,15 +65,26 @@ abstract contract Component is
61
65
  virtual
62
66
  onlyInitializing()
63
67
  {
64
- if (token == address(0)) {
65
- revert ErrorComponentTokenAddressZero();
68
+ address tokenRegistry = IRegistry(registry).getTokenRegistryAddress();
69
+ VersionPart release = IRelease(authority).getRelease();
70
+
71
+ // special case for staking: component intitialization happens before
72
+ // GIF core contract setup is complete. at that time token registry
73
+ // is not yet available. therefore we skip the check for staking.
74
+ if (componentType != STAKING()) {
75
+
76
+ // check if provided token is whitelisted and active
77
+ if (!ContractLib.isActiveToken(tokenRegistry, token, block.chainid, release)) {
78
+ revert ErrorComponentTokenInvalid(token);
79
+ }
66
80
  }
67
81
 
68
82
  if (bytes(name).length == 0) {
69
83
  revert ErrorComponentNameLengthZero();
70
84
  }
71
85
 
72
- _initializeRegisterable(
86
+ __Registerable_init(
87
+ authority,
73
88
  registry,
74
89
  parentNftId,
75
90
  componentType,
@@ -77,81 +92,19 @@ abstract contract Component is
77
92
  initialOwner,
78
93
  registryData);
79
94
 
80
- __AccessManaged_init(authority);
81
-
82
95
  // set component state
83
96
  ComponentStorage storage $ = _getComponentStorage();
84
97
  $._name = name;
85
98
  $._token = IERC20Metadata(token);
86
- $._wallet = address(this);
87
99
  $._isInterceptor = isInterceptor;
88
100
  $._data = componentData;
101
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
89
102
 
90
103
  _registerInterface(type(IAccessManaged).interfaceId);
91
104
  _registerInterface(type(IComponent).interfaceId);
92
105
  }
93
106
 
94
107
 
95
- function approveTokenHandler(Amount spendingLimitAmount)
96
- external
97
- virtual
98
- onlyOwner
99
- {
100
- approveTokenHandler(address(getToken()), spendingLimitAmount);
101
- }
102
-
103
- /// @dev Approves the component's token hander to spend tokens up to the specified limit.
104
- /// When the spending limit amount equals AmountLib.max it is set to type(uint256).max.
105
- function approveTokenHandler(address token, Amount spendingLimitAmount)
106
- public
107
- virtual
108
- onlyOwner
109
- {
110
- if(getWallet() != address(this)) {
111
- revert ErrorComponentWalletNotComponent();
112
- }
113
-
114
- uint256 spendingLimit = spendingLimitAmount.toInt();
115
- bool isMaxAmount = false;
116
- if (spendingLimitAmount == AmountLib.max()) {
117
- spendingLimit = type(uint256).max;
118
- isMaxAmount = true;
119
- }
120
-
121
- emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount, isMaxAmount);
122
-
123
- IERC20Metadata(token).approve(
124
- address(getTokenHandler()),
125
- spendingLimit);
126
- }
127
-
128
- function setWallet(address newWallet)
129
- external
130
- virtual
131
- override
132
- onlyOwner
133
- {
134
- // checks
135
- address currentWallet = getWallet();
136
- uint256 currentBalance = getToken().balanceOf(currentWallet);
137
-
138
- // effects
139
- _setWallet(newWallet);
140
-
141
- // interactions
142
- if (currentBalance > 0) {
143
- // move tokens from old to new wallet
144
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
145
-
146
- if (currentWallet == address(this)) {
147
- // transfer from the component requires an allowance
148
- getTokenHandler().distributeTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
149
- } else {
150
- getTokenHandler().collectTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
151
- }
152
- }
153
- }
154
-
155
108
  /// @dev callback function for nft transfers
156
109
  /// may only be called by chain nft contract.
157
110
  /// override internal function _nftTransferFrom to implement custom behaviour
@@ -164,7 +117,7 @@ abstract contract Component is
164
117
 
165
118
 
166
119
  function getWallet() public view virtual returns (address walletAddress) {
167
- return getComponentInfo().wallet;
120
+ return getTokenHandler().getWallet();
168
121
  }
169
122
 
170
123
  function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
@@ -179,6 +132,10 @@ abstract contract Component is
179
132
  return getComponentInfo().name;
180
133
  }
181
134
 
135
+ function getVersion() public view virtual returns (Version version) {
136
+ return VersionLib.toVersion(1, 0, 0);
137
+ }
138
+
182
139
  function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
183
140
  if (isRegistered()) {
184
141
  return _getComponentInfo();
@@ -208,12 +165,18 @@ abstract contract Component is
208
165
  }
209
166
 
210
167
 
211
- /// @dev internal function for nft transfers.
212
- /// handling logic that deals with nft transfers need to overwrite this function
213
- function _nftMint(address to, uint256 tokenId)
168
+ /// @dev Approves token hanlder to spend up to the specified amount of tokens.
169
+ /// Reverts if component wallet is not token handler itself.
170
+ /// Only component owner (nft holder) is authorizes to call this function.
171
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
214
172
  internal
215
173
  virtual
216
- { }
174
+ {
175
+ _getComponentStorage()._componentService.approveTokenHandler(
176
+ token,
177
+ amount);
178
+ }
179
+
217
180
 
218
181
  /// @dev internal function for nft transfers.
219
182
  /// handling logic that deals with nft transfers need to overwrite this function
@@ -225,21 +188,20 @@ abstract contract Component is
225
188
 
226
189
  /// @dev depending on the source of the component information this function needs to be overwritten.
227
190
  /// eg for instance linked components that externally store this information with the instance store contract
228
- function _setWallet(address newWallet) internal virtual {
229
- ComponentStorage storage $ = _getComponentStorage();
230
- address currentWallet = $._wallet;
231
-
232
- if (newWallet == address(0)) {
233
- revert ErrorComponentWalletAddressZero();
234
- }
235
-
236
- if (newWallet == currentWallet) {
237
- revert ErrorComponentWalletAddressIsSameAsCurrent();
238
- }
239
-
240
- $._wallet = newWallet;
241
- emit LogComponentWalletAddressChanged(currentWallet, newWallet);
191
+ function _setWallet(
192
+ address newWallet
193
+ )
194
+ internal
195
+ virtual
196
+ {
197
+ _getComponentStorage()._componentService.setWallet(newWallet);
198
+ }
242
199
 
200
+ function _setLocked(bool locked)
201
+ internal
202
+ virtual
203
+ {
204
+ _getComponentStorage()._componentService.setLockedFromComponent(address(this), locked);
243
205
  }
244
206
 
245
207
 
@@ -252,14 +214,13 @@ abstract contract Component is
252
214
  name: $._name,
253
215
  token: $._token,
254
216
  tokenHandler: TokenHandler(address(0)),
255
- wallet: $._wallet, // initial wallet address
256
217
  data: $._data // user specific component data
257
218
  });
258
219
  }
259
220
 
260
- function _approveTokenHandler(uint256 amount) internal {
261
- ComponentStorage storage $ = _getComponentStorage();
262
- $._token.approve(address(getComponentInfo().tokenHandler), amount);
221
+ /// @dev returns the service address for the specified domain
222
+ /// gets address via lookup from registry using the major version form the linked instance
223
+ function _getServiceAddress(ObjectType domain) internal view returns (address) {
224
+ return getRegistry().getServiceAddress(domain, getRelease());
263
225
  }
264
-
265
226
  }