@etherisc/gif-next 0.0.2-a755cba-665 → 0.0.2-a7722ab-390

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 (458) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +63 -56
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +29 -31
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +222 -21
  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 +348 -184
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -13
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -146
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +38 -94
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +257 -171
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -60
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +25 -81
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +67 -63
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +221 -210
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -33
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +121 -162
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -33
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +75 -68
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +78 -71
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +233 -173
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -33
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +157 -28
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +107 -8
  68. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/Instance.sol/Instance.json +186 -53
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -202
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +120 -84
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -362
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  86. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  95. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +60 -51
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -35
  105. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -21
  108. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  110. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +44 -35
  112. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  114. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -36
  116. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +43 -34
  118. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
  120. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  122. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +42 -64
  124. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  126. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -21
  128. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  130. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -34
  132. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +70 -56
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +123 -50
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +37 -27
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -125
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +119 -178
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -66
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +27 -21
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -112
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
  164. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -56
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +106 -78
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +40 -42
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +149 -125
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +548 -429
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +323 -53
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +43 -34
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -138
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +47 -49
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +113 -4
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -21
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +44 -45
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +30 -21
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -34
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +104 -30
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +127 -3
  263. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/Staking.sol/Staking.json +159 -87
  265. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  267. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -32
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +166 -51
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -29
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +142 -128
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +32 -22
  281. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  328. package/contracts/accounting/AccountingService.sol +3 -4
  329. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  330. package/contracts/authorization/AccessAdmin.sol +293 -204
  331. package/contracts/authorization/AccessAdminLib.sol +183 -0
  332. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  333. package/contracts/authorization/Authorization.sol +307 -231
  334. package/contracts/authorization/IAccessAdmin.sol +69 -36
  335. package/contracts/authorization/IAuthorization.sol +21 -1
  336. package/contracts/distribution/BasicDistribution.sol +13 -11
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  338. package/contracts/distribution/Distribution.sol +13 -56
  339. package/contracts/distribution/DistributionService.sol +58 -30
  340. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  341. package/contracts/distribution/IDistributionComponent.sol +0 -9
  342. package/contracts/distribution/IDistributionService.sol +18 -15
  343. package/contracts/examples/fire/FirePool.sol +0 -4
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  345. package/contracts/examples/fire/FireProduct.sol +4 -7
  346. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  347. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  348. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  350. package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
  351. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -8
  353. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  354. package/contracts/instance/BundleSet.sol +4 -4
  355. package/contracts/instance/IInstance.sol +51 -16
  356. package/contracts/instance/IInstanceService.sol +20 -2
  357. package/contracts/instance/Instance.sol +90 -25
  358. package/contracts/instance/InstanceAdmin.sol +261 -99
  359. package/contracts/instance/InstanceAuthorizationV3.sol +48 -36
  360. package/contracts/instance/InstanceReader.sol +103 -34
  361. package/contracts/instance/InstanceService.sol +154 -87
  362. package/contracts/instance/InstanceServiceManager.sol +1 -1
  363. package/contracts/instance/InstanceStore.sol +13 -2
  364. package/contracts/instance/RiskSet.sol +11 -12
  365. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  366. package/contracts/instance/base/ObjectSet.sol +7 -8
  367. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  368. package/contracts/instance/module/IComponents.sol +3 -3
  369. package/contracts/instance/module/IDistribution.sol +5 -2
  370. package/contracts/instance/module/IRisk.sol +2 -0
  371. package/contracts/oracle/BasicOracle.sol +1 -3
  372. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  373. package/contracts/oracle/Oracle.sol +1 -3
  374. package/contracts/oracle/OracleService.sol +16 -15
  375. package/contracts/oracle/OracleServiceManager.sol +1 -1
  376. package/contracts/pool/BasicPool.sol +0 -2
  377. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  378. package/contracts/pool/BundleService.sol +28 -58
  379. package/contracts/pool/BundleServiceManager.sol +1 -1
  380. package/contracts/pool/IBundleService.sol +13 -19
  381. package/contracts/pool/IPoolService.sol +50 -38
  382. package/contracts/pool/Pool.sol +9 -11
  383. package/contracts/pool/PoolLib.sol +216 -0
  384. package/contracts/pool/PoolService.sol +294 -154
  385. package/contracts/pool/PoolServiceManager.sol +1 -1
  386. package/contracts/product/ApplicationService.sol +24 -9
  387. package/contracts/product/ApplicationServiceManager.sol +1 -1
  388. package/contracts/product/BasicProduct.sol +2 -2
  389. package/contracts/product/BasicProductAuthorization.sol +23 -8
  390. package/contracts/product/ClaimService.sol +83 -134
  391. package/contracts/product/ClaimServiceManager.sol +1 -1
  392. package/contracts/product/IApplicationService.sol +3 -0
  393. package/contracts/product/IClaimService.sol +1 -2
  394. package/contracts/product/IPolicyService.sol +11 -6
  395. package/contracts/product/IPricingService.sol +1 -0
  396. package/contracts/product/IProductComponent.sol +4 -1
  397. package/contracts/product/IRiskService.sol +7 -7
  398. package/contracts/product/PolicyService.sol +86 -158
  399. package/contracts/product/PolicyServiceLib.sol +65 -0
  400. package/contracts/product/PolicyServiceManager.sol +1 -1
  401. package/contracts/product/PricingService.sol +28 -19
  402. package/contracts/product/PricingServiceManager.sol +3 -3
  403. package/contracts/product/Product.sol +33 -17
  404. package/contracts/product/RiskService.sol +76 -29
  405. package/contracts/product/RiskServiceManager.sol +1 -1
  406. package/contracts/registry/IRegistry.sol +8 -15
  407. package/contracts/registry/IRelease.sol +26 -0
  408. package/contracts/registry/Registry.sol +7 -2
  409. package/contracts/registry/RegistryAdmin.sol +143 -342
  410. package/contracts/registry/RegistryAuthorization.sol +267 -0
  411. package/contracts/registry/RegistryService.sol +3 -3
  412. package/contracts/registry/RegistryServiceManager.sol +1 -1
  413. package/contracts/registry/ReleaseAdmin.sol +253 -0
  414. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  415. package/contracts/registry/ReleaseRegistry.sol +146 -115
  416. package/contracts/registry/ServiceAuthorizationV3.sol +126 -2
  417. package/contracts/registry/TokenRegistry.sol +6 -8
  418. package/contracts/shared/Component.sol +17 -26
  419. package/contracts/shared/ComponentService.sol +141 -129
  420. package/contracts/shared/ComponentServiceManager.sol +1 -1
  421. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  422. package/contracts/shared/ContractLib.sol +60 -3
  423. package/contracts/shared/IComponent.sol +0 -4
  424. package/contracts/shared/IComponentService.sol +7 -11
  425. package/contracts/shared/IRegisterable.sol +15 -4
  426. package/contracts/shared/IService.sol +3 -5
  427. package/contracts/shared/InitializableERC165.sol +9 -1
  428. package/contracts/shared/InstanceLinkedComponent.sol +2 -4
  429. package/contracts/shared/NftOwnable.sol +5 -5
  430. package/contracts/shared/PolicyHolder.sol +1 -1
  431. package/contracts/shared/Registerable.sol +42 -19
  432. package/contracts/shared/RegistryLinked.sol +1 -1
  433. package/contracts/shared/Service.sol +8 -27
  434. package/contracts/shared/TokenHandler.sol +45 -92
  435. package/contracts/staking/IStaking.sol +12 -10
  436. package/contracts/staking/IStakingService.sol +16 -1
  437. package/contracts/staking/Staking.sol +59 -28
  438. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  439. package/contracts/staking/StakingReader.sol +6 -16
  440. package/contracts/staking/StakingService.sol +68 -44
  441. package/contracts/staking/StakingServiceManager.sol +5 -4
  442. package/contracts/staking/StakingStore.sol +2 -1
  443. package/contracts/type/ObjectType.sol +47 -39
  444. package/contracts/type/RiskId.sol +9 -3
  445. package/contracts/type/RoleId.sol +24 -4
  446. package/contracts/type/Selector.sol +5 -0
  447. package/contracts/type/Timestamp.sol +0 -5
  448. package/contracts/type/Version.sol +54 -5
  449. package/contracts/upgradeability/ProxyManager.sol +1 -1
  450. package/package.json +2 -2
  451. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  452. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  453. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  454. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  455. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  456. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  457. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  458. package/contracts/instance/module/IAccess.sol +0 -46
