@etherisc/gif-next 0.0.2-f080b71-868 → 0.0.2-f08528a-758

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 (615) hide show
  1. package/README.md +20 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/{instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json → authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json} +4 -4
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +81 -109
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +160 -81
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +184 -81
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +153 -168
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +821 -385
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +273 -177
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +126 -65
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1471 -557
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +71 -48
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -400
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +58 -21
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +336 -39
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +178 -106
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +50 -19
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +338 -248
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +371 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +697 -97
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -127
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  202. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  211. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  228. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  229. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  302. package/contracts/authorization/AccessAdmin.sol +588 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +149 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  314. package/contracts/{components → distribution}/Distribution.sol +162 -159
  315. package/contracts/distribution/DistributionService.sol +302 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  317. package/contracts/distribution/IDistributionComponent.sol +48 -0
  318. package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -24
  319. package/contracts/instance/BundleManager.sol +8 -9
  320. package/contracts/instance/IInstance.sol +48 -22
  321. package/contracts/instance/IInstanceService.sol +44 -36
  322. package/contracts/instance/Instance.sol +134 -107
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  325. package/contracts/instance/InstanceReader.sol +164 -58
  326. package/contracts/instance/InstanceService.sol +279 -156
  327. package/contracts/instance/InstanceServiceManager.sol +11 -21
  328. package/contracts/instance/InstanceStore.sol +154 -97
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
  334. package/contracts/instance/module/IAccess.sol +4 -12
  335. package/contracts/instance/module/IBundle.sol +6 -9
  336. package/contracts/instance/module/IComponents.sol +21 -10
  337. package/contracts/instance/module/IDistribution.sol +7 -6
  338. package/contracts/instance/module/IPolicy.sol +28 -16
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +32 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +157 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +42 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  351. package/contracts/pool/BundleService.sol +296 -0
  352. package/contracts/pool/BundleServiceManager.sol +42 -0
  353. package/contracts/{instance/service → pool}/IBundleService.sol +35 -23
  354. package/contracts/pool/IPoolComponent.sol +52 -0
  355. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +452 -0
  358. package/contracts/pool/PoolServiceManager.sol +42 -0
  359. package/contracts/product/ApplicationService.sol +254 -0
  360. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +40 -0
  363. package/contracts/product/ClaimService.sol +442 -0
  364. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  365. package/contracts/{instance/service → product}/IApplicationService.sol +15 -17
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/{instance/service → product}/IPolicyService.sol +37 -33
  368. package/contracts/{instance/service → product}/IPricingService.sol +14 -11
  369. package/contracts/product/IProductComponent.sol +39 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +42 -0
  373. package/contracts/{instance/service → product}/PricingService.sol +110 -85
  374. package/contracts/product/PricingServiceManager.sol +42 -0
  375. package/contracts/{components → product}/Product.sol +210 -114
  376. package/contracts/product/ProductService.sol +124 -0
  377. package/contracts/product/ProductServiceManager.sol +42 -0
  378. package/contracts/registry/ChainNft.sol +8 -1
  379. package/contracts/registry/IRegistry.sol +41 -21
  380. package/contracts/registry/IRegistryService.sol +37 -36
  381. package/contracts/registry/Registry.sol +194 -83
  382. package/contracts/registry/RegistryAdmin.sol +365 -0
  383. package/contracts/registry/RegistryService.sol +71 -91
  384. package/contracts/registry/RegistryServiceManager.sol +21 -30
  385. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  386. package/contracts/registry/ReleaseManager.sol +356 -193
  387. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  388. package/contracts/registry/TokenRegistry.sol +261 -62
  389. package/contracts/shared/Component.sol +281 -0
  390. package/contracts/shared/ComponentService.sol +581 -0
  391. package/contracts/shared/ComponentServiceManager.sol +35 -0
  392. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  393. package/contracts/shared/ERC165.sol +1 -1
  394. package/contracts/{components → shared}/IComponent.sol +23 -29
  395. package/contracts/shared/IComponentService.sol +102 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +29 -10
  401. package/contracts/shared/IRegistryLinked.sol +0 -1
  402. package/contracts/shared/IService.sol +11 -2
  403. package/contracts/shared/IVersionable.sol +1 -1
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSetManager.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +3 -16
  410. package/contracts/shared/PolicyHolder.sol +40 -19
  411. package/contracts/shared/ProxyManager.sol +34 -4
  412. package/contracts/shared/Registerable.sol +13 -12
  413. package/contracts/shared/RegistryLinked.sol +0 -5
  414. package/contracts/shared/Service.sol +32 -21
  415. package/contracts/shared/TokenHandler.sol +27 -2
  416. package/contracts/shared/Versionable.sol +1 -1
  417. package/contracts/staking/IStaking.sol +168 -0
  418. package/contracts/staking/IStakingService.sol +153 -0
  419. package/contracts/staking/StakeManagerLib.sol +231 -0
  420. package/contracts/staking/Staking.sol +513 -0
  421. package/contracts/staking/StakingLifecycle.sol +23 -0
  422. package/contracts/staking/StakingManager.sol +54 -0
  423. package/contracts/staking/StakingReader.sol +187 -0
  424. package/contracts/staking/StakingService.sol +411 -0
  425. package/contracts/staking/StakingServiceManager.sol +44 -0
  426. package/contracts/staking/StakingStore.sol +615 -0
  427. package/contracts/staking/TargetManagerLib.sol +207 -0
  428. package/contracts/{types → type}/AddressSet.sol +1 -1
  429. package/contracts/type/Amount.sol +128 -0
  430. package/contracts/{types → type}/Blocknumber.sol +20 -3
  431. package/contracts/{types → type}/ClaimId.sol +25 -2
  432. package/contracts/{types → type}/Fee.sol +24 -22
  433. package/contracts/{types → type}/NftId.sol +14 -16
  434. package/contracts/{types → type}/NftIdSet.sol +2 -2
  435. package/contracts/type/ObjectType.sol +275 -0
  436. package/contracts/{types → type}/PayoutId.sol +33 -5
  437. package/contracts/{types → type}/Referral.sol +1 -1
  438. package/contracts/type/RequestId.sol +75 -0
  439. package/contracts/{types → type}/RiskId.sol +1 -1
  440. package/contracts/type/RoleId.sol +174 -0
  441. package/contracts/{types → type}/Seconds.sol +27 -0
  442. package/contracts/type/Selector.sol +102 -0
  443. package/contracts/{types → type}/StateId.sol +33 -4
  444. package/contracts/type/String.sol +53 -0
  445. package/contracts/{types → type}/Timestamp.sol +10 -1
  446. package/contracts/{types → type}/UFixed.sol +6 -0
  447. package/contracts/{types → type}/Version.sol +1 -1
  448. package/package.json +6 -3
  449. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  450. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  451. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  454. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  456. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  457. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  458. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  459. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  461. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  462. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  463. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  465. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  472. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  474. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  475. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -860
  477. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -641
  479. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1276
  481. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -717
  483. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -849
  485. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1539
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -769
  491. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1166
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1269
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  507. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
  509. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
  511. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
  513. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  515. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  516. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  517. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  518. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  519. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  521. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  523. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  525. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  527. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  529. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  531. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  533. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  534. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  535. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  536. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  538. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  540. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  542. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  544. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  547. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  548. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  550. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  551. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  553. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  555. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  557. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  559. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  562. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  564. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  569. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  571. package/contracts/components/Component.sol +0 -253
  572. package/contracts/components/IDistributionComponent.sol +0 -71
  573. package/contracts/components/IPoolComponent.sol +0 -113
  574. package/contracts/components/IProductComponent.sol +0 -40
  575. package/contracts/components/Pool.sol +0 -303
  576. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  577. package/contracts/instance/Cloneable.sol +0 -51
  578. package/contracts/instance/InstanceAccessManager.sol +0 -540
  579. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -299
  580. package/contracts/instance/base/ComponentService.sol +0 -147
  581. package/contracts/instance/base/KeyValueStore.sol +0 -180
  582. package/contracts/instance/base/Lifecycle.sol +0 -109
  583. package/contracts/instance/module/ISetup.sol +0 -33
  584. package/contracts/instance/module/ITreasury.sol +0 -23
  585. package/contracts/instance/service/ApplicationService.sol +0 -183
  586. package/contracts/instance/service/BundleService.sol +0 -431
  587. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  588. package/contracts/instance/service/ClaimService.sol +0 -145
  589. package/contracts/instance/service/DistributionService.sol +0 -346
  590. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  591. package/contracts/instance/service/IClaimService.sol +0 -61
  592. package/contracts/instance/service/IProductService.sol +0 -40
  593. package/contracts/instance/service/PolicyService.sol +0 -376
  594. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  595. package/contracts/instance/service/PoolService.sol +0 -303
  596. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  597. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  598. package/contracts/instance/service/ProductService.sol +0 -210
  599. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  600. package/contracts/registry/RegistryAccessManager.sol +0 -216
  601. package/contracts/shared/ContractDeployerLib.sol +0 -72
  602. package/contracts/test/TestFee.sol +0 -25
  603. package/contracts/test/TestRegisterable.sol +0 -18
  604. package/contracts/test/TestRoleId.sol +0 -14
  605. package/contracts/test/TestService.sol +0 -25
  606. package/contracts/test/TestVersion.sol +0 -44
  607. package/contracts/test/TestVersionable.sol +0 -17
  608. package/contracts/test/Usdc.sol +0 -26
  609. package/contracts/types/Amount.sol +0 -60
  610. package/contracts/types/ChainId.sol +0 -38
  611. package/contracts/types/NumberId.sol +0 -52
  612. package/contracts/types/ObjectType.sol +0 -161
  613. package/contracts/types/RoleId.sol +0 -97
  614. /package/contracts/{types → type}/DistributorType.sol +0 -0
  615. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
