@etherisc/gif-next 0.0.2-790d44b-698 → 0.0.2-79292f9-089

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 (737) hide show
  1. package/README.md +267 -42
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +195 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1159 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +914 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +283 -1679
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +495 -2044
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1693 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1218 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +230 -384
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +328 -260
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  138. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +187 -192
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1263 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
  150. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  152. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +242 -12
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +924 -119
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +1106 -235
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1133 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +832 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +605 -0
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +159 -154
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +102 -165
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +260 -193
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  230. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +81 -0
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  308. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  310. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  312. package/contracts/authorization/AccessAdmin.sol +590 -0
  313. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  314. package/contracts/authorization/Authorization.sol +220 -0
  315. package/contracts/authorization/IAccess.sol +48 -0
  316. package/contracts/authorization/IAccessAdmin.sol +135 -0
  317. package/contracts/authorization/IAuthorization.sol +54 -0
  318. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  319. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  320. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  321. package/contracts/authorization/ServiceAuthorization.sol +91 -0
  322. package/contracts/distribution/BasicDistribution.sol +138 -0
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  324. package/contracts/distribution/Distribution.sol +295 -0
  325. package/contracts/distribution/DistributionService.sol +322 -0
  326. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  327. package/contracts/distribution/IDistributionComponent.sol +52 -0
  328. package/contracts/distribution/IDistributionService.sol +95 -0
  329. package/contracts/instance/BundleSet.sol +126 -0
  330. package/contracts/instance/IInstance.sol +57 -47
  331. package/contracts/instance/IInstanceService.sol +92 -0
  332. package/contracts/instance/Instance.sol +216 -61
  333. package/contracts/instance/InstanceAdmin.sol +285 -0
  334. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  335. package/contracts/instance/InstanceReader.sol +408 -0
  336. package/contracts/instance/InstanceService.sol +466 -0
  337. package/contracts/instance/InstanceServiceManager.sol +40 -0
  338. package/contracts/instance/InstanceStore.sol +277 -0
  339. package/contracts/instance/base/BalanceStore.sol +123 -0
  340. package/contracts/instance/base/Cloneable.sol +28 -0
  341. package/contracts/instance/base/ObjectCounter.sol +21 -0
  342. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  343. package/contracts/instance/base/ObjectSet.sol +79 -0
  344. package/contracts/instance/module/IAccess.sol +46 -0
  345. package/contracts/instance/module/IBundle.sol +20 -0
  346. package/contracts/instance/module/IComponents.sol +46 -0
  347. package/contracts/instance/module/IDistribution.sol +41 -0
  348. package/contracts/instance/module/IPolicy.sol +84 -0
  349. package/contracts/instance/module/IRisk.sol +11 -0
  350. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  351. package/contracts/oracle/BasicOracle.sol +48 -0
  352. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  353. package/contracts/oracle/IOracle.sol +36 -0
  354. package/contracts/oracle/IOracleComponent.sol +33 -0
  355. package/contracts/oracle/IOracleService.sol +65 -0
  356. package/contracts/oracle/Oracle.sol +167 -0
  357. package/contracts/oracle/OracleService.sol +279 -0
  358. package/contracts/oracle/OracleServiceManager.sol +39 -0
  359. package/contracts/pool/BasicPool.sol +166 -0
  360. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  361. package/contracts/pool/BundleService.sol +436 -0
  362. package/contracts/pool/BundleServiceManager.sol +39 -0
  363. package/contracts/pool/IBundleService.sol +134 -0
  364. package/contracts/pool/IPoolComponent.sol +58 -0
  365. package/contracts/pool/IPoolService.sol +163 -0
  366. package/contracts/pool/Pool.sol +328 -0
  367. package/contracts/pool/PoolService.sol +541 -0
  368. package/contracts/pool/PoolServiceManager.sol +39 -0
  369. package/contracts/product/ApplicationService.sol +250 -0
  370. package/contracts/product/ApplicationServiceManager.sol +38 -0
  371. package/contracts/product/BasicProduct.sol +53 -0
  372. package/contracts/product/BasicProductAuthorization.sol +43 -0
  373. package/contracts/product/ClaimService.sol +416 -0
  374. package/contracts/product/ClaimServiceManager.sol +38 -0
  375. package/contracts/product/IApplicationService.sol +63 -0
  376. package/contracts/product/IClaimService.sol +100 -0
  377. package/contracts/product/IPolicyService.sol +84 -0
  378. package/contracts/product/IPricingService.sol +39 -0
  379. package/contracts/product/IProductComponent.sol +40 -0
  380. package/contracts/product/IRiskService.sol +33 -0
  381. package/contracts/product/PolicyService.sol +584 -0
  382. package/contracts/product/PolicyServiceManager.sol +39 -0
  383. package/contracts/product/PricingService.sol +304 -0
  384. package/contracts/product/PricingServiceManager.sol +39 -0
  385. package/contracts/product/Product.sol +411 -0
  386. package/contracts/product/RiskService.sol +97 -0
  387. package/contracts/product/RiskServiceManager.sol +39 -0
  388. package/contracts/registry/ChainNft.sol +131 -40
  389. package/contracts/registry/IRegistry.sol +140 -29
  390. package/contracts/registry/IRegistryService.sol +69 -0
  391. package/contracts/registry/ITransferInterceptor.sol +7 -0
  392. package/contracts/registry/Registry.sol +593 -346
  393. package/contracts/registry/RegistryAdmin.sol +464 -0
  394. package/contracts/registry/RegistryService.sol +251 -0
  395. package/contracts/registry/RegistryServiceManager.sol +53 -0
  396. package/contracts/registry/ReleaseLifecycle.sol +29 -0
  397. package/contracts/registry/ReleaseRegistry.sol +538 -0
  398. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  399. package/contracts/registry/TokenRegistry.sol +315 -0
  400. package/contracts/shared/Component.sol +268 -0
  401. package/contracts/shared/ComponentService.sol +641 -0
  402. package/contracts/shared/ComponentServiceManager.sol +35 -0
  403. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  404. package/contracts/shared/IComponent.sol +70 -0
  405. package/contracts/shared/IComponentService.sol +108 -0
  406. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  407. package/contracts/shared/IKeyValueStore.sol +54 -0
  408. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  409. package/contracts/shared/INftOwnable.sol +23 -0
  410. package/contracts/shared/IPolicyHolder.sol +45 -0
  411. package/contracts/shared/IRegisterable.sol +10 -19
  412. package/contracts/shared/IRegistryLinked.sol +11 -0
  413. package/contracts/shared/IService.sol +25 -0
  414. package/contracts/shared/InitializableCustom.sol +177 -0
  415. package/contracts/shared/InitializableERC165.sol +27 -0
  416. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  417. package/contracts/shared/KeyValueStore.sol +131 -0
  418. package/contracts/shared/Lifecycle.sol +77 -0
  419. package/contracts/shared/NftIdSet.sol +65 -0
  420. package/contracts/shared/NftOwnable.sol +107 -0
  421. package/contracts/shared/PolicyHolder.sol +99 -0
  422. package/contracts/shared/Registerable.sol +54 -65
  423. package/contracts/shared/RegistryLinked.sol +43 -0
  424. package/contracts/shared/Service.sol +82 -0
  425. package/contracts/shared/TokenHandler.sol +139 -0
  426. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  427. package/contracts/staking/IStaking.sol +167 -0
  428. package/contracts/staking/IStakingService.sol +160 -0
  429. package/contracts/staking/StakeManagerLib.sol +206 -0
  430. package/contracts/staking/Staking.sol +497 -0
  431. package/contracts/staking/StakingLifecycle.sol +23 -0
  432. package/contracts/staking/StakingManager.sol +50 -0
  433. package/contracts/staking/StakingReader.sol +183 -0
  434. package/contracts/staking/StakingService.sol +407 -0
  435. package/contracts/staking/StakingServiceManager.sol +44 -0
  436. package/contracts/staking/StakingStore.sol +605 -0
  437. package/contracts/staking/TargetManagerLib.sol +207 -0
  438. package/contracts/{types → type}/AddressSet.sol +1 -1
  439. package/contracts/type/Amount.sol +135 -0
  440. package/contracts/{types → type}/Blocknumber.sol +27 -3
  441. package/contracts/type/ClaimId.sol +75 -0
  442. package/contracts/type/DistributorType.sol +55 -0
  443. package/contracts/type/Fee.sol +66 -0
  444. package/contracts/{types → type}/Key32.sol +8 -3
  445. package/contracts/{types → type}/NftId.sol +21 -15
  446. package/contracts/type/NftIdSet.sol +62 -0
  447. package/contracts/type/ObjectType.sol +271 -0
  448. package/contracts/type/PayoutId.sol +82 -0
  449. package/contracts/type/Referral.sol +90 -0
  450. package/contracts/type/RequestId.sol +75 -0
  451. package/contracts/{types → type}/RiskId.sol +1 -1
  452. package/contracts/type/RoleId.sol +174 -0
  453. package/contracts/type/Seconds.sol +93 -0
  454. package/contracts/type/Selector.sol +102 -0
  455. package/contracts/{types → type}/StateId.sol +43 -5
  456. package/contracts/type/String.sol +53 -0
  457. package/contracts/{types → type}/Timestamp.sol +38 -15
  458. package/contracts/type/UFixed.sol +351 -0
  459. package/contracts/{types → type}/Version.sol +13 -3
  460. package/contracts/upgradeability/IVersionable.sol +53 -0
  461. package/contracts/upgradeability/ProxyManager.sol +198 -0
  462. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  463. package/contracts/upgradeability/Versionable.sol +59 -0
  464. package/package.json +11 -7
  465. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  466. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  467. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  468. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  469. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  470. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  471. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  472. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  473. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  474. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  475. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  477. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  478. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  479. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  480. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  481. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  483. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  485. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  487. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  489. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  491. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  493. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  495. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  497. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  499. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  501. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  503. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  506. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  508. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  510. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  512. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  514. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  515. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  516. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -364
  518. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  520. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  522. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  524. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  526. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  527. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  528. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  529. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -364
  531. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  533. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  536. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  538. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  541. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  543. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  545. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  548. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  551. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  554. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  556. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  558. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  560. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  562. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  565. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  567. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  569. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  570. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  571. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  572. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  573. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  574. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  575. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -595
  577. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -484
  579. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -366
  582. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -607
  586. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -922
  588. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  589. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  590. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  593. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  595. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  596. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  597. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +0 -4
  598. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +0 -248
  599. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  600. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +0 -129
  601. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  603. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  607. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  609. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  615. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -443
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  623. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  624. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  625. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  631. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  633. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  635. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  637. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  638. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  641. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  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 -30
  647. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  650. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  652. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  654. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  656. package/contracts/components/BaseComponent.sol +0 -94
  657. package/contracts/components/Distribution.sol +0 -132
  658. package/contracts/components/IBaseComponent.sol +0 -19
  659. package/contracts/components/IDistributionComponent.sol +0 -47
  660. package/contracts/components/IPoolComponent.sol +0 -71
  661. package/contracts/components/IProductComponent.sol +0 -38
  662. package/contracts/components/Pool.sol +0 -235
  663. package/contracts/components/Product.sol +0 -227
  664. package/contracts/experiment/errors/Require.sol +0 -38
  665. package/contracts/experiment/errors/Revert.sol +0 -44
  666. package/contracts/experiment/inheritance/A.sol +0 -53
  667. package/contracts/experiment/inheritance/B.sol +0 -28
  668. package/contracts/experiment/inheritance/C.sol +0 -34
  669. package/contracts/experiment/inheritance/IA.sol +0 -13
  670. package/contracts/experiment/inheritance/IB.sol +0 -10
  671. package/contracts/experiment/inheritance/IC.sol +0 -12
  672. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  673. package/contracts/experiment/statemachine/ISM.sol +0 -25
  674. package/contracts/experiment/statemachine/README.md +0 -112
  675. package/contracts/experiment/statemachine/SM.sol +0 -57
  676. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  677. package/contracts/experiment/types/TypeA.sol +0 -47
  678. package/contracts/experiment/types/TypeB.sol +0 -29
  679. package/contracts/instance/IInstanceLinked.sol +0 -8
  680. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  681. package/contracts/instance/base/IInstanceBase.sol +0 -22
  682. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  683. package/contracts/instance/base/IService.sol +0 -15
  684. package/contracts/instance/base/InstanceBase.sol +0 -91
  685. package/contracts/instance/base/KeyValueStore.sol +0 -161
  686. package/contracts/instance/base/Lifecycle.sol +0 -100
  687. package/contracts/instance/base/ModuleBase.sol +0 -57
  688. package/contracts/instance/base/ServiceBase.sol +0 -37
  689. package/contracts/instance/module/access/Access.sol +0 -149
  690. package/contracts/instance/module/access/IAccess.sol +0 -53
  691. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  692. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  693. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  694. package/contracts/instance/module/component/IComponent.sol +0 -28
  695. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  696. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  697. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  698. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  699. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  700. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  701. package/contracts/instance/module/risk/IRisk.sol +0 -26
  702. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  703. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  704. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  705. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  706. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  707. package/contracts/instance/service/DistributionService.sol +0 -59
  708. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  709. package/contracts/instance/service/IDistributionService.sol +0 -12
  710. package/contracts/instance/service/IPoolService.sol +0 -37
  711. package/contracts/instance/service/IProductService.sol +0 -107
  712. package/contracts/instance/service/PoolService.sol +0 -149
  713. package/contracts/instance/service/ProductService.sol +0 -509
  714. package/contracts/registry/IChainNft.sol +0 -21
  715. package/contracts/registry/IRegistryLinked.sol +0 -8
  716. package/contracts/shared/ERC165.sol +0 -21
  717. package/contracts/shared/IOwnable.sol +0 -6
  718. package/contracts/shared/IVersionable.sol +0 -94
  719. package/contracts/shared/Proxy.sol +0 -94
  720. package/contracts/shared/Versionable.sol +0 -141
  721. package/contracts/test/TestDistribution.sol +0 -21
  722. package/contracts/test/TestFee.sol +0 -25
  723. package/contracts/test/TestPool.sol +0 -25
  724. package/contracts/test/TestProduct.sol +0 -72
  725. package/contracts/test/TestRegisterable.sol +0 -19
  726. package/contracts/test/TestRoleId.sol +0 -14
  727. package/contracts/test/TestService.sol +0 -32
  728. package/contracts/test/TestToken.sol +0 -26
  729. package/contracts/test/TestVersion.sol +0 -44
  730. package/contracts/test/TestVersionable.sol +0 -17
  731. package/contracts/types/ChainId.sol +0 -38
  732. package/contracts/types/Fee.sol +0 -56
  733. package/contracts/types/NftIdSet.sol +0 -60
  734. package/contracts/types/ObjectType.sol +0 -131
  735. package/contracts/types/ReferralId.sol +0 -48
  736. package/contracts/types/RoleId.sol +0 -38
  737. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