@@ -2,27 +2,28 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccountingService} from "../accounting/IAccountingService.sol";
5
- import {IRegistry} from "../registry/IRegistry.sol";
6
- import {IInstance} from "../instance/IInstance.sol";
7
5
  import {IComponentService} from "../shared/IComponentService.sol";
6
+ import {IDistribution} from "../instance/module/IDistribution.sol";
7
+ import {IDistributionService} from "./IDistributionService.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
8
9
  import {IInstanceService} from "../instance/IInstanceService.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
9
11
  import {IRegistryService} from "../registry/IRegistryService.sol";
10
- import {InstanceReader} from "../instance/InstanceReader.sol";
11
12
  import {IComponents} from "../instance/module/IComponents.sol";
12
13
  import {IPolicy} from "../instance/module/IPolicy.sol";
13
14
 
14
15
  import {Amount, AmountLib} from "../type/Amount.sol";
16
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
17
+ import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
15
18
  import {NftId, NftIdLib} from "../type/NftId.sol";
16
19
  import {KEEP_STATE} from "../type/StateId.sol";
17
20
  import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
18
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
19
- import {IDistributionService} from "./IDistributionService.sol";
20
- import {UFixed} from "../type/UFixed.sol";
21
- import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
21
+ import {InstanceReader} from "../instance/InstanceReader.sol";
22
+ import {InstanceStore} from "../instance/InstanceStore.sol";
22
23
  import {ReferralId, ReferralLib} from "../type/Referral.sol";
