@etherisc/gif-next 0.0.2-f7d1200-068 → 0.0.2-f7fa064-035

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 (448) hide show
  1. package/README.md +5 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +157 -273
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +91 -239
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +190 -292
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +107 -123
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +78 -92
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -62
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1519 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1573 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +31 -86
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -123
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +166 -139
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +80 -245
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  77. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  79. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  81. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  87. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +131 -247
  90. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  92. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  94. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -80
  95. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  96. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  97. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +79 -227
  99. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
  101. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
  103. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  104. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -254
  105. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
  107. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +172 -228
  109. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -110
  111. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  112. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -31
  113. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  114. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +91 -77
  115. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +221 -151
  117. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -241
  119. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  120. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +299 -374
  121. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -125
  123. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  124. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
  125. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
  127. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  128. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +136 -243
  129. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  130. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  131. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  132. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +282 -190
  133. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -104
  135. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  136. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
  137. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
  139. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +144 -35
  141. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  143. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  144. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -97
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  146. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  148. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +231 -264
  149. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -119
  151. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
  153. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
  155. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  156. package/artifacts/contracts/product/Product.sol/Product.json +136 -243
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  158. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  162. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  163. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  169. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/Registry.sol/Registry.json +492 -95
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  172. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  174. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
  177. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  179. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
  181. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  183. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  185. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  186. package/artifacts/contracts/shared/Component.sol/Component.json +68 -201
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +355 -299
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -128
  191. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  193. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  195. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
  199. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +66 -80
  201. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  203. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  205. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  207. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  209. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  211. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  214. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  215. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  216. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  217. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +79 -227
  218. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  219. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  220. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  221. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  222. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  224. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  226. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  228. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
  236. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  238. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  240. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  242. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
  244. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  245. package/artifacts/contracts/staking/Staking.sol/Staking.json +167 -270
  246. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  249. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +100 -97
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  257. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
  258. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
  260. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  294. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
  301. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  303. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  307. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  308. package/contracts/authorization/AccessAdmin.sol +64 -59
  309. package/contracts/authorization/Authorization.sol +111 -40
  310. package/contracts/authorization/IAccess.sol +1 -0
  311. package/contracts/authorization/IAccessAdmin.sol +4 -3
  312. package/contracts/authorization/IAuthorization.sol +13 -7
  313. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  314. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  316. package/contracts/distribution/BasicDistribution.sol +2 -1
  317. package/contracts/distribution/Distribution.sol +7 -17
  318. package/contracts/distribution/DistributionService.sol +84 -65
  319. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  320. package/contracts/distribution/IDistributionComponent.sol +1 -1
  321. package/contracts/distribution/IDistributionService.sol +9 -5
  322. package/contracts/examples/fire/DamageLevel.sol +59 -0
  323. package/contracts/examples/fire/FirePool.sol +73 -0
  324. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  325. package/contracts/examples/fire/FireProduct.sol +415 -0
  326. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  327. package/contracts/examples/fire/FireUSD.sol +26 -0
  328. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  329. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  330. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  331. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  332. package/contracts/instance/IInstance.sol +10 -30
  333. package/contracts/instance/IInstanceService.sol +2 -23
  334. package/contracts/instance/Instance.sol +29 -51
  335. package/contracts/instance/InstanceAdmin.sol +43 -32
  336. package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
  337. package/contracts/instance/InstanceReader.sol +106 -19
  338. package/contracts/instance/InstanceService.sol +75 -104
  339. package/contracts/instance/InstanceServiceManager.sol +6 -7
  340. package/contracts/instance/InstanceStore.sol +11 -1
  341. package/contracts/instance/base/ObjectLifecycle.sol +8 -1
  342. package/contracts/instance/module/IComponents.sol +10 -5
  343. package/contracts/instance/module/IPolicy.sol +23 -23
  344. package/contracts/oracle/BasicOracle.sol +0 -1
  345. package/contracts/oracle/IOracleService.sol +2 -1
  346. package/contracts/oracle/Oracle.sol +6 -16
  347. package/contracts/oracle/OracleService.sol +47 -34
  348. package/contracts/oracle/OracleServiceManager.sol +6 -6
  349. package/contracts/pool/BasicPool.sol +14 -26
  350. package/contracts/pool/BasicPoolAuthorization.sol +0 -1
  351. package/contracts/pool/BundleService.sol +93 -50
  352. package/contracts/pool/BundleServiceManager.sol +6 -6
  353. package/contracts/pool/IBundleService.sol +11 -3
  354. package/contracts/pool/IPoolComponent.sol +18 -8
  355. package/contracts/pool/IPoolService.sol +49 -31
  356. package/contracts/pool/Pool.sol +53 -51
  357. package/contracts/pool/PoolService.sol +159 -174
  358. package/contracts/pool/PoolServiceManager.sol +4 -4
  359. package/contracts/product/ApplicationService.sol +59 -30
  360. package/contracts/product/ApplicationServiceManager.sol +4 -4
  361. package/contracts/product/BasicProduct.sol +7 -6
  362. package/contracts/product/BasicProductAuthorization.sol +0 -1
  363. package/contracts/product/ClaimService.sol +309 -121
  364. package/contracts/product/ClaimServiceManager.sol +4 -4
  365. package/contracts/product/IApplicationService.sol +1 -0
  366. package/contracts/product/IClaimService.sol +30 -7
  367. package/contracts/product/IPolicyService.sol +21 -26
  368. package/contracts/product/IPricingService.sol +10 -10
  369. package/contracts/product/IProductComponent.sol +23 -4
  370. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  371. package/contracts/product/PolicyService.sol +309 -174
  372. package/contracts/product/PolicyServiceManager.sol +4 -4
  373. package/contracts/product/PricingService.sol +54 -54
  374. package/contracts/product/PricingServiceManager.sol +3 -3
  375. package/contracts/product/Product.sol +117 -73
  376. package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
  377. package/contracts/product/RiskServiceManager.sol +39 -0
  378. package/contracts/registry/ChainNft.sol +68 -38
  379. package/contracts/registry/IRegistry.sol +55 -18
  380. package/contracts/registry/IRegistryService.sol +5 -12
  381. package/contracts/registry/ITransferInterceptor.sol +1 -2
  382. package/contracts/registry/Registry.sol +342 -201
  383. package/contracts/registry/RegistryAdmin.sol +134 -51
  384. package/contracts/registry/RegistryService.sol +35 -46
  385. package/contracts/registry/RegistryServiceManager.sol +2 -2
  386. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  387. package/contracts/registry/ReleaseRegistry.sol +204 -188
  388. package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
  389. package/contracts/shared/Component.sol +36 -52
  390. package/contracts/shared/ComponentService.sol +246 -151
  391. package/contracts/shared/ComponentServiceManager.sol +8 -5
  392. package/contracts/shared/ComponentVerifyingService.sol +23 -14
  393. package/contracts/shared/ContractLib.sol +38 -0
  394. package/contracts/shared/IComponent.sol +6 -3
  395. package/contracts/shared/IComponentService.sol +25 -13
  396. package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
  397. package/contracts/shared/ILifecycle.sol +3 -1
  398. package/contracts/shared/INftOwnable.sol +2 -0
  399. package/contracts/shared/IPolicyHolder.sol +12 -22
  400. package/contracts/shared/IRegisterable.sol +11 -0
  401. package/contracts/shared/InitializableERC165.sol +2 -2
  402. package/contracts/shared/InstanceLinkedComponent.sol +72 -31
  403. package/contracts/shared/KeyValueStore.sol +1 -1
  404. package/contracts/shared/Lifecycle.sol +15 -4
  405. package/contracts/shared/NftOwnable.sol +27 -7
  406. package/contracts/shared/PolicyHolder.sol +15 -52
  407. package/contracts/shared/Registerable.sol +19 -9
  408. package/contracts/shared/RegistryLinked.sol +3 -2
  409. package/contracts/shared/Service.sol +20 -18
  410. package/contracts/shared/TokenHandler.sol +99 -22
  411. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  412. package/contracts/staking/IStaking.sol +2 -1
  413. package/contracts/staking/IStakingService.sol +0 -3
  414. package/contracts/staking/StakeManagerLib.sol +18 -25
  415. package/contracts/staking/Staking.sol +13 -32
  416. package/contracts/staking/StakingManager.sol +8 -6
  417. package/contracts/staking/StakingReader.sol +12 -5
  418. package/contracts/staking/StakingService.sol +17 -17
  419. package/contracts/staking/StakingServiceManager.sol +2 -2
  420. package/contracts/staking/TargetManagerLib.sol +7 -3
  421. package/contracts/type/Amount.sol +15 -0
  422. package/contracts/type/ClaimId.sol +6 -1
  423. package/contracts/type/NftId.sol +1 -0
  424. package/contracts/type/ObjectType.sol +16 -11
  425. package/contracts/type/PayoutId.sol +10 -10
  426. package/contracts/type/RiskId.sol +15 -1
  427. package/contracts/type/RoleId.sol +0 -12
  428. package/contracts/type/Seconds.sol +8 -0
  429. package/contracts/type/StateId.sol +15 -1
  430. package/contracts/type/UFixed.sol +4 -0
  431. package/contracts/upgradeability/ProxyManager.sol +68 -34
  432. package/contracts/upgradeability/Versionable.sol +2 -2
  433. package/package.json +3 -2
  434. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  435. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  436. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  437. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  438. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  439. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  440. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  441. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  442. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  443. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  444. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  445. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  446. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  447. package/contracts/product/ProductServiceManager.sol +0 -39
  448. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -2,14 +2,12 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- ALL, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
