@etherisc/gif-next 0.0.2-9e03baf-990 → 0.0.2-9e6b423-414

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 (489) hide show
  1. package/README.md +54 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  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 +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +110 -209
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +40 -128
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +374 -196
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +113 -71
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +26 -114
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +134 -102
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +291 -252
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +181 -207
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +75 -100
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +151 -129
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +380 -256
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +300 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +518 -84
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1064 -471
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +309 -84
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +40 -52
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +673 -557
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +60 -83
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -53
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +44 -67
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +114 -83
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +71 -45
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +65 -88
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +120 -312
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -104
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -128
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +40 -63
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +138 -193
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +53 -76
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +288 -317
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +105 -67
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +167 -59
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +56 -42
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +176 -184
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -187
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +86 -88
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +157 -165
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +220 -195
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +87 -77
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +112 -108
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -71
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +170 -178
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +60 -42
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +36 -12
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +74 -50
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +55 -48
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +36 -38
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +43 -52
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +206 -562
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -87
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +525 -4
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -39
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +115 -390
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +30 -53
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -66
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  255. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +96 -40
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -103
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  271. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +66 -46
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +40 -67
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +189 -58
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +53 -43
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -18
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  337. package/contracts/accounting/AccountingService.sol +261 -0
  338. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  339. package/contracts/accounting/IAccountingService.sol +45 -0
  340. package/contracts/authorization/AccessAdmin.sol +426 -242
  341. package/contracts/authorization/AccessAdminLib.sol +396 -0
  342. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  343. package/contracts/authorization/Authorization.sol +142 -257
  344. package/contracts/authorization/IAccess.sol +25 -7
  345. package/contracts/authorization/IAccessAdmin.sol +87 -80
  346. package/contracts/authorization/IAuthorization.sol +9 -42
  347. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  348. package/contracts/authorization/ServiceAuthorization.sol +247 -33
  349. package/contracts/distribution/BasicDistribution.sol +18 -16
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  351. package/contracts/distribution/Distribution.sol +38 -78
  352. package/contracts/distribution/DistributionService.sol +183 -96
  353. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  354. package/contracts/distribution/IDistributionComponent.sol +3 -10
  355. package/contracts/distribution/IDistributionService.sol +32 -24
  356. package/contracts/examples/fire/FirePool.sol +6 -6
  357. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  358. package/contracts/examples/fire/FireProduct.sol +9 -7
  359. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  360. package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
  361. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  362. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  363. package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
  364. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -8
  366. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  367. package/contracts/instance/BundleSet.sol +42 -38
  368. package/contracts/instance/IInstance.sol +97 -18
  369. package/contracts/instance/IInstanceService.sol +50 -8
  370. package/contracts/instance/Instance.sol +170 -57
  371. package/contracts/instance/InstanceAdmin.sol +271 -165
  372. package/contracts/instance/InstanceAuthorizationV3.sol +114 -43
  373. package/contracts/instance/InstanceReader.sol +449 -312
  374. package/contracts/instance/InstanceService.sol +260 -163
  375. package/contracts/instance/InstanceServiceManager.sol +1 -1
  376. package/contracts/instance/InstanceStore.sol +13 -2
  377. package/contracts/instance/RiskSet.sol +118 -0
  378. package/contracts/instance/base/BalanceStore.sol +3 -5
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  381. package/contracts/instance/base/ObjectSet.sol +31 -33
  382. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  383. package/contracts/instance/module/IBundle.sol +6 -5
  384. package/contracts/instance/module/IComponents.sol +19 -7
  385. package/contracts/instance/module/IDistribution.sol +21 -8
  386. package/contracts/instance/module/IPolicy.sol +28 -8
  387. package/contracts/instance/module/IRisk.sol +5 -0
  388. package/contracts/oracle/BasicOracle.sol +1 -3
  389. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  390. package/contracts/oracle/IOracle.sol +9 -4
  391. package/contracts/oracle/Oracle.sol +1 -3
  392. package/contracts/oracle/OracleService.sol +96 -78
  393. package/contracts/oracle/OracleServiceManager.sol +1 -1
  394. package/contracts/pool/BasicPool.sol +0 -2
  395. package/contracts/pool/BasicPoolAuthorization.sol +28 -14
  396. package/contracts/pool/BundleService.sol +35 -125
  397. package/contracts/pool/BundleServiceManager.sol +1 -1
  398. package/contracts/pool/IBundleService.sol +13 -38
  399. package/contracts/pool/IPoolService.sol +49 -56
  400. package/contracts/pool/Pool.sol +9 -11
  401. package/contracts/pool/PoolLib.sol +353 -0
  402. package/contracts/pool/PoolService.sol +190 -223
  403. package/contracts/pool/PoolServiceManager.sol +1 -1
  404. package/contracts/product/ApplicationService.sol +34 -15
  405. package/contracts/product/ApplicationServiceManager.sol +1 -1
  406. package/contracts/product/BasicProduct.sol +2 -2
  407. package/contracts/product/BasicProductAuthorization.sol +30 -11
  408. package/contracts/product/ClaimService.sol +167 -150
  409. package/contracts/product/ClaimServiceManager.sol +1 -1
  410. package/contracts/product/IApplicationService.sol +8 -2
  411. package/contracts/product/IClaimService.sol +14 -2
  412. package/contracts/product/IPolicyService.sol +23 -10
  413. package/contracts/product/IPricingService.sol +1 -0
  414. package/contracts/product/IProductComponent.sol +4 -1
  415. package/contracts/product/IRiskService.sol +7 -7
  416. package/contracts/product/PolicyService.sol +235 -290
  417. package/contracts/product/PolicyServiceLib.sol +139 -0
  418. package/contracts/product/PolicyServiceManager.sol +1 -1
  419. package/contracts/product/PricingService.sol +30 -21
  420. package/contracts/product/PricingServiceManager.sol +3 -3
  421. package/contracts/product/Product.sol +57 -22
  422. package/contracts/product/RiskService.sol +89 -31
  423. package/contracts/product/RiskServiceManager.sol +1 -1
  424. package/contracts/registry/ChainNft.sol +4 -2
  425. package/contracts/registry/IRegistry.sol +12 -15
  426. package/contracts/registry/IRelease.sol +29 -0
  427. package/contracts/registry/Registry.sol +7 -2
  428. package/contracts/registry/RegistryAdmin.sol +100 -374
  429. package/contracts/registry/RegistryAuthorization.sol +277 -0
  430. package/contracts/registry/RegistryService.sol +3 -3
  431. package/contracts/registry/RegistryServiceManager.sol +1 -1
  432. package/contracts/registry/ReleaseAdmin.sol +195 -0
  433. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  434. package/contracts/registry/ReleaseRegistry.sol +153 -118
  435. package/contracts/registry/ServiceAuthorizationV3.sol +187 -46
  436. package/contracts/registry/TokenRegistry.sol +12 -13
  437. package/contracts/shared/Component.sol +30 -49
  438. package/contracts/shared/ComponentService.sol +330 -431
  439. package/contracts/shared/ComponentServiceManager.sol +1 -1
  440. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  441. package/contracts/shared/ContractLib.sol +259 -2
  442. package/contracts/shared/IComponent.sol +0 -9
  443. package/contracts/shared/IComponentService.sol +21 -41
  444. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  445. package/contracts/shared/IRegisterable.sol +15 -5
  446. package/contracts/shared/IService.sol +3 -5
  447. package/contracts/shared/InitializableERC165.sol +9 -1
  448. package/contracts/shared/InstanceLinkedComponent.sol +3 -14
  449. package/contracts/shared/NftOwnable.sol +6 -6
  450. package/contracts/shared/PolicyHolder.sol +1 -1
  451. package/contracts/shared/Registerable.sol +42 -19
  452. package/contracts/shared/RegistryLinked.sol +1 -1
  453. package/contracts/shared/Service.sol +13 -30
  454. package/contracts/shared/TokenHandler.sol +45 -100
  455. package/contracts/staking/IStaking.sol +18 -12
  456. package/contracts/staking/IStakingService.sol +19 -1
  457. package/contracts/staking/Staking.sol +73 -33
  458. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  459. package/contracts/staking/StakingReader.sol +6 -16
  460. package/contracts/staking/StakingService.sol +71 -57
  461. package/contracts/staking/StakingServiceManager.sol +5 -4
  462. package/contracts/staking/StakingStore.sol +2 -1
  463. package/contracts/staking/TargetManagerLib.sol +1 -1
  464. package/contracts/type/Fee.sol +8 -8
  465. package/contracts/type/Key32.sol +2 -2
  466. package/contracts/type/Key32Set.sol +62 -0
  467. package/contracts/type/NftId.sol +6 -0
  468. package/contracts/type/ObjectType.sol +69 -38
  469. package/contracts/type/RiskId.sol +26 -8
  470. package/contracts/type/RoleId.sol +63 -45
  471. package/contracts/type/Selector.sol +5 -0
  472. package/contracts/type/String.sol +12 -0
  473. package/contracts/type/Timestamp.sol +0 -5
  474. package/contracts/type/UFixed.sol +34 -127
  475. package/contracts/type/Version.sol +54 -5
  476. package/contracts/upgradeability/ProxyManager.sol +14 -12
  477. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  478. package/contracts/upgradeability/Versionable.sol +4 -1
  479. package/package.json +2 -2
  480. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  481. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  482. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  484. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  485. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  486. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  487. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  488. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  489. package/contracts/instance/module/IAccess.sol +0 -46