24
+ import {Seconds} from "../type/Seconds.sol";
23
25
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
- import {IDistribution} from "../instance/module/IDistribution.sol";
25
- import {InstanceStore} from "../instance/InstanceStore.sol";
26
+ import {UFixed} from "../type/UFixed.sol";
26
27
 
27
28
 
28
29
  contract DistributionService is
@@ -43,11 +44,11 @@ contract DistributionService is
43
44
  initializer()
44
45
  {
45
46
  (
46
- address registryAddress,
47
- address authority
47
+ address authority,
48
+ address registry
48
49
  ) = abi.decode(data, (address, address));
49
50
 
50
- _initializeService(registryAddress, authority, owner);
51
+ __Service_init(authority, registry, owner);
51
52
 
52
53
  _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
53
54
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
@@ -64,7 +65,7 @@ contract DistributionService is
64
65
  UFixed maxDiscountPercentage,
65
66
  UFixed commissionPercentage,
66
67
  uint32 maxReferralCount,
67
- uint32 maxReferralLifetime,
68
+ Seconds maxReferralLifetime,
68
69
  bool allowSelfReferrals,
69
70
  bool allowRenewals,
70
71
  bytes memory data
@@ -73,14 +74,13 @@ contract DistributionService is
73
74
  returns (DistributorType distributorType)
74
75
  {
75
76
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
76
- // InstanceReader instanceReader = instance.getInstanceReader();
77
77
 
78
78
  {
79
79
  NftId productNftId = _getProductNftId(distributionNftId);
80
- IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
80
+ IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
81
81
 
82
- UFixed variableDistributionFees = productInfo.distributionFee.fractionalFee;
83
- UFixed variableFeesPartsTotal = productInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
82
+ UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
83
+ UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
84
84
 
85
85
  if (variableFeesPartsTotal > variableDistributionFees) {
86
86
  revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
@@ -95,6 +95,7 @@ contract DistributionService is
95
95
  distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
96
96
  IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
97
97
  name,
98
+ distributionNftId,
98
99
  minDiscountPercentage,
99
100
  maxDiscountPercentage,
100
101
  commissionPercentage,
@@ -118,6 +119,7 @@ contract DistributionService is
118
119
  returns (NftId distributorNftId)
119
120
  {
120
121
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
122
+ _checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
121
123
 
122
124
  distributorNftId = _registryService.registerDistributor(
123
125
  IRegistry.ObjectInfo(
@@ -141,15 +143,18 @@ contract DistributionService is
141
143
 
142
144
  function changeDistributorType(
143
145
  NftId distributorNftId,
144
- DistributorType distributorType,
146
+ DistributorType newDistributorType,
145
147
  bytes memory data
146
148
  )
147
149
  external
148
150
  virtual
149
151
  {
150
- (,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
152
+ _checkNftType(distributorNftId, DISTRIBUTOR());
153
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
154
+ _checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
155
+
151
156
  IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
152
- distributorInfo.distributorType = distributorType;
157
+ distributorInfo.distributorType = newDistributorType;
153
158
  distributorInfo.data = data;
154
159
  instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
155
160
  }
@@ -171,10 +176,15 @@ contract DistributionService is
171
176
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
172
177
 
173
178
  if (bytes(code).length == 0) {
174
- revert ErrorIDistributionServiceInvalidReferral(code);
179
+ revert ErrorDistributionServiceInvalidReferral(code);
175
180
  }
176
181
  if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
177
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
182
+ revert ErrorDistributionServiceExpirationInvalid(expiryAt);
183
+ }
184
+
185
+ NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
186
+ if (distributorDistributionNftId != distributionNftId) {
187
+ revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
178
188
  }
179
189
 
180
190
  {
@@ -183,22 +193,23 @@ contract DistributionService is
183
193
  IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
184
194
 
185
195
  if (distributorTypeData.maxReferralCount < maxReferrals) {
186
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
196
+ revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
187
197
  }
188
198
  if (distributorTypeData.minDiscountPercentage > discountPercentage) {
189
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
199
+ revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
190
200
  }
191
201
  if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
192
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
202
+ revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
193
203
  }
194
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
195
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
204
+ if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
205
+ revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
196
206
  }
197
207
  }
198
208
 
199
209
  {
200
210
  referralId = ReferralLib.toReferralId(distributionNftId, code);
201
211
  IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
212
+ distributionNftId,
202
213
  distributorNftId,
203
214
  code,
204
215
  discountPercentage,
@@ -313,8 +324,8 @@ contract DistributionService is
313
324
  // transfer amount to distributor
314
325
  {
315
326
  address distributor = getRegistry().ownerOf(distributorNftId);
316
- emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
317
- distributionInfo.tokenHandler.distributeTokens(distributionWallet, distributor, withdrawnAmount);
327
+ emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
328
+ distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
318
329
  }
319
330
  }
320
331
 
@@ -337,16 +348,33 @@ contract DistributionService is
337
348
  return false;
338
349
  }
339
350
 
351
+ // ensure the referral was created on the same distribution
352
+ if(info.distributionNftId != distributionNftId) {
353
+ revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
354
+ }
355
+
340
356
  isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
341
357
  isValid = isValid && info.usedReferrals < info.maxReferrals;
342
358
  }
343
359
 
360
+ function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
361
+ internal
362
+ view
363
+ {
364
+ // enfore distributor type belongs to the calling distribution
365
+ NftId distributorTypeDistributionNftId = instanceReader.getDistributorTypeInfo(distributorType).distributionNftId;
366
+
367
+ if (distributorTypeDistributionNftId != expectedDistributionNftId) {
368
+ revert ErrorDistributionServiceDistributorTypeDistributionMismatch(distributorType, distributorTypeDistributionNftId, expectedDistributionNftId);
369
+ }
370
+ }
371
+
344
372
  function _getInstanceForDistribution(NftId distributionNftId)
345
373
  internal
346
374
  view
347
375
  returns(IInstance instance)
348
376
  {
349
- NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
377
+ NftId instanceNftId = getRegistry().getParentNftId(distributionNftId);
350
378
  address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
351
379
  return IInstance(instanceAddress);
352
380
  }
@@ -17,7 +17,7 @@ contract DistributionServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  DistributionService svc = new DistributionService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -9,17 +9,8 @@ import {UFixed} from "../type/UFixed.sol";
9
9
 
10
10
  interface IDistributionComponent is IInstanceLinkedComponent {
11
11
 
12
- error ErrorDistributionNotDistributor(address distributor);
13
- error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
14
-
15
12
  event LogDistributorUpdated(address to, address operator);
16
13
 
17
- /// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
18
- function isDistributor(address candidate) external view returns (bool);
19
-
20
- /// @dev Returns the distributor Nft Id for the provided address
21
- function getDistributorNftId(address distributor) external view returns (NftId distributorNftId);
22
-
23
14
  function getDiscountPercentage(
24
15
  string memory referralCode
25
16
  ) external view returns (UFixed discountPercentage, ReferralStatus status);
@@ -8,31 +8,34 @@ import {IService} from "../shared/IService.sol";
8
8
  import {UFixed} from "../type/UFixed.sol";
9
9
  import {DistributorType} from "../type/DistributorType.sol";
10
10
  import {ReferralId} from "../type/Referral.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
11
12
  import {Timestamp} from "../type/Timestamp.sol";
12
13
 
13
14
 
14
15
  interface IDistributionService is IService {
15
-
16
16
  error ErrorDistributionServiceCallerNotRegistered(address caller);
17
- error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
- error ErrorIDistributionServiceCallerNotDistributor(address caller);
19
- error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
20
- error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
21
- error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
22
- error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
23
- error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
24
- error ErrorIDistributionServiceInvalidReferral(string code);
25
- error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
- error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
- error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
17
+ error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
+ error ErrorDistributionServiceCallerNotDistributor(address caller);
19
+ error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
20
+ error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
21
+ error ErrorDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
22
+ error ErrorDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
23
+ error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
24
+ error ErrorDistributionServiceInvalidReferral(string code);
25
+ error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
+ error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
+ error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
28
+ error ErrorDistributionServiceDistributorTypeDistributionMismatch(DistributorType distributorType, NftId distributorTypeDistributionNftId, NftId distributionNftId);
29
+ error ErrorDistributionServiceDistributorDistributionMismatch(NftId distributorNftId, NftId distributorDistributionNftId, NftId distributionNftId);
28
30
 
29
31
  error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
30
32
 
31
33
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
32
34
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
33
35
 
34
- error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
36
+ error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
35
37
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
38
+ error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
36
39
 
37
40
  event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
38
41
 
@@ -42,7 +45,7 @@ interface IDistributionService is IService {
42
45
  UFixed maxDiscountPercentage,
43
46
  UFixed commissionPercentage,
44
47
  uint32 maxReferralCount,
45
- uint32 maxReferralLifetime,
48
+ Seconds maxReferralLifetime,
46
49
  bool allowSelfReferrals,
47
50
  bool allowRenewals,
48
51
  bytes memory data
@@ -58,7 +61,7 @@ interface IDistributionService is IService {
58
61
 
59
62
  function changeDistributorType(
60
63
  NftId distributorNftId,
61
- DistributorType distributorType,
64
+ DistributorType newDistributorType,
62
65
  bytes memory data
63
66
  ) external;
64
67
 
@@ -19,7 +19,6 @@ contract FirePool is
19
19
  address registry,
20
20
  NftId fireProductNftId,
21
21
  string memory componentName,
22
- address token,
23
22
  IAuthorization authorization
24
23
  )
25
24
  {
@@ -28,7 +27,6 @@ contract FirePool is
28
27
  registry,
29
28
  fireProductNftId,
30
29
  componentName,
31
- token,
32
30
  IComponents.PoolInfo({
33
31
  maxBalanceAmount: AmountLib.max(),
34
32
  isInterceptingBundleTransfers: false,
@@ -46,7 +44,6 @@ contract FirePool is
46
44
  address registry,
47
45
  NftId fireProductNftId,
48
46
  string memory componentName,
49
- address token,
50
47
  IComponents.PoolInfo memory poolInfo,
51
48
  IAuthorization authorization,
52
49
  address initialOwner
@@ -58,7 +55,6 @@ contract FirePool is
58
55
  registry,
59
56
  fireProductNftId,
60
57
  componentName,
61
- token,
62
58
  poolInfo,
63
59
  authorization,
64
60
  initialOwner);
@@ -25,7 +25,7 @@ contract FirePoolAuthorization
25
25
  IAccess.FunctionInfo[] storage functions;
26
26
 
27
27
  // authorize public role (open access to any account, only allows to lock target)
28
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
28
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
29
29
  // TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
30
30
  _authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
31
31
  _authorize(functions, FirePool.createBundle.selector, "createBundle");
@@ -68,7 +68,6 @@ contract FireProduct is
68
68
  address registry,
69
69
  NftId instanceNftid,
70
70
  string memory componentName,
71
- address token,
72
71
  IAuthorization authorization
73
72
  )
74
73
  {
@@ -78,7 +77,6 @@ contract FireProduct is
78
77
  registry,
79
78
  instanceNftid,
80
79
  componentName,
81
- token,
82
80
  authorization,
83
81
  initialOwner);
84
82
  }
@@ -87,7 +85,6 @@ contract FireProduct is
87
85
  address registry,
88
86
  NftId instanceNftId,
89
87
  string memory componentName,
90
- address token,
91
88
  IAuthorization authorization,
92
89
  address initialOwner
93
90
  )
@@ -98,7 +95,6 @@ contract FireProduct is
98
95
  registry,
99
96
  instanceNftId,
100
97
  componentName,
101
- token,
102
98
  IComponents.ProductInfo({
103
99
  isProcessingFundedClaims: false,
104
100
  isInterceptingPolicyTransfers: false,
@@ -107,7 +103,9 @@ contract FireProduct is
107
103
  numberOfOracles: 0,
108
104
  poolNftId: NftIdLib.zero(),
109
105
  distributionNftId: NftIdLib.zero(),
110
- oracleNftId: new NftId[](0),
106
+ oracleNftId: new NftId[](0)
107
+ }),
108
+ IComponents.FeeInfo({
111
109
  productFee: FeeLib.zero(),
112
110
  processingFee: FeeLib.zero(),
113
111
  distributionFee: FeeLib.zero(),
@@ -250,8 +248,7 @@ contract FireProduct is
250
248
  return _riskMapping[cityName];
251
249
  }
252
250
  _cities.push(cityName);
253
- risk = RiskIdLib.toRiskId(cityName);
254
- _createRisk(risk, "");
251
+ risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
255
252
  _riskMapping[cityName] = risk;
256
253
  }
257
254
 
@@ -23,7 +23,7 @@ contract FireProductAuthorization
23
23
  IAccess.FunctionInfo[] storage functions;
24
24
 
25
25
  // authorize public role (open access to any account, only allows to lock target)
26
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
26
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
27
27
  // fully public functions
28
28
  _authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
29
29
  _authorize(functions, FireProduct.createApplication.selector, "createApplication");
@@ -7,6 +7,9 @@ import {Amount} from "../../type/Amount.sol";
7
7
  import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
8
8
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
9
  import {NftId} from "../../type/NftId.sol";
10
+ import {ReferralId} from "../../type/Referral.sol";
11
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
12
+ import {UFixed, UFixedLib} from "../../type/UFixed.sol";
10
13
 
11
14
 
12
15
  contract SimpleDistribution is
@@ -17,8 +20,7 @@ contract SimpleDistribution is
17
20
  address registry,
18
21
  NftId productNftId,
19
22
  IAuthorization authorization,
20
- address initialOwner,
21
- address token
23
+ address initialOwner
22
24
  )
23
25
  {
24
26
  initialize(
@@ -26,8 +28,7 @@ contract SimpleDistribution is
26
28
  productNftId,
27
29
  authorization,
28
30
  initialOwner,
29
- "SimpleDistribution",
30
- token);
31
+ "SimpleDistribution");
31
32
  }
32
33
 
33
34
  function initialize(
@@ -35,8 +36,7 @@ contract SimpleDistribution is
35
36
  NftId productNftId,
36
37
  IAuthorization authorization,
37
38
  address initialOwner,
38
- string memory name,
39
- address token
39
+ string memory name
40
40
  )
41
41
  public
42
42
  virtual
@@ -47,11 +47,35 @@ contract SimpleDistribution is
47
47
  productNftId,
48
48
  authorization,
49
49
  initialOwner,
50
- name,
51
- token);
50
+ name);
52
51
  }