7
+ import {SelectorLib} from "../type/Selector.sol";
8
+ import {StrLib} from "../type/String.sol";
9
+ import {TimestampLib} from "../type/Timestamp.sol";
10
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
11
+
12
+ /// @dev Base contract for release specific service authorization contracts.
13
+ contract ServiceAuthorization
14
+ is IServiceAuthorization
15
+ {
16
+ uint256 public constant GIF_VERSION_3 = 3;
17
+
18
+ string private _commitHash;
19
+
20
+ ObjectType[] internal _serviceDomains;
21
+ mapping(ObjectType domain => address service) internal _serviceAddress;
22
+ mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
23
+ mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
24
+
25
+ constructor(string memory commitHash) {
26
+ _commitHash = commitHash;
27
+ _setupDomains();
28
+ _setupDomainAuthorizations();
29
+ }
30
+
31
+ function getCommitHash() external view returns(string memory commitHash) {
32
+ return _commitHash;
33
+ }
34
+
35
+ function getRelease() external view returns(VersionPart release) {
36
+ return VersionPartLib.toVersionPart(GIF_VERSION_3);
37
+ }
38
+
39
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
40
+ return _serviceDomains;
41
+ }
42
+
43
+ function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain) {
44
+ return _serviceDomains[idx];
45
+ }
46
+
47
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
48
+ return _serviceAddress[serviceDomain];
49
+ }
50
+
51
+ function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains) {
52
+ return _authorizedDomains[serviceDomain];
53
+ }
54
+
55
+ function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
56
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
57
+ }
58
+
59
+ /// @dev Overwrite this function for a specific realease.
60
+ function _setupDomains() internal virtual {}
61
+
62
+ /// @dev Overwrite this function for a specific realease.
63
+ function _setupDomainAuthorizations() internal virtual {}
64
+
65
+ /// @dev Use this method to to add an authorized domain.
66
+ /// The services will need to be registered in the order they are added using this function.
67
+ function _authorizeDomain(ObjectType serviceDomain, address serviceAddress) internal {
68
+ _serviceDomains.push(serviceDomain);
69
+ _serviceAddress[serviceDomain] = serviceAddress;
70
+ }
71
+
72
+ /// @dev Use this method to authorize the specified domain to access the service domain.
73
+ function _authorizeForService(ObjectType serviceDomain, ObjectType authorizedDomain)
74
+ internal
75
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
76
+ {
77
+ _authorizedDomains[serviceDomain].push(authorizedDomain);
78
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
79
+ }
80
+
81
+ /// @dev Use this method to authorize a specific function authorization
82
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
83
+ functions.push(
84
+ IAccess.FunctionInfo({
85
+ selector: SelectorLib.toSelector(selector),
86
+ name: StrLib.toStr(name),
87
+ createdAt: TimestampLib.blockTimestamp()}));
88
+ }
89
+ }
90
+
@@ -0,0 +1,149 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
5
+ import {Distribution} from "./Distribution.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IDistributionService} from "./IDistributionService.sol";
8
+ import {IProductService} from "../product/IProductService.sol";
9
+ import {NftId, NftIdLib} from "../type/NftId.sol";
10
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
11
+ import {Fee, FeeLib} from "../type/Fee.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
14
+ import {IDistribution} from "../instance/module/IDistribution.sol";
15
+ import {IDistributionComponent} from "./IDistributionComponent.sol";
16
+ import {IRegistry} from "../registry/IRegistry.sol";
17
+ import {TokenHandler} from "../shared/TokenHandler.sol";
18
+ import {InstanceReader} from "../instance/InstanceReader.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
20
+ import {DistributorType} from "../type/DistributorType.sol";
21
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
22
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
+
24
+
25
+ contract BasicDistribution is
26
+ Distribution
27
+ {
28
+
29
+ function setFees(
30
+ Fee memory distributionFee,
31
+ Fee memory minDistributionOwnerFee
32
+ )
33
+ external
34
+ virtual
35
+ onlyOwner()
36
+ restricted()
37
+ {
38
+ _setFees(
39
+ distributionFee,
40
+ minDistributionOwnerFee);
41
+ }
42
+
43
+
44
+ function createDistributorType(
45
+ string memory name,
46
+ UFixed minDiscountPercentage,
47
+ UFixed maxDiscountPercentage,
48
+ UFixed commissionPercentage,
49
+ uint32 maxReferralCount,
50
+ uint32 maxReferralLifetime,
51
+ bool allowSelfReferrals,
52
+ bool allowRenewals,
53
+ bytes memory data
54
+ )
55
+ external
56
+ virtual
57
+ onlyOwner()
58
+ restricted()
59
+ returns (DistributorType distributorType)
60
+ {
61
+ return _createDistributorType(
62
+ name,
63
+ minDiscountPercentage,
64
+ maxDiscountPercentage,
65
+ commissionPercentage,
66
+ maxReferralCount,
67
+ maxReferralLifetime,
68
+ allowSelfReferrals,
69
+ allowRenewals,
70
+ data);
71
+ }
72
+
73
+ function createDistributor(
74
+ address distributor,
75
+ DistributorType distributorType,
76
+ bytes memory data
77
+ )
78
+ external
79
+ virtual
80
+ onlyOwner()
81
+ restricted()
82
+ returns(NftId distributorNftId)
83
+ {
84
+ return _createDistributor(distributor, distributorType, data);
85
+ }
86
+
87
+ function updateDistributorType(
88
+ NftId distributorNftId,
89
+ DistributorType distributorType,
90
+ bytes memory data
91
+ )
92
+ external
93
+ virtual
94
+ onlyOwner()
95
+ restricted()
96
+ {
97
+ _updateDistributorType(distributorNftId, distributorType, data);
98
+ }
99
+
100
+ /**
101
+ * @dev lets distributors create referral codes.
102
+ * referral codes need to be unique
103
+ */
104
+ function createReferral(
105
+ string memory code,
106
+ UFixed discountPercentage,
107
+ uint32 maxReferrals,
108
+ Timestamp expiryAt,
109
+ bytes memory data
110
+ )
111
+ external
112
+ virtual
113
+ onlyDistributor()
114
+ restricted()
115
+ returns (ReferralId referralId)
116
+ {
117
+ NftId distributorNftId = getDistributorNftId(msg.sender);
118
+ return _createReferral(
119
+ distributorNftId,
120
+ code,
121
+ discountPercentage,
122
+ maxReferrals,
123
+ expiryAt,
124
+ data); // data
125
+ }
126
+
127
+ function _initializeBasicDistribution(
128
+ address registry,
129
+ NftId instanceNftId,
130
+ IAuthorization authorization,
131
+ address initialOwner,
132
+ string memory name,
133
+ address token
134
+ )
135
+ internal
136
+ virtual
137
+ onlyInitializing()
138
+ {
139
+ _initializeDistribution(
140
+ registry,
141
+ instanceNftId,
142
+ authorization,
143
+ initialOwner,
144
+ name,
145
+ token,
146
+ "", // registry data
147
+ ""); // component specifc data
148
+ }
149
+ }
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicDistribution} from "./BasicDistribution.sol";
6
+ import {DISTRIBUTION} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+
11
+
12
+ contract BasicDistributionAuthorization
13
+ is Authorization
14
+ {
15
+
16
+ constructor(string memory distributionlName)
17
+ Authorization(distributionlName)
18
+ {}
19
+
20
+ function _setupTargets()
21
+ internal
22
+ virtual override
23
+ {
24
+ _addComponentTargetWithRole(DISTRIBUTION()); // basic target
25
+ }
26
+
27
+
28
+ function _setupTargetAuthorizations()
29
+ internal
30
+ virtual override
31
+ {
32
+ IAccess.FunctionInfo[] storage functions;
33
+
34
+ // authorize public role (open access to any account, only allows to lock target)
35
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
36
+ _authorize(functions, BasicDistribution.setFees.selector, "setFees");
37
+ _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
38
+ _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
39
+ _authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
40
+ _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
41
+ }
42
+ }
43
+
@@ -1,86 +1,181 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {DISTRIBUTION} from "../types/ObjectType.sol";
5
- import {IDistributionService} from "../instance/service/IDistributionService.sol";
6
- import {IProductService} from "../instance/service/IProductService.sol";
7
- import {NftId, zeroNftId, NftIdLib, toNftId} from "../types/NftId.sol";
8
- import {ReferralId, ReferralStatus, ReferralLib} from "../types/Referral.sol";
9
- import {Fee, FeeLib} from "../types/Fee.sol";
10
- import {Component} from "./Component.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {IDistributionService} from "./IDistributionService.sol";
7
+ import {IProductService} from "../product/IProductService.sol";
8
+ import {NftId, NftIdLib} from "../type/NftId.sol";
9
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
10
+ import {Fee, FeeLib} from "../type/Fee.sol";
11
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
12
+ import {IComponentService} from "../shared/IComponentService.sol";
11
13
  import {IDistribution} from "../instance/module/IDistribution.sol";
