@etherisc/gif-next 0.0.2-e0ff180-766 → 0.0.2-e14821a-976

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 (739) hide show
  1. package/README.md +153 -22
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1088 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +803 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1416 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +803 -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 +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +659 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1247 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +818 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +311 -328
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1835 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +943 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/Component.sol/Component.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +276 -280
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  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 +1487 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +818 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2056 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +818 -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 +1442 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +818 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1174 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1650 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +818 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2588 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +818 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +573 -1775
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +530 -71
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +639 -2578
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +850 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1866 -636
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +571 -386
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +216 -172
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +960 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +823 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +328 -225
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +876 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1055 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +823 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +357 -488
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +818 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1464 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +879 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +349 -284
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1397 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  144. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +382 -418
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1807 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +879 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1062 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +803 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +492 -497
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +818 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1546 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +891 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +185 -155
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +223 -164
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1417 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +867 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +958 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +827 -0
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  186. package/artifacts/contracts/product/Product.sol/Product.json +1120 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +886 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +787 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1087 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +415 -262
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +227 -111
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +696 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  222. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +289 -188
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1577 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +875 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  236. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +153 -138
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  238. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +584 -738
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +66 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +798 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +57 -67
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +36 -73
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +160 -102
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Service.sol/Service.json +110 -111
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +3188 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +860 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1357 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +779 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +669 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  360. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  361. package/contracts/accounting/AccountingService.sol +274 -0
  362. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  363. package/contracts/accounting/IAccountingService.sol +47 -0
  364. package/contracts/authorization/AccessAdmin.sol +780 -0
  365. package/contracts/authorization/AccessAdminLib.sol +396 -0
  366. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  367. package/contracts/authorization/Authorization.sol +169 -0
  368. package/contracts/authorization/IAccess.sol +67 -0
  369. package/contracts/authorization/IAccessAdmin.sol +144 -0
  370. package/contracts/authorization/IAuthorization.sol +26 -0
  371. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  372. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  373. package/contracts/distribution/BasicDistribution.sol +140 -0
  374. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  375. package/contracts/distribution/Distribution.sol +245 -0
  376. package/contracts/distribution/DistributionService.sol +465 -0
  377. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  378. package/contracts/distribution/IDistributionComponent.sol +45 -0
  379. package/contracts/distribution/IDistributionService.sol +115 -0
  380. package/contracts/examples/fire/DamageLevel.sol +59 -0
  381. package/contracts/examples/fire/FirePool.sol +86 -0
  382. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  383. package/contracts/examples/fire/FireProduct.sol +433 -0
  384. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  385. package/contracts/examples/fire/FireUSD.sol +26 -0
  386. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  387. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  389. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  390. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  391. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  392. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  393. package/contracts/instance/BaseStore.sol +93 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IBaseStore.sol +37 -0
  396. package/contracts/instance/IInstance.sol +131 -73
  397. package/contracts/instance/IInstanceService.sol +86 -39
  398. package/contracts/instance/Instance.sol +248 -224
  399. package/contracts/instance/InstanceAdmin.sol +379 -0
  400. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  401. package/contracts/instance/InstanceReader.sol +513 -192
  402. package/contracts/instance/InstanceService.sol +432 -394
  403. package/contracts/instance/InstanceServiceManager.sol +14 -29
  404. package/contracts/instance/InstanceStore.sol +323 -0
  405. package/contracts/instance/ProductStore.sol +290 -0
  406. package/contracts/instance/RiskSet.sol +126 -0
  407. package/contracts/instance/TargetNames.sol +10 -0
  408. package/contracts/instance/base/BalanceStore.sol +121 -0
  409. package/contracts/instance/base/Cloneable.sol +28 -0
  410. package/contracts/instance/base/ObjectCounter.sol +20 -0
  411. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  412. package/contracts/instance/base/ObjectSet.sol +77 -0
  413. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  414. package/contracts/instance/module/IBundle.sol +9 -11
  415. package/contracts/instance/module/IComponents.sol +43 -24
  416. package/contracts/instance/module/IDistribution.sol +25 -12
  417. package/contracts/instance/module/IPolicy.sol +71 -38
  418. package/contracts/instance/module/IRisk.sol +6 -1
  419. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  420. package/contracts/oracle/BasicOracle.sol +44 -0
  421. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  422. package/contracts/oracle/IOracle.sol +41 -0
  423. package/contracts/oracle/IOracleComponent.sol +33 -0
  424. package/contracts/oracle/IOracleService.sol +66 -0
  425. package/contracts/oracle/Oracle.sol +152 -0
  426. package/contracts/oracle/OracleService.sol +310 -0
  427. package/contracts/oracle/OracleServiceManager.sol +39 -0
  428. package/contracts/pool/BasicPool.sol +161 -0
  429. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  430. package/contracts/pool/BundleService.sol +401 -0
  431. package/contracts/pool/BundleServiceManager.sol +39 -0
  432. package/contracts/pool/IBundleService.sol +116 -0
  433. package/contracts/pool/IPoolComponent.sol +62 -0
  434. package/contracts/pool/IPoolService.sol +167 -0
  435. package/contracts/pool/Pool.sol +331 -0
  436. package/contracts/pool/PoolLib.sol +341 -0
  437. package/contracts/pool/PoolService.sol +635 -0
  438. package/contracts/pool/PoolServiceManager.sol +39 -0
  439. package/contracts/product/ApplicationService.sol +343 -0
  440. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  441. package/contracts/product/BasicProduct.sol +48 -0
  442. package/contracts/product/BasicProductAuthorization.sol +63 -0
  443. package/contracts/product/ClaimService.sol +642 -0
  444. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  445. package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
  446. package/contracts/product/IClaimService.sol +136 -0
  447. package/contracts/product/IPolicyService.sol +102 -0
  448. package/contracts/product/IPricingService.sol +40 -0
  449. package/contracts/product/IProductComponent.sol +62 -0
  450. package/contracts/product/IRiskService.sol +48 -0
  451. package/contracts/product/PolicyService.sol +680 -0
  452. package/contracts/product/PolicyServiceLib.sol +139 -0
  453. package/contracts/product/PolicyServiceManager.sol +39 -0
  454. package/contracts/product/PricingService.sol +318 -0
  455. package/contracts/product/PricingServiceManager.sol +39 -0
  456. package/contracts/product/Product.sol +491 -0
  457. package/contracts/product/RiskService.sol +189 -0
  458. package/contracts/product/RiskServiceManager.sol +39 -0
  459. package/contracts/registry/ChainNft.sol +79 -40
  460. package/contracts/registry/IRegistry.sol +104 -33
  461. package/contracts/registry/IRegistryService.sol +34 -40
  462. package/contracts/registry/IRelease.sol +29 -0
  463. package/contracts/registry/ITransferInterceptor.sol +1 -2
  464. package/contracts/registry/Registry.sol +469 -200
  465. package/contracts/registry/RegistryAdmin.sol +191 -0
  466. package/contracts/registry/RegistryAuthorization.sol +336 -0
  467. package/contracts/registry/RegistryService.sol +90 -131
  468. package/contracts/registry/RegistryServiceManager.sol +23 -32
  469. package/contracts/registry/ReleaseAdmin.sol +195 -0
  470. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  471. package/contracts/registry/ReleaseRegistry.sol +525 -0
  472. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  473. package/contracts/registry/TokenRegistry.sol +265 -64
  474. package/contracts/shared/Component.sol +210 -0
  475. package/contracts/shared/ComponentService.sol +705 -0
  476. package/contracts/shared/ComponentServiceManager.sol +38 -0
  477. package/contracts/shared/ContractLib.sol +312 -0
  478. package/contracts/shared/IComponent.sol +58 -0
  479. package/contracts/shared/IComponentService.sol +111 -0
  480. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  481. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  482. package/contracts/shared/INftOwnable.sol +6 -2
  483. package/contracts/shared/IPolicyHolder.sol +23 -14
  484. package/contracts/shared/IRegisterable.sol +22 -1
  485. package/contracts/shared/IRegistryLinked.sol +0 -1
  486. package/contracts/shared/IService.sol +12 -5
  487. package/contracts/shared/InitializableERC165.sol +49 -0
  488. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  489. package/contracts/shared/Lifecycle.sol +88 -0
  490. package/contracts/shared/NftIdSet.sol +65 -0
  491. package/contracts/shared/NftOwnable.sol +39 -30
  492. package/contracts/shared/PolicyHolder.sol +23 -41
  493. package/contracts/shared/Registerable.sol +54 -22
  494. package/contracts/shared/RegistryLinked.sol +11 -21
  495. package/contracts/shared/Service.sol +36 -41
  496. package/contracts/shared/TokenHandler.sol +322 -13
  497. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  498. package/contracts/staking/IStaking.sol +367 -0
  499. package/contracts/staking/IStakingService.sol +127 -0
  500. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  501. package/contracts/staking/Staking.sol +797 -0
  502. package/contracts/staking/StakingLib.sol +195 -0
  503. package/contracts/staking/StakingManager.sol +53 -0
  504. package/contracts/staking/StakingReader.sol +171 -0
  505. package/contracts/staking/StakingService.sol +320 -0
  506. package/contracts/staking/StakingServiceManager.sol +46 -0
  507. package/contracts/staking/StakingStore.sol +1368 -0
  508. package/contracts/staking/TargetHandler.sol +132 -0
  509. package/contracts/staking/TargetManagerLib.sol +234 -0
  510. package/contracts/{types → type}/AddressSet.sol +1 -1
  511. package/contracts/type/Amount.sol +154 -0
  512. package/contracts/{types → type}/Blocknumber.sol +36 -13
  513. package/contracts/type/ChainId.sol +101 -0
  514. package/contracts/{types → type}/ClaimId.sol +31 -3
  515. package/contracts/{types → type}/Fee.sol +28 -26
  516. package/contracts/{types → type}/Key32.sol +2 -2
  517. package/contracts/type/Key32Set.sol +62 -0
  518. package/contracts/{types → type}/NftId.sol +21 -16
  519. package/contracts/{types → type}/NftIdSet.sol +2 -2
  520. package/contracts/type/ObjectType.sol +307 -0
  521. package/contracts/type/PayoutId.sol +82 -0
  522. package/contracts/{types → type}/Referral.sol +2 -1
  523. package/contracts/type/RequestId.sol +75 -0
  524. package/contracts/type/RiskId.sol +75 -0
  525. package/contracts/type/RoleId.sol +180 -0
  526. package/contracts/type/Seconds.sol +120 -0
  527. package/contracts/type/Selector.sol +107 -0
  528. package/contracts/{types → type}/StateId.sol +47 -4
  529. package/contracts/type/String.sol +65 -0
  530. package/contracts/{types → type}/Timestamp.sol +23 -7
  531. package/contracts/type/UFixed.sol +263 -0
  532. package/contracts/{types → type}/Version.sol +58 -7
  533. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  534. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  535. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +28 -0
  536. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  537. package/package.json +12 -8
  538. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  540. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  545. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  546. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  547. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  548. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  550. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  553. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  555. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  560. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  562. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  564. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  567. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  569. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  571. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  573. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  575. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  577. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  579. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  581. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  583. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  587. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  592. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  594. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  598. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  600. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  602. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  604. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  605. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  606. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  607. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  608. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  610. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  611. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  612. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  614. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  615. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  616. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  617. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  620. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  622. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  624. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  626. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  628. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  629. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  630. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  631. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  632. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  633. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  634. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  636. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  638. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  640. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  642. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  644. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  646. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  648. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  650. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  652. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  653. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  654. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  656. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  658. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  660. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  662. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  664. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  666. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  668. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  670. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  672. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  674. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  676. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  678. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  680. package/contracts/components/Component.sol +0 -253
  681. package/contracts/components/Distribution.sol +0 -280
  682. package/contracts/components/IComponent.sol +0 -76
  683. package/contracts/components/IDistributionComponent.sol +0 -71
  684. package/contracts/components/IPoolComponent.sol +0 -113
  685. package/contracts/components/IProductComponent.sol +0 -40
  686. package/contracts/components/Pool.sol +0 -303
  687. package/contracts/components/Product.sol +0 -293
  688. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  689. package/contracts/instance/BundleManager.sol +0 -127
  690. package/contracts/instance/Cloneable.sol +0 -51
  691. package/contracts/instance/InstanceAccessManager.sol +0 -527
  692. package/contracts/instance/ObjectManager.sol +0 -82
  693. package/contracts/instance/base/ComponentService.sol +0 -121
  694. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  695. package/contracts/instance/base/KeyValueStore.sol +0 -180
  696. package/contracts/instance/base/Lifecycle.sol +0 -109
  697. package/contracts/instance/module/IAccess.sol +0 -54
  698. package/contracts/instance/module/ISetup.sol +0 -33
  699. package/contracts/instance/module/ITreasury.sol +0 -23
  700. package/contracts/instance/service/ApplicationService.sol +0 -350
  701. package/contracts/instance/service/BundleService.sol +0 -431
  702. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  703. package/contracts/instance/service/ClaimService.sol +0 -151
  704. package/contracts/instance/service/DistributionService.sol +0 -435
  705. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  706. package/contracts/instance/service/IBundleService.sol +0 -93
  707. package/contracts/instance/service/IClaimService.sol +0 -61
  708. package/contracts/instance/service/IDistributionService.sol +0 -99
  709. package/contracts/instance/service/IPolicyService.sol +0 -72
  710. package/contracts/instance/service/IPoolService.sol +0 -99
  711. package/contracts/instance/service/IProductService.sol +0 -40
  712. package/contracts/instance/service/PolicyService.sol +0 -362
  713. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  714. package/contracts/instance/service/PoolService.sol +0 -303
  715. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  716. package/contracts/instance/service/ProductService.sol +0 -210
  717. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  718. package/contracts/registry/RegistryAccessManager.sol +0 -216
  719. package/contracts/registry/ReleaseManager.sol +0 -324
  720. package/contracts/shared/ContractDeployerLib.sol +0 -72
  721. package/contracts/shared/ERC165.sol +0 -27
  722. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  723. package/contracts/test/TestFee.sol +0 -25
  724. package/contracts/test/TestRegisterable.sol +0 -18
  725. package/contracts/test/TestRoleId.sol +0 -14
  726. package/contracts/test/TestService.sol +0 -25
  727. package/contracts/test/TestToken.sol +0 -26
  728. package/contracts/test/TestVersion.sol +0 -44
  729. package/contracts/test/TestVersionable.sol +0 -17
  730. package/contracts/types/Amount.sol +0 -60
  731. package/contracts/types/ChainId.sol +0 -38
  732. package/contracts/types/NumberId.sol +0 -52
  733. package/contracts/types/ObjectType.sol +0 -157
  734. package/contracts/types/PayoutId.sol +0 -54
  735. package/contracts/types/RiskId.sol +0 -43
  736. package/contracts/types/RoleId.sol +0 -97
  737. package/contracts/types/Seconds.sol +0 -54
  738. package/contracts/types/UFixed.sol +0 -326
  739. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,49 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "VersionPartLib",