53
52
 
54
53
  function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
55
54
  function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
56
55
  function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
56
+
57
+ /**
58
+ * @dev create referral codes. This is required for testing only to provide a distributor that is not the message sender.
59
+ */
60
+ function createReferral2(
61
+ NftId distributorNftId,
62
+ string memory code,
63
+ UFixed discountPercentage,
64
+ uint32 maxReferrals,
65
+ Timestamp expiryAt,
66
+ bytes memory data
67
+ )
68
+ external
69
+ virtual
70
+ returns (ReferralId referralId)
71
+ {
72
+ return _createReferral(
73
+ distributorNftId,
74
+ code,
75
+ discountPercentage,
76
+ maxReferrals,
77
+ expiryAt,
78
+ data); // data
79
+ }
80
+
57
81
  }
@@ -21,7 +21,7 @@ contract SimpleDistributionAuthorization
21
21
 
22
22
  // authorize public role (open access to any account, only allows to lock target)
23
23
  IAccess.FunctionInfo[] storage functions;
24
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
25
  _authorize(functions, SimpleDistribution.approveTokenHandler.selector, "approveTokenHandler");
26
26
  _authorize(functions, SimpleDistribution.setWallet.selector, "setWallet");
27
27
  }
@@ -34,8 +34,7 @@ contract SimpleOracle is
34
34
  address registry,