@@ -2,16 +2,24 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- ALL, REGISTRY, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
5
+ ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {IAccess} from "../authorization/IAccess.sol";
9
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
10
+ import {IApplicationService} from "../product/IApplicationService.sol";
9
11
  import {IBundleService} from "../pool/IBundleService.sol";
12
+ import {IClaimService} from "../product/IClaimService.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
10
14
  import {IDistributionService} from "../distribution/IDistributionService.sol";
11
15
  import {IInstanceService} from "../instance/IInstanceService.sol";
16
+ import {IOracleService} from "../oracle/IOracleService.sol";
17
+ import {IPolicyService} from "../product/IPolicyService.sol";
12
18
  import {IPoolService} from "../pool/IPoolService.sol";
13
19
  import {IStakingService} from "../staking/IStakingService.sol";
14
20
  import {IRegistryService} from "./IRegistryService.sol";
21
+ import {IRiskService} from "../product/IRiskService.sol";
22
+
15
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
16
24
 
17
25
 
@@ -20,26 +28,31 @@ contract ServiceAuthorizationV3
20
28
  {
21
29
 
22
30
  constructor(string memory commitHash)
23
- ServiceAuthorization(commitHash, 3)
31
+ ServiceAuthorization(
32
+ "ReleaseAdmin",
33
+ RELEASE(),
34
+ 3,
35
+ commitHash)
24
36
  {}
25
37
 
26
38
  function _setupDomains()
27
39
  internal
28
40
  override
29
41
  {
30
- _authorizeDomain(REGISTRY(), address(1));
31
- _authorizeDomain(STAKING(), address(2));
32
- _authorizeDomain(INSTANCE(), address(3));
33
- _authorizeDomain(COMPONENT(), address(4));
34
- _authorizeDomain(DISTRIBUTION(), address(5));
35
- _authorizeDomain(PRICE(), address(6));
36
- _authorizeDomain(BUNDLE(), address(7));
37
- _authorizeDomain(POOL(), address(8));
38
- _authorizeDomain(ORACLE(), address(9));
39
- _authorizeDomain(PRODUCT(), address(10));
40
- _authorizeDomain(POLICY(), address(11));
41
- _authorizeDomain(CLAIM(), address(12));
42
- _authorizeDomain(APPLICATION(), address(13));
42
+ _authorizeServiceDomain(REGISTRY(), address(1));
43
+ _authorizeServiceDomain(STAKING(), address(2));
44
+ _authorizeServiceDomain(INSTANCE(), address(3));
45
+ _authorizeServiceDomain(ACCOUNTING(), address(4));
46
+ _authorizeServiceDomain(COMPONENT(), address(5));
47
+ _authorizeServiceDomain(DISTRIBUTION(), address(6));
48
+ _authorizeServiceDomain(PRICE(), address(7));
49
+ _authorizeServiceDomain(BUNDLE(), address(8));
50
+ _authorizeServiceDomain(POOL(), address(9));
51
+ _authorizeServiceDomain(ORACLE(), address(10));
52
+ _authorizeServiceDomain(RISK(), address(11));
53
+ _authorizeServiceDomain(POLICY(), address(12));
54
+ _authorizeServiceDomain(CLAIM(), address(13));
55
+ _authorizeServiceDomain(APPLICATION(), address(14));
43
56
  }
44
57
 
45
58
 
@@ -47,19 +60,25 @@ contract ServiceAuthorizationV3
47
60
  internal
48
61
  override
49
62
  {
50
- _setupIRegistryServiceAuthorization();
63
+ _setupRegistryServiceAuthorization();
51
64
  _setupStakingServiceAuthorization();
52
65
  _setupInstanceServiceAuthorization();
66
+ _setupAccountingServiceAuthorization();
53
67
  _setupComponentServiceAuthorization();
68
+ _setupClaimServiceAuthorization();
69
+ _setupRiskServiceAuthorization();
54
70
  _setupDistributionServiceAuthorization();
55
71
  _setupPoolServiceAuthorization();
56
72
  _setupBundleServiceAuthorization();
73
+ _setupOracleServiceAuthorization();
74
+ _setupApplicationServiceAuthorization();
75
+ _setupPolicyServiceAuthorization();
57
76
  }
58
77
 
59
78
 
60
79
  /// @dev registry service authorization.
61
80
  /// authorized functions MUST be implemented with a restricted modifier
62
- function _setupIRegistryServiceAuthorization()
81
+ function _setupRegistryServiceAuthorization()
63
82
  internal
64
83
  {
65
84
  IAccess.FunctionInfo[] storage functions;
@@ -96,6 +115,7 @@ contract ServiceAuthorizationV3
96
115
  _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
97
116
  _authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
98
117
  _authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
118
+ _authorize(functions, IStakingService.setInstanceMaxStakedAmount.selector, "setInstanceMaxStakedAmount");
99
119
  _authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
100
120
  _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
101
121
 
@@ -113,11 +133,58 @@ contract ServiceAuthorizationV3
113
133
  function _setupInstanceServiceAuthorization()
114
134
  internal
115
135
  {
116
- // TODO cleanup
117
- // IAccess.FunctionInfo[] storage functions;
136
+ IAccess.FunctionInfo[] storage functions;
137
+ functions = _authorizeForService(INSTANCE(), ALL());
138
+ _authorize(functions, IInstanceService.createRole.selector, "createRole");
139
+ _authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
140
+ _authorize(functions, IInstanceService.grantRole.selector, "grantRole");
141
+ _authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
142
+
143
+ _authorize(functions, IInstanceService.createTarget.selector, "createTarget");
144
+ _authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
145
+ _authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
146
+ _authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
147
+ _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
148
+
149
+ _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
150
+ _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
151
+ _authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
152
+
153
+ _authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
154
+ _authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
155
+ _authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
156
+ _authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
157
+ _authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
158
+ }
159
+
160
+ /// @dev Accounting service function authorization.
161
+ function _setupAccountingServiceAuthorization()
162
+ internal
163
+ {
164
+ IAccess.FunctionInfo[] storage functions;
165
+
166
+ functions = _authorizeForService(ACCOUNTING(), BUNDLE());
167
+ _authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
168
+ _authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
169
+
170
+ functions = _authorizeForService(ACCOUNTING(), COMPONENT());
171
+ _authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
172
+
173
+ functions = _authorizeForService(ACCOUNTING(), DISTRIBUTION());
174
+ _authorize(functions, IAccountingService.increaseDistributionBalance.selector, "increaseDistributionBalance");
175
+ _authorize(functions, IAccountingService.decreaseDistributionBalance.selector, "decreaseDistributionBalance");
176
+ _authorize(functions, IAccountingService.increaseDistributorBalance.selector, "increaseDistributorBalance");
177
+ _authorize(functions, IAccountingService.decreaseDistributorBalance.selector, "decreaseDistributorBalance");
178
+
179
+ functions = _authorizeForService(ACCOUNTING(), POLICY());
180
+ _authorize(functions, IAccountingService.increaseProductFees.selector, "increaseProductFees");
181
+
182
+ functions = _authorizeForService(ACCOUNTING(), POOL());
183
+ _authorize(functions, IAccountingService.increasePoolBalance.selector, "increasePoolBalance");
184
+ _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
185
+ _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
186
+ _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
118
187
 
119
- // functions = _authorizeForService(INSTANCE(), COMPONENT());
120
- // _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
121
188
  }
122
189
 
123
190
 
@@ -125,39 +192,64 @@ contract ServiceAuthorizationV3
125
192
  function _setupComponentServiceAuthorization()
126
193
  internal
127
194
  {
128
- // TODO cleanup
129
- // authz.authorizations = new DomainAuthorization[](4);
130
-
131
- // authz.authorizations[0].domain = POLICY();
132
- // _functions = new IAccessAdmin.Function[](1);
133
- // __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
134
- // authz.authorizations[0].functions = _functions;
135
-
136
- // authz.authorizations[1].domain = DISTRIBUTION();
137
- // _functions = new IAccessAdmin.Function[](1);
138
- // __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
139
- // authz.authorizations[1].functions = _functions;
140
-
141
- // authz.authorizations[2].domain = POOL();
142
- // _functions = new IAccessAdmin.Function[](1);
143
- // __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
144
- // authz.authorizations[2].functions = _functions;
145
-
146
- // authz.authorizations[3].domain = BUNDLE();
147
- // _functions = new IAccessAdmin.Function[](1);
148
- // __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
149
- // authz.authorizations[3].functions = _functions;
195
+ IAccess.FunctionInfo[] storage functions;
196
+
197
+ functions = _authorizeForService(COMPONENT(), ALL());
198
+ _authorize(functions, IComponentService.registerComponent.selector, "registerComponent");
199
+ _authorize(functions, IComponentService.approveTokenHandler.selector, "approveTokenHandler");
200
+ _authorize(functions, IComponentService.setWallet.selector, "setWallet");
201
+ _authorize(functions, IComponentService.setLocked.selector, "setLocked");
202
+ _authorize(functions, IComponentService.withdrawFees.selector, "withdrawFees");
203
+ _authorize(functions, IComponentService.registerProduct.selector, "registerProduct");
204
+ _authorize(functions, IComponentService.setProductFees.selector, "setProductFees");
205
+ _authorize(functions, IComponentService.setDistributionFees.selector, "setDistributionFees");
206
+ _authorize(functions, IComponentService.setPoolFees.selector, "setPoolFees");
207
+
208
+ }
209
+
210
+ /// @dev Distribution service function authorization.
211
+ function _setupRiskServiceAuthorization()
212
+ internal
213
+ {
214
+ IAccess.FunctionInfo[] storage functions;
215
+ functions = _authorizeForService(RISK(), ALL());
216
+ _authorize(functions, IRiskService.createRisk.selector, "createRisk");
217
+ _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
218
+ _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
150
219
  }
151
220
 
152
221
  /// @dev Distribution service function authorization.
153
- function _setupDistributionServiceAuthorization()
222
+ function _setupClaimServiceAuthorization()
154
223
  internal
155
224
  {
156
225
  IAccess.FunctionInfo[] storage functions;
226
+ functions = _authorizeForService(CLAIM(), ALL());
227
+ _authorize(functions, IClaimService.submit.selector, "submit");
228
+ _authorize(functions, IClaimService.confirm.selector, "confirm");
229
+ _authorize(functions, IClaimService.decline.selector, "decline");
230
+ _authorize(functions, IClaimService.revoke.selector, "revoke");
231
+ _authorize(functions, IClaimService.close.selector, "close");
232
+ _authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
233
+ _authorize(functions, IClaimService.createPayout.selector, "createPayout");
234
+ _authorize(functions, IClaimService.processPayout.selector, "processPayout");
235
+ _authorize(functions, IClaimService.cancelPayout.selector, "cancelPayout");
236
+ }
157
237
 
238
+ /// @dev Distribution service function authorization.
239
+ function _setupDistributionServiceAuthorization()
240
+ internal
241
+ {
242
+ IAccess.FunctionInfo[] storage functions;
158
243
  functions = _authorizeForService(DISTRIBUTION(), POLICY());
159
244
  _authorize(functions, IDistributionService.processSale.selector, "processSale");
160
245
  _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
246
+
247
+ functions = _authorizeForService(DISTRIBUTION(), ALL());
248
+ _authorize(functions, IDistributionService.createDistributorType.selector, "createDistributorType");
249
+ _authorize(functions, IDistributionService.createDistributor.selector, "createDistributor");
250
+ _authorize(functions, IDistributionService.changeDistributorType.selector, "changeDistributorType");
251
+ _authorize(functions, IDistributionService.createReferral.selector, "createReferral");
252
+ _authorize(functions, IDistributionService.withdrawCommission.selector, "withdrawCommission");
161
253
  }
162
254
 
163
255
 
@@ -174,6 +266,16 @@ contract ServiceAuthorizationV3
174
266
 
175
267
  functions = _authorizeForService(POOL(), CLAIM());
176
268
  _authorize(functions, IPoolService.processPayout.selector, "processPayout");
269
+
270
+ functions = _authorizeForService(POOL(), ALL());
271
+ _authorize(functions, IPoolService.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
272
+ _authorize(functions, IPoolService.closeBundle.selector, "closeBundle");
273
+ _authorize(functions, IPoolService.processFundedClaim.selector, "processFundedClaim");
274
+ _authorize(functions, IPoolService.stake.selector, "stake");
275
+ _authorize(functions, IPoolService.unstake.selector, "unstake");
276
+ _authorize(functions, IPoolService.fundPoolWallet.selector, "fundPoolWallet");
277
+ _authorize(functions, IPoolService.defundPoolWallet.selector, "defundPoolWallet");
278
+ _authorize(functions, IPoolService.withdrawBundleFees.selector, "withdrawBundleFees");
177
279
  }
178
280
 
179
281
 
@@ -189,7 +291,6 @@ contract ServiceAuthorizationV3
189
291
  _authorize(functions, IBundleService.close.selector, "close");
190
292
  _authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
191
293
  _authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
192
- _authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
193
294
 
194
295
  functions = _authorizeForService(BUNDLE(), ALL());
195
296
  _authorize(functions, IBundleService.create.selector, "create");
@@ -197,7 +298,47 @@ contract ServiceAuthorizationV3
197
298
  _authorize(functions, IBundleService.lock.selector, "lock");
198
299
  _authorize(functions, IBundleService.unlock.selector, "unlock");
199
300
  _authorize(functions, IBundleService.setFee.selector, "setFee");
200
- _authorize(functions, IBundleService.withdrawBundleFees.selector, "withdrawBundleFees");
301
+ }
302
+
303
+ function _setupOracleServiceAuthorization()
304
+ internal
305
+ {
306
+ IAccess.FunctionInfo[] storage functions;
307
+
308
+ functions = _authorizeForService(ORACLE(), ALL());
309
+ _authorize(functions, IOracleService.request.selector, "request");
310
+ _authorize(functions, IOracleService.respond.selector, "respond");
311
+ _authorize(functions, IOracleService.resend.selector, "resend");
312
+ _authorize(functions, IOracleService.cancel.selector, "cancel");
313
+ }
314
+
315
+ function _setupApplicationServiceAuthorization()
316
+ internal
317
+ {
318
+ IAccess.FunctionInfo[] storage functions;
319
+
320
+ functions = _authorizeForService(APPLICATION(), ALL());
321
+ _authorize(functions, IApplicationService.create.selector, "create");
322
+ _authorize(functions, IApplicationService.renew.selector, "renew");
323
+ _authorize(functions, IApplicationService.adjust.selector, "adjust");
324
+ _authorize(functions, IApplicationService.revoke.selector, "revoke");
325
+ }
326
+
327
+ function _setupPolicyServiceAuthorization()
328
+ internal
329
+ {
330
+ IAccess.FunctionInfo[] storage functions;
331
+
332
+ functions = _authorizeForService(POLICY(), ALL());
333
+ _authorize(functions, IPolicyService.decline.selector, "decline");
334
+ _authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
335
+ _authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
336
+ _authorize(functions, IPolicyService.activate.selector, "activate");
337
+ _authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
338
+ _authorize(functions, IPolicyService.expire.selector, "expire");
339
+ _authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
340
+ _authorize(functions, IPolicyService.close.selector, "close");
341
+
201
342
  }
202
343
  }