5
+ ALL, REGISTRY, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {ComponentService} from "../shared/ComponentService.sol";
9
8
  import {IAccess} from "../authorization/IAccess.sol";
10
9
  import {IBundleService} from "../pool/IBundleService.sol";
11
10
  import {IDistributionService} from "../distribution/IDistributionService.sol";
12
- import {InstanceService} from "../instance/InstanceService.sol";
13
11
  import {IInstanceService} from "../instance/IInstanceService.sol";
14
12
  import {IPoolService} from "../pool/IPoolService.sol";
15
13
  import {IStakingService} from "../staking/IStakingService.sol";
@@ -22,7 +20,7 @@ contract ServiceAuthorizationV3
22
20
  {
23
21
 
24
22
  constructor(string memory commitHash)
25
- ServiceAuthorization(commitHash)
23
+ ServiceAuthorization(commitHash, 3)
26
24
  {}
27
25
 
28
26
  function _setupDomains()
@@ -39,9 +37,9 @@ contract ServiceAuthorizationV3
39
37
  _authorizeDomain(POOL(), address(8));
40
38
  _authorizeDomain(ORACLE(), address(9));
41
39
  _authorizeDomain(PRODUCT(), address(10));
42
- _authorizeDomain(CLAIM(), address(11));
43
- _authorizeDomain(APPLICATION(), address(12));
44
- _authorizeDomain(POLICY(), address(13));
40
+ _authorizeDomain(POLICY(), address(11));
41
+ _authorizeDomain(CLAIM(), address(12));
42
+ _authorizeDomain(APPLICATION(), address(13));
45
43
  }