35
35
  NftId productNftId,
36
36
  IAuthorization authorization,
37
- address initialOwner,
38
- address token
37
+ address initialOwner
39
38
  )
40
39
  {
41
40
  initialize(
@@ -43,8 +42,7 @@ contract SimpleOracle is
43
42
  productNftId,
44
43
  authorization,
45
44
  initialOwner,
46
- "SimpleOracle",
47
- token
45
+ "SimpleOracle"
48
46
  );
49
47
  }
50
48
 
@@ -53,8 +51,7 @@ contract SimpleOracle is
53
51
  NftId productNftId,
54
52
  IAuthorization authorization,
55
53
  address initialOwner,
56
- string memory name,
57
- address token
54
+ string memory name
58
55
  )
59
56
  public
60
57
  virtual
@@ -65,8 +62,7 @@ contract SimpleOracle is
65
62
  productNftId,
66
63
  authorization,
67
64
  initialOwner,
68
- name,
69
- token);
65
+ name);
70
66
  }
71
67
 
72
68
  /// @dev use case specific handling of oracle requests
@@ -5,7 +5,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
5
5
 
6
6
  import {Amount, AmountLib} from "../../type/Amount.sol";
7
7
  import {BasicPool} from "../../pool/BasicPool.sol";
8
- import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
9
8
  import {Fee} from "../../type/Fee.sol";