4
- "sourceName": "contracts/types/Version.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "VersionPart",
10
- "name": "a",
11
- "type": "uint8"
12
- }
13
- ],
14
- "name": "toInt",
15
- "outputs": [
16
- {
17
- "internalType": "uint256",
18
- "name": "",
19
- "type": "uint256"
20
- }
21
- ],
22
- "stateMutability": "pure",
23
- "type": "function"
24
- },
25
- {
26
- "inputs": [
27
- {
28
- "internalType": "uint256",
29
- "name": "a",
30
- "type": "uint256"
31
- }
32
- ],
33
- "name": "toVersionPart",
34
- "outputs": [
35
- {
36
- "internalType": "VersionPart",
37
- "name": "",
38
- "type": "uint8"
39
- }
40
- ],
41
- "stateMutability": "pure",
42
- "type": "function"
43
- }
44
- ],
45
- "bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
46
- "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
47
- "linkReferences": {},
48
- "deployedLinkReferences": {}
49
- }
@@ -1,253 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
-
9
- import {IComponent} from "./IComponent.sol";
10
- import {IComponents} from "../instance/module/IComponents.sol";
11
- import {IProductService} from "../instance/service/IProductService.sol";
12
- import {IInstanceService} from "../instance/IInstanceService.sol";
13
- import {IInstance} from "../instance/IInstance.sol";
14
- import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
15
- import {InstanceReader} from "../instance/InstanceReader.sol";
16
- import {IRegistry} from "../registry/IRegistry.sol";
17
- import {NftId} from "../types/NftId.sol";
18
- import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
19
- import {VersionPart} from "../types/Version.sol";
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
22
- import {IAccess} from "../instance/module/IAccess.sol";
23
- import {VersionPart} from "../types/Version.sol";
24
-
25
- // TODO discuss to inherit from oz accessmanaged
26
- // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
27
- // same pattern as for Service which is also upgradeable
28
- abstract contract Component is
29
- Registerable,
30
- IComponent,
31
- AccessManagedUpgradeable
32
- {
33
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
34
- bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
35
-
36
- struct ComponentStorage {
37
- string _name; // unique (per instance) component name
38
- IERC20Metadata _token; // token for this component
39
- IInstance _instance; // instance for this component
40
- address _wallet; // wallet for this component (default = component contract itself)
41
- InstanceReader _instanceReader; // instance reader for this component
42
- bool _isNftInterceptor; // declares if component is involved in nft transfers
43
- NftId _productNftId; // only relevant for components that are linked to a aproduct
44
- }
45
-
46
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
47
- assembly {
48
- $.slot := COMPONENT_LOCATION_V1
49
- }
50
- }
51
-
52
- modifier onlyChainNft() {
53
- if(msg.sender != getRegistry().getChainNftAddress()) {
54
- revert ErrorComponentNotChainNft(msg.sender);
55
- }
56
- _;
57
- }
58
-
59
- function initializeComponent(
60
- address registry,
61
- NftId instanceNftId,
62
- string memory name,
63
- address token,
64
- ObjectType componentType,
65
- bool isInterceptor,
66
- address initialOwner,
67
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
68
- )
69
- public
70
- virtual
71
- onlyInitializing()
72
- {
73
- initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, registryData);
74
-
75
- // set and check linked instance
76
- ComponentStorage storage $ = _getComponentStorage();
77
- $._instance = IInstance(
78
- getRegistry().getObjectInfo(instanceNftId).objectAddress);
79
-
80
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
81
- revert ErrorComponentNotInstance(instanceNftId);
82
- }
83
-
84
- // initialize AccessManagedUpgradeable
85
- __AccessManaged_init($._instance.authority());
86
-
87
- // set component state
88
- $._name = name;
89
- $._isNftInterceptor = isInterceptor;
90
- $._instanceReader = $._instance.getInstanceReader();
91
- $._wallet = address(this);
92
- $._token = IERC20Metadata(token);
93
-
94
- registerInterface(type(IAccessManaged).interfaceId);
95
- registerInterface(type(IComponent).interfaceId);
96
- }
97
-
98
- function lock() external onlyOwner override {
99
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
100
- }
101
-
102
- function unlock() external onlyOwner override {
103
- IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
104
- }
105
-
106
- function setWallet(address newWallet)
107
- external
108
- override
109
- onlyOwner
110
- {
111
- ComponentStorage storage $ = _getComponentStorage();
112
-
113
- address currentWallet = $._wallet;
114
- uint256 currentBalance = $._token.balanceOf(currentWallet);
115
-
116
- // checks
117
- if (newWallet == address(0)) {
118
- revert ErrorComponentWalletAddressZero();
119
- }
120
-
121
- if (newWallet == currentWallet) {
122
- revert ErrorComponentWalletAddressIsSameAsCurrent();
123
- }
124
-
125
- if (currentBalance > 0) {
126
- if (currentWallet == address(this)) {
127
- // move tokens from component smart contract to external wallet
128
- } else {
129
- // move tokens from external wallet to component smart contract or another external wallet
130
- uint256 allowance = $._token.allowance(currentWallet, address(this));
131
- if (allowance < currentBalance) {
132
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
133
- }
134
- }
135
- }
136
-
137
- // effects
138
- $._wallet = newWallet;
139
- emit LogComponentWalletAddressChanged(currentWallet, newWallet);
140
-
141
- // interactions
142
- if (currentBalance > 0) {
143
- // transfer tokens from current wallet to new wallet
144
- if (currentWallet == address(this)) {
145
- // transferFrom requires self allowance too
146
- $._token.approve(address(this), currentBalance);
147
- }
148
-
149
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
150
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
151
- }
152
- }
153
-
154
- function setProductNftId(NftId productNftId)
155
- external
156
- override
157
- {
158
- ComponentStorage storage $ = _getComponentStorage();
159
-
160
- // verify caller is product service
161
- if(msg.sender != _getServiceAddress(PRODUCT())) {
162
- revert ErrorComponentNotProductService(msg.sender);
163
- }
164
-
165
- // verify component is not yet linked to a product
166
- if($._productNftId.gtz()) {
167
- revert ErrorComponentProductNftAlreadySet();
168
- }
169
-
170
- $._productNftId = productNftId;
171
- }
172
-
173
- function nftMint(address to, uint256 tokenId)
174
- external
175
- virtual
176
- onlyChainNft
177
- {}
178
-
179
- /// @dev callback function for nft transfers
180
- /// may only be called by chain nft contract.
181
- /// do not override this function to implement business logic for handling transfers
182
- /// override internal function _nftTransferFrom instead
183
- function nftTransferFrom(address from, address to, uint256 tokenId)
184
- external
185
- virtual
186
- onlyChainNft
187
- {
188
- _nftTransferFrom(from, to, tokenId);
189
- }
190
-
191
- function getWallet() public view override returns (address walletAddress)
192
- {
193
- return _getComponentStorage()._wallet;
194
- }
195
-
196
- function getToken() public view override returns (IERC20Metadata token) {
197
- return _getComponentStorage()._token;
198
- }
199
-
200
- function isNftInterceptor() public view override returns(bool isInterceptor) {
201
- return _getComponentStorage()._isNftInterceptor;
202
- }
203
-
204
- function getInstance() public view override returns (IInstance instance) {
205
- return _getComponentStorage()._instance;
206
- }
207
-
208
- function getName() public view override returns(string memory name) {
209
- return _getComponentStorage()._name;
210
- }
211
-
212
- function getProductNftId() public view override returns (NftId productNftId) {
213
- return _getComponentStorage()._productNftId;
214
- }
215
-
216
- function getComponentInfo() public view returns (IComponents.ComponentInfo memory info) {
217
- info = _getInstanceReader().getComponentInfo(getNftId());
218
-
219
- // fallback to initial info (wallet is always != address(0))
220
- if(info.wallet == address(0)) {
221
- info = _getInitialInfo();
222
- }
223
- }
224
-
225
- /// @dev defines initial component specification
226
- /// overwrite this function according to your use case
227
- function _getInitialInfo()
228
- internal
229
- view
230
- virtual
231
- returns (IComponents.ComponentInfo memory info)
232
- { }
233
-
234
-
235
- /// @dev internal function for nft transfers.
236
- /// handling logic that deals with nft transfers need to overwrite this function
237
- function _nftTransferFrom(address from, address to, uint256 tokenId)
238
- internal
239
- virtual
240
- { }
241
-
242
- /// @dev returns reader for linked instance
243
- function _getInstanceReader() internal view returns (InstanceReader reader) {
244
- return _getComponentStorage()._instanceReader;
245
- }
246
-
247
- /// @dev returns the service address for the specified domain
248
- /// gets address via lookup from registry using the major version form the linked instance
249
- function _getServiceAddress(ObjectType domain) internal view returns (address service) {
250
- VersionPart majorVersion = _getComponentStorage()._instance.getMajorVersion();
251
- return getRegistry().getServiceAddress(domain, majorVersion);
252
- }
253
- }
@@ -1,280 +0,0 @@
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";
12
- 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";
23
-
24
-
25
- abstract contract Distribution is
26
- Component,
27
- IDistributionComponent
28
- {
29
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
30
- bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
31
-
32
- struct DistributionStorage {
33
- Fee _minDistributionOwnerFee;
34
- Fee _distributionFee;
35
- TokenHandler _tokenHandler;
36
- IDistributionService _distributionService;
37
- mapping(address distributor => NftId distributorNftId) _distributorNftId;
38
- }
39
-
40
- function initializeDistribution(
41
- address registry,
42
- NftId instanceNftId,
43
- string memory name,
44
- address token,
45
- Fee memory minDistributionOwnerFee,
46
- Fee memory distributionFee,
47
- address initialOwner,
48
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
49
- )
50
- public
51
- virtual
52
- onlyInitializing()
53
- {
54
- initializeComponent(registry, instanceNftId, name, token, DISTRIBUTION(), true, initialOwner, registryData);
55
-
56
- DistributionStorage storage $ = _getDistributionStorage();
57
- // TODO add validation
58
- $._minDistributionOwnerFee = minDistributionOwnerFee;
59
- $._distributionFee = distributionFee;
60
- $._tokenHandler = new TokenHandler(token);
61
- $._distributionService = getInstance().getDistributionService();
62
-
63
- registerInterface(type(IDistributionComponent).interfaceId);
64
- }
65
-
66
- function setFees(
67
- Fee memory minDistributionOwnerFee,
68
- Fee memory distributionFee
69
- )
70
- external
71
- override
72
- onlyOwner
73
- restricted()
74
- {
75
- _getDistributionStorage()._distributionService.setFees(minDistributionOwnerFee, distributionFee);
76
- }
77
-
78
- function getDistributionFee() external view returns (Fee memory distributionFee) {
79
- DistributionStorage storage $ = _getDistributionStorage();
80
- return $._distributionFee;
81
- }
82
-
83
- function createDistributorType(
84
- string memory name,
85
- UFixed minDiscountPercentage,
86
- UFixed maxDiscountPercentage,
87
- UFixed commissionPercentage,
88
- uint32 maxReferralCount,
89
- uint32 maxReferralLifetime,
90
- bool allowSelfReferrals,
91
- bool allowRenewals,
92
- bytes memory data
93
- )
94
- public
95
- returns (DistributorType distributorType)
96
- {
97
- DistributionStorage storage $ = _getDistributionStorage();
98
- distributorType = $._distributionService.createDistributorType(
99
- name,
100
- minDiscountPercentage,
101
- maxDiscountPercentage,
102
- commissionPercentage,
103
- maxReferralCount,
104
- maxReferralLifetime,
105
- allowSelfReferrals,
106
- allowRenewals,
107
- data);
108
- }
109
-
110
- function createDistributor(
111
- address distributor,
112
- DistributorType distributorType,
113
- bytes memory data
114
- )
115
- public
116
- returns(NftId distributorNftId)
117
- {
118
- DistributionStorage storage $ = _getDistributionStorage();
119
- require($._distributorNftId[distributor].eqz(), "ERROR:DST-030:ALREADY_DISTRIBUTOR");
120
-
121
- distributorNftId = $._distributionService.createDistributor(
122
- distributor,
123
- distributorType,
124
- data);
125
-
126
- $._distributorNftId[distributor] = distributorNftId;
127
- }
128
-
129
- function updateDistributorType(
130
- NftId distributorNftId,
131
- DistributorType distributorType,
132
- bytes memory data
133
- )
134
- public
135
- // TODO figure out what we need for authz
136
- // and add it
137
- {
138
- DistributionStorage storage $ = _getDistributionStorage();
139
- $._distributionService.updateDistributorType(
140
- distributorNftId,
141
- distributorType,
142
- data);
143
- }
144
-
145
- /**
146
- * @dev lets distributors create referral codes.
147
- * referral codes need to be unique
148
- */
149
- function _createReferral(
150
- NftId distributorNftId,
151
- string memory code,
152
- UFixed discountPercentage,
153
- uint32 maxReferrals,
154
- Timestamp expiryAt,
155
- bytes memory data
156
- )
157
- internal
158
- returns (ReferralId referralId)
159
- {
160
- DistributionStorage storage $ = _getDistributionStorage();
161
- referralId = $._distributionService.createReferral(
162
- distributorNftId,
163
- code,
164
- discountPercentage,
165
- maxReferrals,
166
- expiryAt,
167
- data);
168
- }
169
-
170
- function isDistributor(address candidate)
171
- public
172
- view
173
- returns (bool)
174
- {
175
- DistributionStorage storage $ = _getDistributionStorage();
176
- return $._distributorNftId[candidate].gtz();
177
- }
178
-
179
- function getDistributorNftId(address distributor)
180
- public
181
- view
182
- returns (NftId distributorNftId)
183
- {
184
- DistributionStorage storage $ = _getDistributionStorage();
185
- return $._distributorNftId[distributor];
186
- }
187
-
188
- function getDiscountPercentage(string memory referralCode)
189
- external
190
- view
191
- returns (
192
- UFixed discountPercentage,
193
- ReferralStatus status
194
- )
195
- {
196
- ReferralId referralId = getReferralId(referralCode);
197
- return _getInstanceReader().getDiscountPercentage(referralId);
198
- }
199
-
200
-
201
- function getReferralId(
202
- string memory referralCode
203
- )
204
- public
205
- view
206
- returns (ReferralId referralId)
207
- {
208
- return ReferralLib.toReferralId(
209
- getNftId(),
210
- referralCode);
211
- }
212
-
213
- function calculateRenewalFeeAmount(
214
- ReferralId referralId,
215
- uint256 netPremiumAmount
216
- )
217
- external
218
- view
219
- virtual override
220
- returns (uint256 feeAmount)
221
- {
222
- // default is no fees
223
- return 0 * netPremiumAmount;
224
- }
225
-
226
- function processRenewal(
227
- ReferralId referralId,
228
- uint256 feeAmount
229
- )
230
- external
231
- onlyOwner
232
- restricted()
233
- virtual override
234
- {
235
- // default is no action
236
- }
237
-
238
- function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
239
- InstanceReader reader = getInstance().getInstanceReader();
240
- setupInfo = reader.getDistributionSetupInfo(getNftId());
241
-
242
- // fallback to initial setup info (wallet is always != address(0))
243
- if(setupInfo.wallet == address(0)) {
244
- setupInfo = _getInitialSetupInfo();
245
- }
246
- }
247
-
248
- function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
249
- DistributionStorage storage $ = _getDistributionStorage();
250
- return ISetup.DistributionSetupInfo(
251
- zeroNftId(),
252
- $._tokenHandler,
253
- $._minDistributionOwnerFee,
254
- $._distributionFee,
255
- address(this),
256
- 0
257
- );
258
- }
259
-
260
-
261
- function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
262
- // keep track of distributor nft owner
263
- emit LogDistributorUpdated(to, msg.sender);
264
- DistributionStorage storage $ = _getDistributionStorage();
265
- $._distributorNftId[from] = zeroNftId();
266
- $._distributorNftId[to] = toNftId(tokenId);
267
- }
268
-
269
-
270
- /// @dev returns true iff the component needs to be called when selling/renewing policis
271
- function isVerifying() external view returns (bool verifying) {
272
- return true;
273
- }
274
-
275
- function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
276
- assembly {
277
- $.slot := DISTRIBUTION_STORAGE_LOCATION_V1
278
- }
279
- }
280
- }
@@ -1,76 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
-
7
- import {IComponents} from "../instance/module/IComponents.sol";
8
- import {IInstance} from "../instance/IInstance.sol";
9
- import {IInstanceService} from "../instance/IInstanceService.sol";
10
- import {IProductService} from "../instance/service/IProductService.sol";
11
- import {IRegisterable} from "../shared/IRegisterable.sol";
12
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
- import {NftId} from "../types/NftId.sol";
14
- import {ObjectType} from "../types/ObjectType.sol";
15
-
16
- /// @dev component base class
17
- /// component examples are product, distribution, pool and oracle
18
- interface IComponent is
19
- IRegisterable,
20
- ITransferInterceptor,
21
- IAccessManaged
22
- {
23
- error ErrorComponentNotChainNft(address caller);
24
- error ErrorComponentNotProductService(address caller);
25
- error ErrorComponentNotInstance(NftId instanceNftId);
26
- error ErrorComponentProductNftAlreadySet();
27
-
28
- error ErrorComponentWalletAddressZero();
29
- error ErrorComponentWalletAddressIsSameAsCurrent();
30
- error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
31
-
32
- event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
33
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
34
-
35
- /// @dev locks component to disable functions that may change state related to this component, the only exception is function "unlock"
36
- /// only component owner (nft holder) is authorizes to call this function
37
- function lock() external;
38
-
39
- /// @dev unlocks component to (re-)enable functions that may change state related to this component
40
- /// only component owner (nft holder) is authorizes to call this function
41
- function unlock() external;
42
-
43
- /// @dev sets the wallet address for the component
44
- /// if the current wallet has tokens, these will be transferred
45
- /// if the new wallet address is externally owned, an approval from the
46
- /// owner of the external wallet for the component to move all tokens must exist
47
- function setWallet(address walletAddress) external;
48
-
49
- /// @dev only product service may set product nft id during registration of product setup
50
- function setProductNftId(NftId productNftId) external;
51
-
52
- /// @dev returns the name of this component
53
- /// to successfully register the component with an instance the name MUST be unique in the linked instance
54
- function getName() external view returns (string memory name);
55
-
56
- /// @dev defines which ERC20 token is used by this component
57
- function getToken() external view returns (IERC20Metadata token);
58
-
59
- /// @dev defines the instance to which this component is linked to
60
- function getInstance() external view returns (IInstance instance);
61
-
62
- /// @dev defines the wallet address used to hold the ERC20 tokens related to this component
63
- /// the default address is the component token address
64
- function getWallet() external view returns (address walletAddress);
65
-
66
- /// @dev defines the product to which this component is linked to
67
- /// this is only relevant for pool and distribution components
68
- function getProductNftId() external view returns (NftId productNftId);
69
-
70
- function isNftInterceptor() external view returns(bool isInterceptor);
71
-
72
- /// @dev returns component infos for this pool
73
- /// when registered with an instance the info is obtained from the data stored in the instance
74
- /// when not registered the function returns the info from the component contract
75
- function getComponentInfo() external view returns (IComponents.ComponentInfo memory info);
76
- }