46
44
 
47
45
 
@@ -69,27 +67,21 @@ contract ServiceAuthorizationV3
69
67
  functions = _authorizeForService(REGISTRY(), APPLICATION());
70
68
  _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
71
69
 
72
- // functions = _authorizeForService(REGISTRY(), POOL());
73
- // _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
74
-
75
70
  functions = _authorizeForService(REGISTRY(), BUNDLE());
76
71
  _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
77
72
 
73
+ functions = _authorizeForService(REGISTRY(), COMPONENT());
74
+ _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
75
+ _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
76
+
78
77
  functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
79
- // _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
80
78
  _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
81
79
 
82
- functions = _authorizeForService(REGISTRY(), COMPONENT());
83
- _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
84
-
85
80
  functions = _authorizeForService(REGISTRY(), INSTANCE());
86
81
  _authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
87
82
 
88
83
  functions = _authorizeForService(REGISTRY(), STAKING());
89
84
  _authorize(functions, IRegistryService.registerStake.selector, "registerStake");
90
-
91
- // functions = _authorizeForService(REGISTRY(), PRODUCT());
92
- // _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
93
85
  }
94
86
 
95
87
 
@@ -121,10 +113,11 @@ contract ServiceAuthorizationV3
121
113
  function _setupInstanceServiceAuthorization()