10
9
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
11
10
  import {IComponents} from "../../instance/module/IComponents.sol";
@@ -20,7 +19,6 @@ contract SimplePool is
20
19
  constructor(
21
20
  address registry,
22
21
  NftId productNftId,
23
- address token,
24
22
  IComponents.PoolInfo memory poolInfo,
25
23
  IAuthorization authorization,
26
24
  address initialOwner
@@ -29,7 +27,6 @@ contract SimplePool is
29
27
  initialize(
30
28
  registry,
31
29
  productNftId,
32
- token,
33
30
  poolInfo,
34
31
  authorization,
35
32
  initialOwner
@@ -40,7 +37,6 @@ contract SimplePool is
40
37
  function initialize(
41
38
  address registry,
42
39
  NftId productNftId,
43
- address token,
44
40
  IComponents.PoolInfo memory poolInfo,
45
41
  IAuthorization authorization,
46
42
  address initialOwner
@@ -53,7 +49,6 @@ contract SimplePool is
53
49
  registry,
54
50
  productNftId,
55
51
  "SimplePool",
56
- token,
57
52
  poolInfo,
58
53
  authorization,
59
54
  initialOwner);
@@ -21,7 +21,7 @@ contract SimplePoolAuthorization
21
21
 
22
22
  // authorize public role (open access to any account, only allows to lock target)
23
23
  IAccess.FunctionInfo[] storage functions;
24
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
25
  _authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
26
26
  _authorize(functions, SimplePool.setWallet.selector, "setWallet");
27
27
  }
@@ -37,8 +37,8 @@ contract SimpleProduct is
37
37
  address registry,
38
38
  NftId instanceNftId,
39
39
  string memory name,
40
- address token,
41
40
  IComponents.ProductInfo memory productInfo,
41
+ IComponents.FeeInfo memory feeInfo,
42
42
  IAuthorization authorization,
43
43
  address initialOwner
44
44
  )