7
+ import {SelectorLib} from "../type/Selector.sol";
8
+ import {StrLib} from "../type/String.sol";
9
+ import {TimestampLib} from "../type/Timestamp.sol";
10
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
11
+
12
+ /// @dev Base contract for release specific service authorization contracts.
13
+ contract ServiceAuthorization
14
+ is IServiceAuthorization
15
+ {
16
+ uint256 public immutable GIF_VERSION;
17
+
18
+ string private _commitHash;
19
+
20
+ ObjectType[] internal _serviceDomains;
21
+ mapping(ObjectType domain => address service) internal _serviceAddress;
22
+ mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
23
+ mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
24
+
25
+ constructor(string memory commitHash, uint256 version) {
26
+ _commitHash = commitHash;
27
+ GIF_VERSION = version;
28
+ _setupDomains();
29
+ _setupDomainAuthorizations();
30
+ }
31
+
32
+ function getCommitHash() external view returns(string memory commitHash) {
33
+ return _commitHash;
34
+ }
35
+
36
+ function getRelease() external view returns(VersionPart release) {
37
+ return VersionPartLib.toVersionPart(GIF_VERSION);
38
+ }
39
+
40
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
41
+ return _serviceDomains;
42
+ }
43
+
44
+ function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain) {
45
+ return _serviceDomains[idx];
46
+ }
47
+
48
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
49
+ return _serviceAddress[serviceDomain];
50
+ }
51
+
52
+ function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains) {
53
+ return _authorizedDomains[serviceDomain];
54
+ }
55
+
56
+ function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
57
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
58
+ }
59
+
60
+ /// @dev Overwrite this function for a specific realease.
61
+ function _setupDomains() internal virtual {}
62
+
63
+ /// @dev Overwrite this function for a specific realease.
64
+ function _setupDomainAuthorizations() internal virtual {}
65
+
66
+ /// @dev Use this method to to add an authorized domain.
67
+ /// The services will need to be registered in the order they are added using this function.
68
+ function _authorizeDomain(ObjectType serviceDomain, address serviceAddress) internal {
69
+ _serviceDomains.push(serviceDomain);
70
+ _serviceAddress[serviceDomain] = serviceAddress;
71
+ }
72
+
73
+ /// @dev Use this method to authorize the specified domain to access the service domain.
74
+ function _authorizeForService(ObjectType serviceDomain, ObjectType authorizedDomain)
75
+ internal
76
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
77
+ {
78
+ _authorizedDomains[serviceDomain].push(authorizedDomain);
79
+ return _authorizedFunctions[serviceDomain][authorizedDomain];
80
+ }
81
+
82
+ /// @dev Use this method to authorize a specific function authorization
83
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
84
+ functions.push(
85
+ IAccess.FunctionInfo({
86
+ selector: SelectorLib.toSelector(selector),
87
+ name: StrLib.toStr(name),
88
+ createdAt: TimestampLib.blockTimestamp()}));
89
+ }
90
+ }
91
+
@@ -0,0 +1,138 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Distribution} from "./Distribution.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ReferralId} from "../type/Referral.sol";
8
+ import {Fee} from "../type/Fee.sol";
9
+ import {UFixed} from "../type/UFixed.sol";
10
+ import {DistributorType} from "../type/DistributorType.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+
14
+ contract BasicDistribution is
15
+ Distribution
16
+ {
17
+
18
+ function setFees(
19
+ Fee memory distributionFee,
20
+ Fee memory minDistributionOwnerFee
21
+ )
22
+ external
23
+ virtual
24
+ onlyOwner()
25
+ restricted()
26
+ {
27
+ _setFees(
28
+ distributionFee,
29
+ minDistributionOwnerFee);
30
+ }
31
+
32
+
33
+ function createDistributorType(
34
+ string memory name,
35
+ UFixed minDiscountPercentage,
36
+ UFixed maxDiscountPercentage,
37
+ UFixed commissionPercentage,
38
+ uint32 maxReferralCount,
39
+ uint32 maxReferralLifetime,
40
+ bool allowSelfReferrals,
41
+ bool allowRenewals,
42
+ bytes memory data
43
+ )
44
+ external
45
+ virtual
46
+ onlyOwner()
47
+ restricted()
48
+ returns (DistributorType distributorType)
49
+ {
50
+ return _createDistributorType(
51
+ name,
52
+ minDiscountPercentage,
53
+ maxDiscountPercentage,
54
+ commissionPercentage,
55
+ maxReferralCount,
56
+ maxReferralLifetime,
57
+ allowSelfReferrals,
58
+ allowRenewals,
59
+ data);
60
+ }
61
+
62
+ function createDistributor(
63
+ address distributor,
64
+ DistributorType distributorType,
65
+ bytes memory data
66
+ )
67
+ external
68
+ virtual
69
+ onlyOwner()
70
+ restricted()
71
+ returns(NftId distributorNftId)
72
+ {
73
+ return _createDistributor(distributor, distributorType, data);
74
+ }
75
+
76
+ function updateDistributorType(
77
+ NftId distributorNftId,
78
+ DistributorType distributorType,
79
+ bytes memory data
80
+ )
81
+ external
82
+ virtual
83
+ onlyOwner()
84
+ restricted()
85
+ {
86
+ _updateDistributorType(distributorNftId, distributorType, data);
87
+ }
88
+
89
+ /**
90
+ * @dev lets distributors create referral codes.
91
+ * referral codes need to be unique
92
+ */
93
+ function createReferral(
94
+ string memory code,
95
+ UFixed discountPercentage,
96
+ uint32 maxReferrals,
97
+ Timestamp expiryAt,
98
+ bytes memory data
99
+ )
100
+ external
101
+ virtual
102
+ onlyDistributor()
103
+ restricted()
104
+ returns (ReferralId referralId)
105
+ {
106
+ NftId distributorNftId = getDistributorNftId(msg.sender);
107
+ return _createReferral(
108
+ distributorNftId,
109
+ code,
110
+ discountPercentage,
111
+ maxReferrals,
112
+ expiryAt,
113
+ data); // data
114
+ }
115
+
116
+ function _initializeBasicDistribution(
117
+ address registry,
118
+ NftId instanceNftId,
119
+ IAuthorization authorization,
120
+ address initialOwner,
121
+ string memory name,
122
+ address token
123
+ )
124
+ internal
125
+ virtual
126
+ onlyInitializing()
127
+ {
128
+ _initializeDistribution(
129
+ registry,
130
+ instanceNftId,
131
+ authorization,
132
+ initialOwner,
133
+ name,
134
+ token,
135
+ "", // registry data
136
+ ""); // component specifc data
137
+ }
138
+ }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicDistribution} from "./BasicDistribution.sol";
6
+ import {Distribution} from "./Distribution.sol";
7
+ import {DISTRIBUTION} from "../type/ObjectType.sol";
8
+ import {IAccess} from "../authorization/IAccess.sol";
9
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
10
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
+
12
+
13
+ contract BasicDistributionAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory distributionlName)
18
+ Authorization(distributionlName)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ _addComponentTargetWithRole(DISTRIBUTION()); // basic target
26
+ }
27
+
28
+
29
+ function _setupTargetAuthorizations()
30
+ internal
31
+ virtual override
32
+ {
33
+ IAccess.FunctionInfo[] storage functions;
34
+
35
+ // authorize public role (open access to any account, only allows to lock target)
36
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
37
+ _authorize(functions, BasicDistribution.setFees.selector, "setFees");
38
+ _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
39
+ _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
40
+ _authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
41
+ _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
42
+
43
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
44
+ _authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
45
+ }
46
+ }
47
+
@@ -0,0 +1,295 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, DISTRIBUTION} 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";
13
+ import {IDistributionComponent} from "./IDistributionComponent.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {Timestamp} from "../type/Timestamp.sol";
17
+
18
+
19
+ abstract contract Distribution is
20
+ InstanceLinkedComponent,
21
+ IDistributionComponent
22
+ {
23
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
24
+ bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
25
+
26
+ struct DistributionStorage {
27
+ IComponentService _componentService;
28
+ IDistributionService _distributionService;
29
+ mapping(address distributor => NftId distributorNftId) _distributorNftId;
30
+ }
31
+
32
+ modifier onlyDistributor() {
33
+ if (!isDistributor(msg.sender)) {
34
+ revert ErrorDistributionNotDistributor(msg.sender);
35
+ }
36
+ _;
37
+ }
38
+
39
+ function register()
40
+ external
41
+ virtual
42
+ onlyOwner()
43
+ {
44
+ _getDistributionStorage()._componentService.registerDistribution();
45
+ _approveTokenHandler(type(uint256).max);
46
+ }
47
+
48
+
49
+ function isDistributor(address candidate)
50
+ public
51
+ view
52
+ returns (bool)
53
+ {
54
+ DistributionStorage storage $ = _getDistributionStorage();
55
+ return $._distributorNftId[candidate].gtz();
56
+ }
57
+
58
+
59
+ function getDistributorNftId(address distributor)
60
+ public
61
+ view
62
+ returns (NftId distributorNftId)
63
+ {
64
+ DistributionStorage storage $ = _getDistributionStorage();
65
+ return $._distributorNftId[distributor];
66
+ }
67
+
68
+
69
+ function getDiscountPercentage(string memory referralCode)
70
+ external
71
+ view
72
+ returns (
73
+ UFixed discountPercentage,
74
+ ReferralStatus status
75
+ )
76
+ {
77
+ ReferralId referralId = getReferralId(referralCode);
78
+ return _getInstanceReader().getDiscountPercentage(referralId);
79
+ }
80
+
81
+
82
+ function getReferralId(
83
+ string memory referralCode
84
+ )
85
+ public
86
+ view
87
+ returns (ReferralId referralId)
88
+ {
89
+ return ReferralLib.toReferralId(
90
+ getNftId(),
91
+ referralCode);
92
+ }
93
+
94
+
95
+ function calculateRenewalFeeAmount(
96
+ ReferralId referralId,
97
+ uint256 netPremiumAmount
98
+ )
99
+ external
100
+ view
101
+ virtual override
102
+ returns (uint256 feeAmount)
103
+ {
104
+ // default is no fees
105
+ return 0 * netPremiumAmount;
106
+ }
107
+
108
+
109
+ function processRenewal(
110
+ ReferralId referralId,
111
+ uint256 feeAmount
112
+ )
113
+ external
114
+ virtual
115
+ restricted()
116
+ {
117
+ // default is no action
118
+ }
119
+
120
+ /// @dev Returns true iff the component needs to be called when selling/renewing policis
121
+ function isVerifying() external pure returns (bool verifying) {
122
+ return true;
123
+ }
124
+
125
+ /// @inheritdoc IDistributionComponent
126
+ function withdrawCommission(NftId distributorNftId, Amount amount)
127
+ external
128
+ virtual
129
+ restricted()
130
+ onlyDistributor()
131
+ onlyNftOwner(distributorNftId)
132
+ returns (Amount withdrawnAmount)
133
+ {
134
+ return _withdrawCommission(distributorNftId, amount);
135
+ }
136
+
137
+ function _initializeDistribution(
138
+ address registry,
139
+ NftId instanceNftId,
140
+ IAuthorization authorization,
141
+ address initialOwner,
142
+ string memory name,
143
+ address token,
144
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
145
+ bytes memory componentData // component specifidc data
146
+ )
147
+ internal
148
+ virtual
149
+ onlyInitializing()
150
+ {
151
+ _initializeInstanceLinkedComponent(
152
+ registry,
153
+ instanceNftId,
154
+ name,
155
+ token,
156
+ DISTRIBUTION(),
157
+ authorization,
158
+ true,
159
+ initialOwner,
160
+ registryData,
161
+ componentData);
162
+
163
+ DistributionStorage storage $ = _getDistributionStorage();
164
+ $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
165
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
166
+
167
+ registerInterface(type(IDistributionComponent).interfaceId);
168
+ }
169
+
170
+ /// @dev Sets the distribution fees to the provided values.
171
+ function _setFees(
172
+ Fee memory distributionFee,
173
+ Fee memory minDistributionOwnerFee
174
+ )
175
+ internal
176
+ virtual
177
+ {
178
+ _getDistributionStorage()._componentService.setDistributionFees(
179
+ distributionFee,
180
+ minDistributionOwnerFee);
181
+ }
182
+
183
+ /// @dev Creates a new distributor type using the provided parameters.
184
+ function _createDistributorType(
185
+ string memory name,
186
+ UFixed minDiscountPercentage,
187
+ UFixed maxDiscountPercentage,
188
+ UFixed commissionPercentage,
189
+ uint32 maxReferralCount,
190
+ uint32 maxReferralLifetime,
191
+ bool allowSelfReferrals,
192
+ bool allowRenewals,
193
+ bytes memory data
194
+ )
195
+ internal
196
+ virtual
197
+ returns (DistributorType distributorType)
198
+ {
199
+ DistributionStorage storage $ = _getDistributionStorage();
200
+ distributorType = $._distributionService.createDistributorType(
201
+ name,
202
+ minDiscountPercentage,
203
+ maxDiscountPercentage,
204
+ commissionPercentage,
205
+ maxReferralCount,
206
+ maxReferralLifetime,
207
+ allowSelfReferrals,
208
+ allowRenewals,
209
+ data);
210
+ }
211
+
212
+ /// @dev Turns the provided account into a new distributor of the specified type.
213
+ function _createDistributor(
214
+ address distributor,
215
+ DistributorType distributorType,
216
+ bytes memory data
217
+ )
218
+ internal
219
+ virtual
220
+ returns(NftId distributorNftId)
221
+ {
222
+ DistributionStorage storage $ = _getDistributionStorage();
223
+ if($._distributorNftId[distributor].gtz()) {
224
+ revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
225
+ }
226
+
227
+ distributorNftId = $._distributionService.createDistributor(
228
+ distributor,
229
+ distributorType,
230
+ data);
231
+
232
+ $._distributorNftId[distributor] = distributorNftId;
233
+ }
234
+
235
+ /// @dev Uptates the distributor type for the specified distributor.
236
+ function _updateDistributorType(
237
+ NftId distributorNftId,
238
+ DistributorType distributorType,
239
+ bytes memory data
240
+ )
241
+ internal
242
+ virtual
243
+ {
244
+ DistributionStorage storage $ = _getDistributionStorage();
245
+ // TODO re-enable once implemented
246
+ // $._distributionService.updateDistributorType(
247
+ // distributorNftId,
248
+ // distributorType,
249
+ // data);
250
+ }
251
+
252
+ /// @dev Create a new referral code for the provided distributor.
253
+ function _createReferral(
254
+ NftId distributorNftId,
255
+ string memory code,
256
+ UFixed discountPercentage,
257
+ uint32 maxReferrals,
258
+ Timestamp expiryAt,
259
+ bytes memory data
260
+ )
261
+ internal
262
+ virtual
263
+ returns (ReferralId referralId)
264
+ {
265
+ DistributionStorage storage $ = _getDistributionStorage();
266
+ referralId = $._distributionService.createReferral(
267
+ distributorNftId,
268
+ code,
269
+ discountPercentage,
270
+ maxReferrals,
271
+ expiryAt,
272
+ data);
273
+ }
274
+
275
+ function _withdrawCommission(NftId distributorNftId, Amount amount)
276
+ internal
277
+ returns (Amount withdrawnAmount)
278
+ {
279
+ return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
280
+ }
281
+
282
+ function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
283
+ // keep track of distributor nft owner
284
+ emit LogDistributorUpdated(to, msg.sender);
285
+ DistributionStorage storage $ = _getDistributionStorage();
286
+ $._distributorNftId[from] = NftIdLib.zero();
287
+ $._distributorNftId[to] = NftIdLib.toNftId(tokenId);
288
+ }
289
+
290
+ function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
291
+ assembly {
292
+ $.slot := DISTRIBUTION_STORAGE_LOCATION_V1
293
+ }
294
+ }
295
+ }