203
344
 
@@ -3,20 +3,16 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
7
-
8
- import {REGISTRY} from "../type/ObjectType.sol";
9
- import {VersionPart} from "../type/Version.sol";
10
-
11
- import {IRegisterable} from "../shared/IRegisterable.sol";
12
6
 
13
7
  import {IRegistry} from "./IRegistry.sol";
14
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+
15
10
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
16
11
  import {RegistryAdmin} from "./RegistryAdmin.sol";
12
+ import {VersionPart} from "../type/Version.sol";
17
13
 
18
-
19
- /// @title contract to register token per GIF major release.
14
+ /// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
15
+ /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
20
16
  contract TokenRegistry is
21
17
  AccessManaged,
22
18
  IRegistryLinked
@@ -37,10 +33,13 @@ contract TokenRegistry is
37
33
  error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
38
34
 
39
35
  struct TokenInfo {
36
+ // slot 0
40
37
  uint256 chainId;
38
+ // slot 1
39
+ string symbol;
40
+ // slot 2
41
41
  address token;
42
42
  uint8 decimals;
43
- string symbol;
44
43
  bool active;
45
44
  }
46
45
 
@@ -68,7 +67,7 @@ contract TokenRegistry is
68
67
  setAuthority(authority);
69
68
 
70
69
  _registry = registry;