@@ -47,8 +47,8 @@ contract SimpleProduct is
47
47
  registry,
48
48
  instanceNftId,
49
49
  name,
50
- token,
51
50
  productInfo,
51
+ feeInfo,
52
52
  authorization,
53
53
  initialOwner);
54
54
  }
@@ -58,8 +58,8 @@ contract SimpleProduct is
58
58
  address registry,
59
59
  NftId instanceNftid,
60
60
  string memory name,
61
- address token,
62
61
  IComponents.ProductInfo memory productInfo,
62
+ IComponents.FeeInfo memory feeInfo,
63
63
  IAuthorization authorization,
64
64
  address initialOwner
65
65
  )
@@ -71,8 +71,8 @@ contract SimpleProduct is
71
71
  registry,
72
72
  instanceNftid,
73
73
  name,
74
- token,
75
74
  productInfo,
75
+ feeInfo,
76
76
  authorization,
77
77
  initialOwner);
78
78
 
@@ -81,11 +81,11 @@ contract SimpleProduct is
81
81
 
82
82
 
83
83
  function createRisk(
84
- RiskId id,
84
+ string memory id,
85
85
  bytes memory data
86
- ) public {
87
- _createRisk(
88
- id,
86
+ ) public returns (RiskId) {
87
+ return _createRisk(
88
+ bytes32(abi.encodePacked(id)),
89
89
  data
90
90
  );
91
91
  }
@@ -184,6 +184,13 @@ contract SimpleProduct is
184
184
  _activate(policyNftId, activateAt);
185
185
  }
186
186
 
187
+ function adjustActivation(
188
+ NftId policyNftId,
189
+ Timestamp activateAt
190
+ ) public {
191
+ _adjustActivation(policyNftId, activateAt);
192
+ }
193
+
187
194
  function close(
188
195
  NftId policyNftId
189
196
  ) public {
@@ -21,7 +21,7 @@ contract SimpleProductAuthorization
21
21
 
22
22
  // authorize public role (open access to any account, only allows to lock target)
23
23
  IAccess.FunctionInfo[] storage functions;
24
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
24
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
25
25
  _authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
26
26
  _authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
27
27
  }