@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf51045-496

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 (700) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1292 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +246 -561
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +308 -274
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +306 -335
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -1919
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +280 -80
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +383 -2670
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1312 -310
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +351 -379
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -106
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +269 -237
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +336 -167
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -231
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +322 -438
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +291 -350
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +997 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +397 -420
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +185 -168
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +234 -286
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +110 -65
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1074 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +473 -24
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -134
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -118
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -264
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Component.sol/Component.json +677 -0
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1574 -0
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +818 -0
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  214. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +119 -197
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  222. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +203 -88
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1197 -0
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -0
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +125 -19
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +767 -0
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +127 -110
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1417 -0
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  329. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  335. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  339. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  340. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +263 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +615 -0
  351. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  352. package/contracts/authorization/Authorization.sol +289 -0
  353. package/contracts/authorization/IAccess.sol +49 -0
  354. package/contracts/authorization/IAccessAdmin.sol +137 -0
  355. package/contracts/authorization/IAuthorization.sol +60 -0
  356. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  357. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  358. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  359. package/contracts/distribution/BasicDistribution.sol +139 -0
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  361. package/contracts/{components → distribution}/Distribution.sol +170 -163
  362. package/contracts/distribution/DistributionService.sol +357 -0
  363. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  364. package/contracts/distribution/IDistributionComponent.sol +52 -0
  365. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +436 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +130 -0
  380. package/contracts/instance/IInstance.sol +50 -72
  381. package/contracts/instance/IInstanceService.sol +37 -27
  382. package/contracts/instance/Instance.sol +171 -227
  383. package/contracts/instance/InstanceAdmin.sol +288 -0
  384. package/contracts/instance/InstanceAuthorizationV3.sol +222 -0
  385. package/contracts/instance/InstanceReader.sol +350 -63
  386. package/contracts/instance/InstanceService.sol +267 -364
  387. package/contracts/instance/InstanceServiceManager.sol +14 -29
  388. package/contracts/instance/InstanceStore.sol +287 -0
  389. package/contracts/instance/RiskSet.sol +119 -0
  390. package/contracts/instance/base/BalanceStore.sol +123 -0
  391. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  392. package/contracts/instance/base/ObjectCounter.sol +20 -0
  393. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  394. package/contracts/instance/base/ObjectSet.sol +78 -0
  395. package/contracts/instance/module/IAccess.sol +19 -20
  396. package/contracts/instance/module/IBundle.sol +8 -9
  397. package/contracts/instance/module/IComponents.sol +27 -12
  398. package/contracts/instance/module/IDistribution.sol +6 -6
  399. package/contracts/instance/module/IPolicy.sol +48 -35
  400. package/contracts/instance/module/IRisk.sol +2 -1
  401. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  402. package/contracts/oracle/BasicOracle.sol +47 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  404. package/contracts/oracle/IOracle.sol +36 -0
  405. package/contracts/oracle/IOracleComponent.sol +33 -0
  406. package/contracts/oracle/IOracleService.sol +66 -0
  407. package/contracts/oracle/Oracle.sol +156 -0
  408. package/contracts/oracle/OracleService.sol +309 -0
  409. package/contracts/oracle/OracleServiceManager.sol +39 -0
  410. package/contracts/pool/BasicPool.sol +175 -0
  411. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  412. package/contracts/pool/BundleService.sol +425 -0
  413. package/contracts/pool/BundleServiceManager.sol +39 -0
  414. package/contracts/pool/IBundleService.sol +121 -0
  415. package/contracts/pool/IPoolComponent.sol +62 -0
  416. package/contracts/pool/IPoolService.sol +153 -0
  417. package/contracts/pool/Pool.sol +345 -0
  418. package/contracts/pool/PoolService.sol +615 -0
  419. package/contracts/pool/PoolServiceManager.sol +39 -0
  420. package/contracts/product/ApplicationService.sol +259 -0
  421. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  422. package/contracts/product/BasicProduct.sol +49 -0
  423. package/contracts/product/BasicProductAuthorization.sol +41 -0
  424. package/contracts/product/ClaimService.sol +614 -0
  425. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  426. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  427. package/contracts/product/IClaimService.sol +123 -0
  428. package/contracts/product/IPolicyService.sol +90 -0
  429. package/contracts/product/IPricingService.sol +39 -0
  430. package/contracts/product/IProductComponent.sol +59 -0
  431. package/contracts/product/IRiskService.sol +33 -0
  432. package/contracts/product/PolicyService.sol +736 -0
  433. package/contracts/product/PolicyServiceManager.sol +39 -0
  434. package/contracts/product/PricingService.sol +300 -0
  435. package/contracts/product/PricingServiceManager.sol +39 -0
  436. package/contracts/product/Product.sol +427 -0
  437. package/contracts/product/RiskService.sol +107 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +79 -36
  440. package/contracts/registry/IRegistry.sol +100 -26
  441. package/contracts/registry/IRegistryService.sol +36 -41
  442. package/contracts/registry/ITransferInterceptor.sol +1 -1
  443. package/contracts/registry/Registry.sol +464 -201
  444. package/contracts/registry/RegistryAdmin.sol +457 -0
  445. package/contracts/registry/RegistryService.sol +87 -129
  446. package/contracts/registry/RegistryServiceManager.sol +23 -32
  447. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  448. package/contracts/registry/ReleaseRegistry.sol +486 -0
  449. package/contracts/registry/ServiceAuthorizationV3.sol +207 -0
  450. package/contracts/registry/TokenRegistry.sol +261 -62
  451. package/contracts/shared/Component.sol +219 -0
  452. package/contracts/shared/ComponentService.sol +696 -0
  453. package/contracts/shared/ComponentServiceManager.sol +38 -0
  454. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  455. package/contracts/shared/ContractLib.sol +224 -0
  456. package/contracts/shared/IComponent.sol +62 -0
  457. package/contracts/shared/IComponentService.sol +116 -0
  458. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  459. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  460. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  461. package/contracts/shared/INftOwnable.sol +4 -2
  462. package/contracts/shared/IPolicyHolder.sol +23 -14
  463. package/contracts/shared/IRegisterable.sol +11 -0
  464. package/contracts/shared/IRegistryLinked.sol +0 -1
  465. package/contracts/shared/IService.sol +15 -8
  466. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  467. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  468. package/contracts/shared/KeyValueStore.sol +131 -0
  469. package/contracts/shared/Lifecycle.sol +88 -0
  470. package/contracts/shared/NftIdSet.sol +65 -0
  471. package/contracts/shared/NftOwnable.sol +32 -25
  472. package/contracts/shared/PolicyHolder.sol +22 -41
  473. package/contracts/shared/Registerable.sol +32 -23
  474. package/contracts/shared/RegistryLinked.sol +9 -19
  475. package/contracts/shared/Service.sol +55 -29
  476. package/contracts/shared/TokenHandler.sol +368 -12
  477. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  478. package/contracts/staking/IStaking.sol +173 -0
  479. package/contracts/staking/IStakingService.sol +157 -0
  480. package/contracts/staking/StakeManagerLib.sol +224 -0
  481. package/contracts/staking/Staking.sol +515 -0
  482. package/contracts/staking/StakingLifecycle.sol +23 -0
  483. package/contracts/staking/StakingManager.sol +52 -0
  484. package/contracts/staking/StakingReader.sol +190 -0
  485. package/contracts/staking/StakingService.sol +440 -0
  486. package/contracts/staking/StakingServiceManager.sol +44 -0
  487. package/contracts/staking/StakingStore.sol +605 -0
  488. package/contracts/staking/TargetManagerLib.sol +211 -0
  489. package/contracts/{types → type}/AddressSet.sol +1 -1
  490. package/contracts/type/Amount.sol +150 -0
  491. package/contracts/{types → type}/Blocknumber.sol +26 -3
  492. package/contracts/{types → type}/ClaimId.sol +31 -3
  493. package/contracts/{types → type}/Fee.sol +33 -24
  494. package/contracts/{types → type}/Key32.sol +2 -2
  495. package/contracts/type/Key32Set.sol +62 -0
  496. package/contracts/{types → type}/NftId.sol +21 -16
  497. package/contracts/{types → type}/NftIdSet.sol +2 -2
  498. package/contracts/type/ObjectType.sol +286 -0
  499. package/contracts/type/PayoutId.sol +82 -0
  500. package/contracts/{types → type}/Referral.sol +2 -1
  501. package/contracts/type/RequestId.sol +75 -0
  502. package/contracts/{types → type}/RiskId.sol +31 -5
  503. package/contracts/type/RoleId.sol +162 -0
  504. package/contracts/type/Seconds.sol +101 -0
  505. package/contracts/type/Selector.sol +102 -0
  506. package/contracts/{types → type}/StateId.sol +47 -4
  507. package/contracts/type/String.sol +53 -0
  508. package/contracts/{types → type}/Timestamp.sol +21 -2
  509. package/contracts/{types → type}/UFixed.sol +40 -121
  510. package/contracts/{types → type}/Version.sol +4 -2
  511. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  512. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  513. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  514. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  515. package/package.json +11 -7
  516. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  517. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  518. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  519. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  520. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  521. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  522. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  523. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  524. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  526. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  527. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  529. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  531. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  536. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  538. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  541. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  543. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  545. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  547. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  549. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  551. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  553. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  555. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  557. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  561. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  565. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  568. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  570. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  572. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  574. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  576. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  578. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  579. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  580. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  581. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  583. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  589. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  590. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  591. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  594. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  596. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  598. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  600. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  602. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  604. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  606. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  607. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  608. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  610. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  612. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  614. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  616. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  618. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  620. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  624. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  626. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  628. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  630. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  632. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  634. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  636. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  638. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  644. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  646. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  648. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  650. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  652. package/contracts/components/Component.sol +0 -241
  653. package/contracts/components/IComponent.sol +0 -74
  654. package/contracts/components/IDistributionComponent.sol +0 -71
  655. package/contracts/components/IPoolComponent.sol +0 -113
  656. package/contracts/components/IProductComponent.sol +0 -40
  657. package/contracts/components/Pool.sol +0 -299
  658. package/contracts/components/Product.sol +0 -293
  659. package/contracts/instance/BundleManager.sol +0 -127
  660. package/contracts/instance/InstanceAccessManager.sol +0 -297
  661. package/contracts/instance/ObjectManager.sol +0 -84
  662. package/contracts/instance/base/ComponentService.sol +0 -134
  663. package/contracts/instance/base/KeyValueStore.sol +0 -175
  664. package/contracts/instance/base/Lifecycle.sol +0 -109
  665. package/contracts/instance/module/ISetup.sol +0 -33
  666. package/contracts/instance/module/ITreasury.sol +0 -23
  667. package/contracts/instance/service/ApplicationService.sol +0 -350
  668. package/contracts/instance/service/BundleService.sol +0 -336
  669. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  670. package/contracts/instance/service/ClaimService.sol +0 -151
  671. package/contracts/instance/service/DistributionService.sol +0 -450
  672. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  673. package/contracts/instance/service/IBundleService.sol +0 -62
  674. package/contracts/instance/service/IClaimService.sol +0 -61
  675. package/contracts/instance/service/IPolicyService.sol +0 -72
  676. package/contracts/instance/service/IPoolService.sol +0 -35
  677. package/contracts/instance/service/IProductService.sol +0 -40
  678. package/contracts/instance/service/PolicyService.sol +0 -403
  679. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  680. package/contracts/instance/service/PoolService.sol +0 -163
  681. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  682. package/contracts/instance/service/ProductService.sol +0 -233
  683. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  684. package/contracts/registry/RegistryAccessManager.sol +0 -216
  685. package/contracts/registry/ReleaseManager.sol +0 -322
  686. package/contracts/shared/ContractDeployerLib.sol +0 -72
  687. package/contracts/test/TestFee.sol +0 -25
  688. package/contracts/test/TestRegisterable.sol +0 -18
  689. package/contracts/test/TestRoleId.sol +0 -14
  690. package/contracts/test/TestService.sol +0 -25
  691. package/contracts/test/TestToken.sol +0 -26
  692. package/contracts/test/TestVersion.sol +0 -44
  693. package/contracts/test/TestVersionable.sol +0 -17
  694. package/contracts/types/ChainId.sol +0 -38
  695. package/contracts/types/NumberId.sol +0 -52
  696. package/contracts/types/ObjectType.sol +0 -157
  697. package/contracts/types/PayoutId.sol +0 -54
  698. package/contracts/types/RoleId.sol +0 -95
  699. package/contracts/types/Seconds.sol +0 -54
  700. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,86 +1,180 @@
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";
11
- import {IDistribution} from "../instance/module/IDistribution.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IDistributionService} from "./IDistributionService.sol";
8
+ import {NftId, NftIdLib} from "../type/NftId.sol";
9
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
10
+ import {Fee} from "../type/Fee.sol";
11
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
12
+ import {IComponentService} from "../shared/IComponentService.sol";
12
13
  import {IDistributionComponent} from "./IDistributionComponent.sol";