12
14
  import {IDistributionComponent} from "./IDistributionComponent.sol";
13
15
  import {IRegistry} from "../registry/IRegistry.sol";
14
- import {IRegisterable} from "../shared/IRegisterable.sol";
15
- import {ISetup} from "../instance/module/ISetup.sol";
16
- import {Registerable} from "../shared/Registerable.sol";
17
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
18
17
  import {InstanceReader} from "../instance/InstanceReader.sol";
19
- import {UFixed} from "../types/UFixed.sol";
20
- import {DistributorType} from "../types/DistributorType.sol";
21
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+ import {DistributorType} from "../type/DistributorType.sol";
20
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
22
21
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
22
 
24
23
 
25
24
  abstract contract Distribution is
26
- Component,
25
+ InstanceLinkedComponent,
27
26
  IDistributionComponent
28
27
  {
29
28
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
30
29
  bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
31
30
 
32
31
  struct DistributionStorage {
33
- Fee _minDistributionOwnerFee;
34
- Fee _distributionFee;
35
- TokenHandler _tokenHandler;
32
+ IComponentService _componentService;
36
33
  IDistributionService _distributionService;
37
34
  mapping(address distributor => NftId distributorNftId) _distributorNftId;
38
35
  }
39
36
 
40
- function initializeDistribution(
37
+ modifier onlyDistributor() {
38
+ if (!isDistributor(msg.sender)) {
39
+ revert ErrorDistributionNotDistributor(msg.sender);
40
+ }
41
+ _;
42
+ }
43
+
44
+
45
+ function register()
46
+ external
47
+ virtual
48
+ onlyOwner()
49
+ {
50
+ _getDistributionStorage()._componentService.registerDistribution();
51
+ }
52
+
53
+
54
+ function isDistributor(address candidate)
55
+ public
56
+ view
57
+ returns (bool)
58
+ {
59
+ DistributionStorage storage $ = _getDistributionStorage();
60
+ return $._distributorNftId[candidate].gtz();
61
+ }
62
+
63
+
64
+ function getDistributorNftId(address distributor)
65
+ public
66
+ view
67
+ returns (NftId distributorNftId)
68
+ {
69
+ DistributionStorage storage $ = _getDistributionStorage();
70
+ return $._distributorNftId[distributor];
71
+ }
72
+
73
+
74
+ function getDiscountPercentage(string memory referralCode)
75
+ external
76
+ view
77
+ returns (
78
+ UFixed discountPercentage,
79
+ ReferralStatus status
80
+ )
81
+ {
82
+ ReferralId referralId = getReferralId(referralCode);
83
+ return _getInstanceReader().getDiscountPercentage(referralId);
84
+ }
85
+
86
+
87
+ function getReferralId(
88
+ string memory referralCode
89
+ )
90
+ public
91
+ view
92
+ returns (ReferralId referralId)
93
+ {
94
+ return ReferralLib.toReferralId(
95
+ getNftId(),
96
+ referralCode);
97
+ }
98
+
99
+
100
+ function calculateRenewalFeeAmount(
101
+ ReferralId referralId,
102
+ uint256 netPremiumAmount
103
+ )
104
+ external
105
+ view
106
+ virtual override
107
+ returns (uint256 feeAmount)
108
+ {
109
+ // default is no fees
110
+ return 0 * netPremiumAmount;
111
+ }
112
+
113
+
114
+ function processRenewal(
115
+ ReferralId referralId,
116
+ uint256 feeAmount
117
+ )
118
+ external
119
+ virtual
120
+ restricted()
121
+ {
122
+ // default is no action
123
+ }
124
+
125
+ /// @dev Returns true iff the component needs to be called when selling/renewing policis
126
+ function isVerifying() external pure returns (bool verifying) {
127
+ return true;
128
+ }
129
+
130
+
131
+ function _initializeDistribution(
41
132
  address registry,
42
133
  NftId instanceNftId,
134
+ IAuthorization authorization,
135
+ address initialOwner,
43
136
  string memory name,
44
137
  address token,
45
- Fee memory minDistributionOwnerFee,
46
- Fee memory distributionFee,
47
- address initialOwner,
48
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
138
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
139
+ bytes memory componentData // component specifidc data
49
140
  )
50
- public
141
+ internal
51
142
  virtual
52
143
  onlyInitializing()
53
144
  {
54
- initializeComponent(registry, instanceNftId, name, token, DISTRIBUTION(), true, initialOwner, registryData);
145
+ _initializeInstanceLinkedComponent(
146
+ registry,
147
+ instanceNftId,
148
+ name,
149
+ token,
150
+ DISTRIBUTION(),
151
+ authorization,
152
+ true,
153
+ initialOwner,
154
+ registryData,
155
+ componentData);
55
156
 
56
157
  DistributionStorage storage $ = _getDistributionStorage();
57
- // TODO add validation
58
- $._minDistributionOwnerFee = minDistributionOwnerFee;
59
- $._distributionFee = distributionFee;
60
- $._tokenHandler = new TokenHandler(token);
61
- $._distributionService = getInstance().getDistributionService();
158
+ $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
159
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
62
160
 
63
161
  registerInterface(type(IDistributionComponent).interfaceId);
64
162
  }
65
163
 
66
- function setFees(
67
- Fee memory minDistributionOwnerFee,
68
- Fee memory distributionFee
164
+ /// @dev Sets the distribution fees to the provided values.
165
+ function _setFees(
166
+ Fee memory distributionFee,
167
+ Fee memory minDistributionOwnerFee
69
168
  )
70
- external
71
- override
72
- onlyOwner
73
- restricted()
169
+ internal
170
+ virtual
74
171
  {
75
- _getDistributionStorage()._distributionService.setFees(minDistributionOwnerFee, distributionFee);
76
- }
77
-
78
- function getDistributionFee() external view returns (Fee memory distributionFee) {
79
- DistributionStorage storage $ = _getDistributionStorage();
80
- return $._distributionFee;
172
+ _getDistributionStorage()._componentService.setDistributionFees(
173
+ distributionFee,
174
+ minDistributionOwnerFee);
81
175
  }
82
176
 
83
- function createDistributorType(
177
+ /// @dev Creates a new distributor type using the provided parameters.
178
+ function _createDistributorType(
84
179
  string memory name,
85
180
  UFixed minDiscountPercentage,
86
181
  UFixed maxDiscountPercentage,
@@ -91,7 +186,8 @@ abstract contract Distribution is
91
186
  bool allowRenewals,
92
187
  bytes memory data
93
188
  )
94
- public
189
+ internal
190
+ virtual
95
191
  returns (DistributorType distributorType)
96
192
  {
97
193
  DistributionStorage storage $ = _getDistributionStorage();
@@ -107,16 +203,20 @@ abstract contract Distribution is
107
203
  data);
108
204
  }
109
205
 
110
- function createDistributor(
206
+ /// @dev Turns the provided account into a new distributor of the specified type.
207
+ function _createDistributor(
111
208
  address distributor,
112
209
  DistributorType distributorType,
113
210
  bytes memory data
114
211
  )
115
- public
212
+ internal
213
+ virtual
116
214
  returns(NftId distributorNftId)
117
215
  {
118
216
  DistributionStorage storage $ = _getDistributionStorage();
119
- require($._distributorNftId[distributor].eqz(), "ERROR:DST-030:ALREADY_DISTRIBUTOR");
217
+ if($._distributorNftId[distributor].gtz()) {
218
+ revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
219
+ }
120
220
 
121
221
  distributorNftId = $._distributionService.createDistributor(
122
222
  distributor,
@@ -126,26 +226,24 @@ abstract contract Distribution is
126
226
  $._distributorNftId[distributor] = distributorNftId;
127
227
  }
128
228
 
129
- function updateDistributorType(
229
+ /// @dev Uptates the distributor type for the specified distributor.
230
+ function _updateDistributorType(
130
231
  NftId distributorNftId,
131
232
  DistributorType distributorType,
132
233
  bytes memory data
133
234
  )
134
- public
135
- // TODO figure out what we need for authz
136
- // and add it
235
+ internal
236
+ virtual
137
237
  {
138
238
  DistributionStorage storage $ = _getDistributionStorage();
139
- $._distributionService.updateDistributorType(
140
- distributorNftId,
141
- distributorType,
142
- data);
239
+ // TODO re-enable once implemented
240
+ // $._distributionService.updateDistributorType(
241
+ // distributorNftId,
242
+ // distributorType,
243
+ // data);
143
244
  }
144
245
 
145
- /**
146
- * @dev lets distributors create referral codes.
147
- * referral codes need to be unique
148
- */
246
+ /// @dev Create a new referral code for the provided distributor.
149
247
  function _createReferral(
150
248
  NftId distributorNftId,
151
249
  string memory code,
@@ -155,6 +253,7 @@ abstract contract Distribution is
155
253
  bytes memory data
156
254
  )
157
255
  internal
256
+ virtual
158
257
  returns (ReferralId referralId)
159
258
  {
160
259
  DistributionStorage storage $ = _getDistributionStorage();
@@ -167,109 +266,13 @@ abstract contract Distribution is
167
266
  data);
168
267
  }
169
268
 
170
- function isDistributor(address candidate)
171
- public
172
- view
173
- returns (bool)
174
- {
175
- DistributionStorage storage $ = _getDistributionStorage();
176
- return $._distributorNftId[candidate].gtz();
177
- }
178
-
179
- function getDistributorNftId(address distributor)
180
- public
181
- view
182
- returns (NftId distributorNftId)
183
- {
184
- DistributionStorage storage $ = _getDistributionStorage();
185
- return $._distributorNftId[distributor];
186
- }
187
-
188
- function getDiscountPercentage(string memory referralCode)
189
- external
190
- view
191
- returns (
192
- UFixed discountPercentage,
193
- ReferralStatus status
194
- )
195
- {
196
- ReferralId referralId = getReferralId(referralCode);
197
- return _getInstanceReader().getDiscountPercentage(referralId);
198
- }
199
-
200
-
201
- function getReferralId(
202
- string memory referralCode
203
- )
204
- public
205
- view
206
- returns (ReferralId referralId)
207
- {
208
- return ReferralLib.toReferralId(
209
- getNftId(),
210
- referralCode);
211
- }
212
-
213
- function calculateRenewalFeeAmount(
214
- ReferralId referralId,
215
- uint256 netPremiumAmount
216
- )
217
- external
218
- view
219
- virtual override
220
- returns (uint256 feeAmount)
221
- {
222
- // default is no fees
223
- return 0 * netPremiumAmount;
224
- }
225
-
226
- function processRenewal(
227
- ReferralId referralId,
228
- uint256 feeAmount
229
- )
230
- external
231
- onlyOwner
232
- restricted()
233
- virtual override
234
- {
235
- // default is no action
236
- }
237
-
238
- function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
239
- InstanceReader reader = getInstance().getInstanceReader();
240
- setupInfo = reader.getDistributionSetupInfo(getNftId());
241
-
242
- // fallback to initial setup info (wallet is always != address(0))
243
- if(setupInfo.wallet == address(0)) {
244
- setupInfo = _getInitialSetupInfo();
245
- }
246
- }
247
-
248
- function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
249
- DistributionStorage storage $ = _getDistributionStorage();
250
- return ISetup.DistributionSetupInfo(
251
- zeroNftId(),
252
- $._tokenHandler,
253
- $._minDistributionOwnerFee,
254
- $._distributionFee,
255
- address(this),
256
- 0
257
- );
258
- }
259
-
260
269
 
261
270
  function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
262
271
  // keep track of distributor nft owner
263
272
  emit LogDistributorUpdated(to, msg.sender);
264
273
  DistributionStorage storage $ = _getDistributionStorage();
265
- $._distributorNftId[from] = zeroNftId();
266
- $._distributorNftId[to] = toNftId(tokenId);
267
- }
268
-
269
-
270
- /// @dev returns true iff the component needs to be called when selling/renewing policis
271
- function isVerifying() external view returns (bool verifying) {
272
- return true;
274
+ $._distributorNftId[from] = NftIdLib.zero();
275
+ $._distributorNftId[to] = NftIdLib.toNftId(tokenId);
273
276
  }
274
277
 
275
278
  function _getDistributionStorage() private pure returns (DistributionStorage storage $) {