71
- _dipToken = dipToken;
70
+ _dipToken = _verifyOnchainToken(address(dipToken));
72
71
 
73
72
  // register dip token
74
73
  uint256 chainId = block.chainid;
@@ -212,13 +211,13 @@ contract TokenRegistry is
212
211
  return _tokenInfo[chainId][token].chainId > 0;
213
212
  }
214
213
 
215
- /// @dev returns true iff both the token is active for the specfied version and the global token state is active
216
- function isActive(uint256 chainId, address token, VersionPart majorVersion) external view returns (bool) {
214
+ /// @dev returns true iff both the token is active for the specfied release and the global token state is active
215
+ function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool) {
217
216
  if(!_tokenInfo[chainId][token].active) {
218
217
  return false;
219
218
  }
220
219
 
221
- return _active[chainId][token][majorVersion];
220
+ return _active[chainId][token][release];
222
221
  }
223
222
 
224
223
  function getDipTokenAddress() external view returns (address) {
@@ -1,23 +1,21 @@
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";
10
8
  import {IComponent} from "./IComponent.sol";
11
9
  import {IComponents} from "../instance/module/IComponents.sol";
12
10
  import {IComponentService} from "./IComponentService.sol";
13
- import {NftId, NftIdLib} from "../type/NftId.sol";
11
+ import {NftId} from "../type/NftId.sol";
14
12
  import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
15
13
  import {Registerable} from "../shared/Registerable.sol";
16
14
  import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {VersionPartLib} from "../type/Version.sol";
15
+ import {Version, VersionLib} from "../type/Version.sol";
16
+
18
17
 
19
18
  abstract contract Component is
20
- AccessManagedUpgradeable,
21
19
  Registerable,
22
20
  IComponent
23
21
  {
@@ -26,7 +24,6 @@ abstract contract Component is
26
24
 
27
25
  struct ComponentStorage {
28
26
  string _name; // unique (per instance) component name
29
- IERC20Metadata _token; // token for this component
30
27
  bool _isInterceptor;
31
28
  bytes _data;
32
29
  IComponentService _componentService;
@@ -40,18 +37,20 @@ abstract contract Component is
40
37
  _;
41
38
  }
42
39
 
40
+
43
41
  function _getComponentStorage() private pure returns (ComponentStorage storage $) {
42
+ // solhint-disable-next-line no-inline-assembly
44
43
  assembly {
45
44
  $.slot := COMPONENT_LOCATION_V1
46
45
  }
47
46
  }
48
47
 
48
+
49
49
  function _initializeComponent(
50
50
  address authority,
51
51
  address registry,
52
52
  NftId parentNftId,
53
53
  string memory name,
54
- address token,
55
54
  ObjectType componentType,
56
55
  bool isInterceptor,
57
56
  address initialOwner,
@@ -62,15 +61,12 @@ abstract contract Component is
62
61
  virtual
63
62
  onlyInitializing()
64
63
  {
65
- if (token == address(0)) {
66
- revert ErrorComponentTokenAddressZero();
67
- }
68
-
69
64
  if (bytes(name).length == 0) {
70
65
  revert ErrorComponentNameLengthZero();
71
66
  }
72
67
 
73
- _initializeRegisterable(
68
+ __Registerable_init(
69
+ authority,
74
70
  registry,
75
71
  parentNftId,
76
72
  componentType,
@@ -78,12 +74,9 @@ abstract contract Component is
78
74
  initialOwner,
79
75
  registryData);
80
76
 
81
- __AccessManaged_init(authority);
82
-
83
77
  // set component state
84
78
  ComponentStorage storage $ = _getComponentStorage();
85
79
  $._name = name;
86
- $._token = IERC20Metadata(token);
87
80
  $._isInterceptor = isInterceptor;
88
81
  $._data = componentData;
89
82
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
@@ -93,35 +86,6 @@ abstract contract Component is
93
86
  }
94
87
 
95
88
 
96
- function approveTokenHandler(IERC20Metadata token, Amount amount)
97
- public
98
- onlyOwner()
99
- {
100
- _approveTokenHandler(token, amount);
101
- }
102
-
103
-
104
- // TODO cleanup
105
- // /// @dev Approves the component's token hander to spend tokens up to the specified limit.
106
- // /// When the spending limit amount equals AmountLib.max it is set to type(uint256).max.
107
- // function approveTokenHandler(address token, Amount spendingLimitAmount)
108
- // public
109
- // virtual
110
- // onlyOwner
111
- // {
112
- // _approveTokenHandler(token, spendingLimitAmount);
113
- // }
114
-
115
-
116
- // function setWallet(address newWallet)
117
- // external
118
- // virtual
119
- // override
120
- // onlyOwner
121
- // {
122
- // _setWallet(newWallet);
123
- // }
124
-
125
89
  /// @dev callback function for nft transfers
126
90
  /// may only be called by chain nft contract.
127
91
  /// override internal function _nftTransferFrom to implement custom behaviour
@@ -142,13 +106,17 @@ abstract contract Component is
142
106
  }
143
107
 
144
108
  function getToken() public view virtual returns (IERC20Metadata token) {
145
- return getComponentInfo().token;
109
+ return getTokenHandler().TOKEN();
146
110
  }
147
111
 
148
112
  function getName() public view override returns(string memory name) {
149
113
  return getComponentInfo().name;
150
114
  }
151
115
 
116
+ function getVersion() public view virtual returns (Version version) {
117
+ return VersionLib.toVersion(1, 0, 0);
118
+ }
119
+
152
120
  function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
153
121
  if (isRegistered()) {
154
122
  return _getComponentInfo();
@@ -178,6 +146,9 @@ abstract contract Component is
178
146
  }
179
147
 
180
148
 
149
+ /// @dev Approves token hanlder to spend up to the specified amount of tokens.
150
+ /// Reverts if component wallet is not token handler itself.
151
+ /// Only component owner (nft holder) is authorizes to call this function.
181
152
  function _approveTokenHandler(IERC20Metadata token, Amount amount)
182
153
  internal
183
154
  virtual
@@ -193,10 +164,14 @@ abstract contract Component is
193
164
  function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
194
165
  internal
195
166
  virtual
196
- { }
167
+ // solhint-disable-next-line no-empty-blocks
168
+ {
169
+ // empty default implementation
170
+ }
197
171
 
198
172
 
199
- /// @dev depending on the source of the component information this function needs to be overwritten.
173
+ /// @dev Sets the components wallet to the specified address.
174
+ /// Depending on the source of the component information this function needs to be overwritten.
200
175
  /// eg for instance linked components that externally store this information with the instance store contract
201
176
  function _setWallet(
202
177
  address newWallet
@@ -207,6 +182,13 @@ abstract contract Component is
207
182
  _getComponentStorage()._componentService.setWallet(newWallet);
208
183
  }
209
184
 
185
+ function _setLocked(bool locked)
186
+ internal
187
+ virtual
188
+ {
189
+ _getComponentStorage()._componentService.setLocked(locked);
190
+ }
191
+
210
192
 
211
193
  /// @dev depending on the source of the component information this function needs to be overwritten.
212
194
  /// eg for instance linked components that externally store this information with the instance store contract
@@ -215,7 +197,6 @@ abstract contract Component is
215
197
 
216
198
  return IComponents.ComponentInfo({
217
199
  name: $._name,
218
- token: $._token,
219
200
  tokenHandler: TokenHandler(address(0)),
220
201
  data: $._data // user specific component data
221
202
  });