122
114
  internal
123
115
  {
124
- IAccess.FunctionInfo[] storage functions;
116
+ // TODO cleanup
117
+ // IAccess.FunctionInfo[] storage functions;
125
118
 
126
- functions = _authorizeForService(INSTANCE(), COMPONENT());
127
- _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
119
+ // functions = _authorizeForService(INSTANCE(), COMPONENT());
120
+ // _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
128
121
  }
129
122
 
130
123
 
@@ -132,6 +125,7 @@ contract ServiceAuthorizationV3
132
125
  function _setupComponentServiceAuthorization()
133
126
  internal
134
127
  {
128
+ // TODO cleanup
135
129
  // authz.authorizations = new DomainAuthorization[](4);
136
130
 
137
131
  // authz.authorizations[0].domain = POLICY();
@@ -163,6 +157,7 @@ contract ServiceAuthorizationV3
163
157
 
164
158
  functions = _authorizeForService(DISTRIBUTION(), POLICY());
165
159
  _authorize(functions, IDistributionService.processSale.selector, "processSale");
160
+ _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
166
161
  }
167
162
 
168
163
 
@@ -175,11 +170,10 @@ contract ServiceAuthorizationV3
175
170
  functions = _authorizeForService(POOL(), POLICY());
176
171
  _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
177
172
  _authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
178
- _authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
179
173
  _authorize(functions, IPoolService.processSale.selector, "processSale");
180
174
 
181
175
  functions = _authorizeForService(POOL(), CLAIM());
182
- _authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
176
+ _authorize(functions, IPoolService.processPayout.selector, "processPayout");
183
177
  }
184
178
 
185
179
 
@@ -10,7 +10,7 @@ import {Amount, AmountLib} from "../type/Amount.sol";
10
10
  import {IComponent} from "./IComponent.sol";
11
11
  import {IComponents} from "../instance/module/IComponents.sol";
12
12
  import {NftId, NftIdLib} from "../type/NftId.sol";
13
- import {ObjectType} from "../type/ObjectType.sol";
13
+ import {ObjectType, PRODUCT} from "../type/ObjectType.sol";
14
14
  import {Registerable} from "../shared/Registerable.sol";
15
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
16
  import {VersionPartLib} from "../type/Version.sol";
@@ -39,20 +39,13 @@ abstract contract Component is
39
39
  _;
40
40
  }
41
41
 
42
- modifier onlyNftOwner(NftId nftId) {
43
- if(msg.sender != getRegistry().ownerOf(nftId)) {
44
- revert ErrorNftOwnableNotOwner(msg.sender);
45
- }
46
- _;
47
- }
48
-
49
42
  function _getComponentStorage() private pure returns (ComponentStorage storage $) {
50
43
  assembly {
51
44
  $.slot := COMPONENT_LOCATION_V1
52
45
  }
53
46
  }
54
47
 
55
- function initializeComponent(
48
+ function _initializeComponent(
56
49
  address authority,
57
50
  address registry,
58
51
  NftId parentNftId,
@@ -64,13 +57,10 @@ abstract contract Component is
64
57
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
58
  bytes memory componentData // other component specific data
66
59
  )
67
- public
60
+ internal
68
61
  virtual
69
62
  onlyInitializing()
70
63
  {
71
- initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
72
- __AccessManaged_init(authority);
73
-
74
64
  if (token == address(0)) {
75
65
  revert ErrorComponentTokenAddressZero();
76
66
  }
@@ -79,6 +69,16 @@ abstract contract Component is
79
69
  revert ErrorComponentNameLengthZero();
80
70
  }
81
71
 
72
+ _initializeRegisterable(
73
+ registry,
74
+ parentNftId,
75
+ componentType,
76
+ isInterceptor,
77
+ initialOwner,
78
+ registryData);
79
+
80
+ __AccessManaged_init(authority);
81
+
82
82
  // set component state
83
83
  ComponentStorage storage $ = _getComponentStorage();
84
84
  $._name = name;
@@ -87,8 +87,8 @@ abstract contract Component is
87
87
  $._isInterceptor = isInterceptor;
88
88
  $._data = componentData;
89
89
 
90
- registerInterface(type(IAccessManaged).interfaceId);
91
- registerInterface(type(IComponent).interfaceId);
90
+ _registerInterface(type(IAccessManaged).interfaceId);
91
+ _registerInterface(type(IComponent).interfaceId);
92
92
  }