13
- 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
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
- 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";
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {Timestamp} from "../type/Timestamp.sol";
23
17
 
24
18
 
25
19
  abstract contract Distribution is
26
- Component,
20
+ InstanceLinkedComponent,
27
21
  IDistributionComponent
28
22
  {
29
23
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
30
24
  bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
31
25
 
32
26
  struct DistributionStorage {
33
- Fee _minDistributionOwnerFee;
34
- Fee _distributionFee;
35
- TokenHandler _tokenHandler;
27
+ IComponentService _componentService;
36
28
  IDistributionService _distributionService;
37
29
  mapping(address distributor => NftId distributorNftId) _distributorNftId;
38
30
  }
39
31
 
40
- function initializeDistribution(
41
- address registry,
42
- NftId instanceNftId,
43
- string memory name,
44
- 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
32
+ modifier onlyDistributor() {
33
+ if (!isDistributor(msg.sender)) {
34
+ revert ErrorDistributionNotDistributor(msg.sender);
35
+ }
36
+ _;
37
+ }
38
+
39
+
40
+ function processRenewal(
41
+ ReferralId referralId,
42
+ uint256 feeAmount
49
43
  )
50
- public
44
+ external
51
45
  virtual
52
- onlyInitializing()
46
+ restricted()
53
47
  {
54
- initializeComponent(registry, instanceNftId, name, token, DISTRIBUTION(), true, initialOwner, registryData);
48
+ // default is no action
49
+ }
50
+
55
51
 
52
+ /// @inheritdoc IDistributionComponent
53
+ function withdrawCommission(NftId distributorNftId, Amount amount)
54
+ external
55
+ virtual
56
+ restricted()
57
+ onlyDistributor()
58
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
59
+ onlyNftOwner(distributorNftId)
60
+ returns (Amount withdrawnAmount)
61
+ {
62
+ return _withdrawCommission(distributorNftId, amount);
63
+ }
64
+
65
+
66
+ function isDistributor(address candidate)
67
+ public
68
+ view
69
+ returns (bool)
70
+ {
56
71
  DistributionStorage storage $ = _getDistributionStorage();
57
- // TODO add validation
58
- $._minDistributionOwnerFee = minDistributionOwnerFee;
59
- $._distributionFee = distributionFee;
60
- $._tokenHandler = new TokenHandler(token);
61
- $._distributionService = getInstance().getDistributionService();
72
+ return $._distributorNftId[candidate].gtz();
73
+ }
74
+
75
+
76
+ function getDistributorNftId(address distributor)
77
+ public
78
+ view
79
+ returns (NftId distributorNftId)
80
+ {
81
+ DistributionStorage storage $ = _getDistributionStorage();
82
+ return $._distributorNftId[distributor];
83
+ }
84
+
85
+
86
+ function getDiscountPercentage(string memory referralCode)
87
+ external
88
+ view
89
+ returns (
90
+ UFixed discountPercentage,
91
+ ReferralStatus status
92
+ )
93
+ {
94
+ ReferralId referralId = getReferralId(referralCode);
95
+ return _getInstanceReader().getDiscountPercentage(referralId);
96
+ }
62
97
 
63
- registerInterface(type(IDistributionComponent).interfaceId);
98
+
99
+ function getReferralId(
100
+ string memory referralCode
101
+ )
102
+ public
103
+ view
104
+ returns (ReferralId referralId)
105
+ {
106
+ return ReferralLib.toReferralId(
107
+ getNftId(),
108
+ referralCode);
64
109
  }
65
110
 
66
- function setFees(
67
- Fee memory minDistributionOwnerFee,
68
- Fee memory distributionFee
111
+
112
+ function calculateRenewalFeeAmount(
113
+ ReferralId referralId,
114
+ uint256 netPremiumAmount
69
115
  )
70
116
  external
71
- override
72
- onlyOwner
73
- restricted()
117
+ view
118
+ virtual override
119
+ returns (uint256 feeAmount)
74
120
  {
75
- _getDistributionStorage()._distributionService.setFees(minDistributionOwnerFee, distributionFee);
121
+ // default is no fees
122
+ return 0 * netPremiumAmount;
76
123
  }
77
124
 
78
- function getDistributionFee() external view returns (Fee memory distributionFee) {
125
+
126
+ /// @dev Returns true iff the component needs to be called when selling/renewing policis
127
+ function isVerifying() external pure returns (bool verifying) {
128
+ return true;
129
+ }
130
+
131
+
132
+ function _initializeDistribution(
133
+ address registry,
134
+ NftId productNftId,
135
+ IAuthorization authorization,
136
+ address initialOwner,
137
+ string memory name,
138
+ address token,
139
+ bytes memory componentData // component specifidc data
140
+ )
141
+ internal
142
+ virtual
143
+ onlyInitializing()
144
+ {
145
+ _initializeInstanceLinkedComponent(
146
+ registry,
147
+ productNftId,
148
+ name,
149
+ token,
150
+ DISTRIBUTION(),
151
+ authorization,
152
+ true,
153
+ initialOwner,
154
+ componentData);
155
+
79
156
  DistributionStorage storage $ = _getDistributionStorage();
80
- return $._distributionFee;
157
+ $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
158
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
159
+
160
+ _registerInterface(type(IDistributionComponent).interfaceId);
81
161
  }
82
162
 
83
- function createDistributorType(
163
+ /// @dev Sets the distribution fees to the provided values.
164
+ function _setFees(
165
+ Fee memory distributionFee,
166
+ Fee memory minDistributionOwnerFee
167
+ )
168
+ internal
169
+ virtual
170
+ {
171
+ _getDistributionStorage()._componentService.setDistributionFees(
172
+ distributionFee,
173
+ minDistributionOwnerFee);
174
+ }
175
+
176
+ /// @dev Creates a new distributor type using the provided parameters.
177
+ function _createDistributorType(
84
178
  string memory name,
85
179
  UFixed minDiscountPercentage,
86
180
  UFixed maxDiscountPercentage,
@@ -91,7 +185,8 @@ abstract contract Distribution is
91
185
  bool allowRenewals,
92
186
  bytes memory data
93
187
  )
94
- public
188
+ internal
189
+ virtual
95
190
  returns (DistributorType distributorType)
96
191
  {
97
192
  DistributionStorage storage $ = _getDistributionStorage();
@@ -107,16 +202,20 @@ abstract contract Distribution is
107
202
  data);
108
203
  }
109
204
 
110
- function createDistributor(
205
+ /// @dev Turns the provided account into a new distributor of the specified type.
206
+ function _createDistributor(
111
207
  address distributor,
112
208
  DistributorType distributorType,
113
209
  bytes memory data
114
210
  )
115
- public
211
+ internal
212
+ virtual
116
213
  returns(NftId distributorNftId)
117
214
  {
118
215
  DistributionStorage storage $ = _getDistributionStorage();
119
- require($._distributorNftId[distributor].eqz(), "ERROR:DST-030:ALREADY_DISTRIBUTOR");
216
+ if($._distributorNftId[distributor].gtz()) {
217
+ revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
218
+ }
120
219
 
121
220
  distributorNftId = $._distributionService.createDistributor(
122
221
  distributor,
@@ -126,26 +225,23 @@ abstract contract Distribution is
126
225
  $._distributorNftId[distributor] = distributorNftId;
127
226
  }
128
227
 
129
- function updateDistributorType(
228
+ /// @dev Uptates the distributor type for the specified distributor.
229
+ function _changeDistributorType(
130
230
  NftId distributorNftId,
131
231
  DistributorType distributorType,
132
232
  bytes memory data
133
233
  )
134
- public
135
- // TODO figure out what we need for authz
136
- // and add it
234
+ internal
235
+ virtual
137
236
  {
138
237
  DistributionStorage storage $ = _getDistributionStorage();
139
- $._distributionService.updateDistributorType(
238
+ $._distributionService.changeDistributorType(
140
239
  distributorNftId,
141
240
  distributorType,
142
241
  data);
143
242
  }
144
243
 
145
- /**
146
- * @dev lets distributors create referral codes.
147
- * referral codes need to be unique
148
- */
244
+ /// @dev Create a new referral code for the provided distributor.
149
245
  function _createReferral(
150
246
  NftId distributorNftId,
151
247
  string memory code,
@@ -155,6 +251,7 @@ abstract contract Distribution is
155
251
  bytes memory data
156
252
  )
157
253
  internal
254
+ virtual
158
255
  returns (ReferralId referralId)
159
256
  {
160
257
  DistributionStorage storage $ = _getDistributionStorage();
@@ -167,109 +264,19 @@ abstract contract Distribution is
167
264
  data);
168
265
  }
169
266
 
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
267
+ function _withdrawCommission(NftId distributorNftId, Amount amount)
268
+ internal
269
+ returns (Amount withdrawnAmount)
234
270
  {
235
- // default is no action
271
+ return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
236
272
  }
237
273
 
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
-
261
- function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
274
+ function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
262
275
  // keep track of distributor nft owner
263
- emit LogDistributorUpdated(to, msg.sender);
276
+ emit LogDistributorUpdated(to, operator);
264
277
  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;
278
+ $._distributorNftId[from] = NftIdLib.zero();
279
+ $._distributorNftId[to] = NftIdLib.toNftId(tokenId);
273
280
  }
274
281
 
275
282
  function _getDistributionStorage() private pure returns (DistributionStorage storage $) {