@etherisc/gif-next 0.0.2-b20ce14-335 → 0.0.2-b214449-558

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