93
93
 
94
94
 
@@ -100,6 +100,8 @@ abstract contract Component is
100
100
  approveTokenHandler(address(getToken()), spendingLimitAmount);
101
101
  }
102
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.
103
105
  function approveTokenHandler(address token, Amount spendingLimitAmount)
104
106
  public
105
107
  virtual
@@ -109,11 +111,18 @@ abstract contract Component is
109
111
  revert ErrorComponentWalletNotComponent();
110
112
  }
111
113
 
112
- emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
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);
113
122
 
114
123
  IERC20Metadata(token).approve(
115
124
  address(getTokenHandler()),
116
- spendingLimitAmount.toInt());
125
+ spendingLimit);
117
126
  }
118
127
 
119
128
  function setWallet(address newWallet)
@@ -124,57 +133,33 @@ abstract contract Component is
124
133
  {
125
134
  // checks
126
135
  address currentWallet = getWallet();
127
- IERC20Metadata token = getToken();
128
- uint256 currentBalance = token.balanceOf(currentWallet);
129
-
130
- if (currentBalance > 0) {
131
- if (currentWallet == address(this)) {
132
- // move tokens from component smart contract to external wallet
133
- } else {
134
- // move tokens from external wallet to component smart contract or another external wallet
135
- uint256 allowance = token.allowance(currentWallet, address(getTokenHandler()));
136
- if (allowance < currentBalance) {
137
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
138
- }
139
- }
140
- }
136
+ uint256 currentBalance = getToken().balanceOf(currentWallet);
141
137
 
142
138
  // effects
143
139
  _setWallet(newWallet);
144
140
 
145
141
  // interactions
146
142
  if (currentBalance > 0) {
143
+ // move tokens from old to new wallet
147
144
  emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
148
145
 
149
- // transfer tokens from current wallet to new wallet
150
146
  if (currentWallet == address(this)) {
151
- // transferFrom requires self allowance too
152
- token.approve(address(getTokenHandler()), currentBalance);
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));
153
151
  }
154
-
155
- getTokenHandler().transfer(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
156
152
  }
157
153
  }
158
154
 
159
-
160
- /// @dev callback function for nft mints
161
- /// may only be called by chain nft contract.
162
- /// override internal function _nftMint to implement custom behaviour
163
- function nftMint(address to, uint256 tokenId)
164
- external
165
- onlyChainNft
166
- {
167
- _nftMint(to, tokenId);
168
- }
169
-
170
155
  /// @dev callback function for nft transfers
171
156
  /// may only be called by chain nft contract.
172
157
  /// override internal function _nftTransferFrom to implement custom behaviour
173
- function nftTransferFrom(address from, address to, uint256 tokenId)
158
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
174
159
  external
175
160
  onlyChainNft
176
161
  {
177
- _nftTransferFrom(from, to, tokenId);
162
+ _nftTransferFrom(from, to, tokenId, operator);
178
163
  }
179
164
 
180
165
 
@@ -219,7 +204,7 @@ abstract contract Component is
219
204
 
220
205
 
221
206
  function isRegistered() public virtual view returns (bool) {
222
- return getRegistry().getNftId(address(this)).gtz();
207
+ return getRegistry().getNftIdForAddress(address(this)).gtz();
223
208
  }
224
209
 
225
210
 
@@ -232,7 +217,7 @@ abstract contract Component is
232
217
 
233
218
  /// @dev internal function for nft transfers.
234
219
  /// handling logic that deals with nft transfers need to overwrite this function
235
- function _nftTransferFrom(address from, address to, uint256 tokenId)
220
+ function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
236
221
  internal
237
222
  virtual
238
223
  { }
@@ -265,7 +250,6 @@ abstract contract Component is
265
250
 
266
251
  return IComponents.ComponentInfo({
267
252
  name: $._name,
268
- productNftId: NftIdLib.zero(),
269
253
  token: $._token,
270
254
  tokenHandler: TokenHandler(address(0)),
271
255
  wallet: $._wallet, // initial wallet address