@etherisc/gif-next 0.0.2-ee7cb16-393 → 0.0.2-ef15ccf-423

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 (781) hide show
  1. package/README.md +147 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -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 +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -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 +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  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 +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  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 +683 -1216
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +748 -141
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +596 -2802
  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 +837 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +775 -409
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +385 -125
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3250 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1852 -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 -49
  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 +4 -0
  108. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  109. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +414 -370
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +394 -350
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +689 -113
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +351 -226
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +1027 -149
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +327 -322
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +375 -119
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +391 -80
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/Component.sol/Component.json} +350 -98
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +291 -201
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  242. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +139 -40
  244. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  246. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  248. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  250. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  253. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  254. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  256. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  258. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  260. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  261. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +172 -26
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  354. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  358. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  362. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  366. package/contracts/accounting/AccountingService.sol +274 -0
  367. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  368. package/contracts/accounting/IAccountingService.sol +47 -0
  369. package/contracts/authorization/AccessAdmin.sol +780 -0
  370. package/contracts/authorization/AccessAdminLib.sol +396 -0
  371. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  372. package/contracts/authorization/Authorization.sol +169 -0
  373. package/contracts/authorization/IAccess.sol +67 -0
  374. package/contracts/authorization/IAccessAdmin.sol +144 -0
  375. package/contracts/authorization/IAuthorization.sol +26 -0
  376. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  377. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  378. package/contracts/distribution/BasicDistribution.sol +141 -0
  379. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  380. package/contracts/distribution/Distribution.sol +247 -0
  381. package/contracts/distribution/DistributionService.sol +448 -0
  382. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  383. package/contracts/distribution/IDistributionComponent.sol +45 -0
  384. package/contracts/distribution/IDistributionService.sol +115 -0
  385. package/contracts/examples/fire/DamageLevel.sol +59 -0
  386. package/contracts/examples/fire/FirePool.sol +86 -0
  387. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  388. package/contracts/examples/fire/FireProduct.sol +433 -0
  389. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  390. package/contracts/examples/fire/FireUSD.sol +26 -0
  391. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  392. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  393. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  394. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  395. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  396. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  397. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  398. package/contracts/instance/BaseStore.sol +93 -0
  399. package/contracts/instance/BundleSet.sol +130 -0
  400. package/contracts/instance/IBaseStore.sol +37 -0
  401. package/contracts/instance/IInstance.sol +138 -38
  402. package/contracts/instance/IInstanceService.sol +106 -19
  403. package/contracts/instance/Instance.sol +250 -354
  404. package/contracts/instance/InstanceAdmin.sol +379 -0
  405. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  406. package/contracts/instance/InstanceReader.sol +526 -208
  407. package/contracts/instance/InstanceService.sol +465 -196
  408. package/contracts/instance/InstanceServiceManager.sol +14 -32
  409. package/contracts/instance/InstanceStore.sol +259 -0
  410. package/contracts/instance/ProductStore.sol +143 -0
  411. package/contracts/instance/RiskSet.sol +126 -0
  412. package/contracts/instance/TargetNames.sol +10 -0
  413. package/contracts/instance/base/BalanceStore.sol +121 -0
  414. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  415. package/contracts/instance/base/ObjectCounter.sol +20 -0
  416. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  417. package/contracts/instance/base/ObjectSet.sol +77 -0
  418. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  419. package/contracts/instance/module/IBundle.sol +10 -9
  420. package/contracts/instance/module/IComponents.sol +62 -0
  421. package/contracts/instance/module/IDistribution.sol +25 -10
  422. package/contracts/instance/module/IPolicy.sol +81 -21
  423. package/contracts/instance/module/IRisk.sol +6 -1
  424. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  425. package/contracts/oracle/BasicOracle.sol +45 -0
  426. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  427. package/contracts/oracle/IOracle.sol +41 -0
  428. package/contracts/oracle/IOracleComponent.sol +33 -0
  429. package/contracts/oracle/IOracleService.sol +66 -0
  430. package/contracts/oracle/Oracle.sol +154 -0
  431. package/contracts/oracle/OracleService.sol +310 -0
  432. package/contracts/oracle/OracleServiceManager.sol +39 -0
  433. package/contracts/pool/BasicPool.sol +162 -0
  434. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  435. package/contracts/pool/BundleService.sol +386 -0
  436. package/contracts/pool/BundleServiceManager.sol +39 -0
  437. package/contracts/pool/IBundleService.sol +116 -0
  438. package/contracts/pool/IPoolComponent.sol +62 -0
  439. package/contracts/pool/IPoolService.sol +170 -0
  440. package/contracts/pool/Pool.sol +333 -0
  441. package/contracts/pool/PoolLib.sol +341 -0
  442. package/contracts/pool/PoolService.sol +614 -0
  443. package/contracts/pool/PoolServiceManager.sol +39 -0
  444. package/contracts/product/ApplicationService.sol +327 -0
  445. package/contracts/product/ApplicationServiceManager.sol +38 -0
  446. package/contracts/product/BasicProduct.sol +49 -0
  447. package/contracts/product/BasicProductAuthorization.sol +63 -0
  448. package/contracts/product/ClaimService.sol +626 -0
  449. package/contracts/product/ClaimServiceManager.sol +38 -0
  450. package/contracts/product/IApplicationService.sol +88 -0
  451. package/contracts/product/IClaimService.sol +136 -0
  452. package/contracts/product/IPolicyService.sol +102 -0
  453. package/contracts/product/IPricingService.sol +40 -0
  454. package/contracts/product/IProductComponent.sol +62 -0
  455. package/contracts/product/IRiskService.sol +48 -0
  456. package/contracts/product/PolicyService.sol +645 -0
  457. package/contracts/product/PolicyServiceLib.sol +139 -0
  458. package/contracts/product/PolicyServiceManager.sol +39 -0
  459. package/contracts/product/PricingService.sol +306 -0
  460. package/contracts/product/PricingServiceManager.sol +39 -0
  461. package/contracts/product/Product.sol +493 -0
  462. package/contracts/product/RiskService.sol +190 -0
  463. package/contracts/product/RiskServiceManager.sol +39 -0
  464. package/contracts/registry/ChainNft.sol +82 -35
  465. package/contracts/registry/IRegistry.sol +123 -32
  466. package/contracts/registry/IRegistryService.sol +40 -28
  467. package/contracts/registry/IRelease.sol +29 -0
  468. package/contracts/registry/ITransferInterceptor.sol +1 -1
  469. package/contracts/registry/Registry.sol +561 -273
  470. package/contracts/registry/RegistryAdmin.sol +191 -0
  471. package/contracts/registry/RegistryAuthorization.sol +336 -0
  472. package/contracts/registry/RegistryService.sol +116 -233
  473. package/contracts/registry/RegistryServiceManager.sol +26 -53
  474. package/contracts/registry/ReleaseAdmin.sol +195 -0
  475. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  476. package/contracts/registry/ReleaseRegistry.sol +525 -0
  477. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  478. package/contracts/registry/TokenRegistry.sol +265 -59
  479. package/contracts/shared/Component.sol +214 -0
  480. package/contracts/shared/ComponentService.sol +687 -0
  481. package/contracts/shared/ComponentServiceManager.sol +38 -0
  482. package/contracts/shared/ContractLib.sol +312 -0
  483. package/contracts/shared/IComponent.sol +58 -0
  484. package/contracts/shared/IComponentService.sol +111 -0
  485. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  486. package/contracts/{instance/base → shared}/IKeyValueStore.sol +23 -10
  487. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  488. package/contracts/shared/INftOwnable.sol +17 -12
  489. package/contracts/shared/IPolicyHolder.sol +35 -0
  490. package/contracts/shared/IRegisterable.sol +24 -5
  491. package/contracts/shared/IRegistryLinked.sol +11 -0
  492. package/contracts/shared/IService.sol +13 -5
  493. package/contracts/shared/InitializableERC165.sol +35 -0
  494. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  495. package/contracts/shared/KeyValueStore.sol +131 -0
  496. package/contracts/shared/Lifecycle.sol +88 -0
  497. package/contracts/shared/NftIdSet.sol +65 -0
  498. package/contracts/shared/NftOwnable.sol +77 -82
  499. package/contracts/shared/PolicyHolder.sol +63 -0
  500. package/contracts/shared/Registerable.sol +54 -38
  501. package/contracts/shared/RegistryLinked.sol +38 -0
  502. package/contracts/shared/Service.sol +45 -33
  503. package/contracts/shared/TokenHandler.sol +327 -12
  504. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  505. package/contracts/staking/IStaking.sol +367 -0
  506. package/contracts/staking/IStakingService.sol +127 -0
  507. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  508. package/contracts/staking/Staking.sol +798 -0
  509. package/contracts/staking/StakingLib.sol +195 -0
  510. package/contracts/staking/StakingManager.sol +53 -0
  511. package/contracts/staking/StakingReader.sol +171 -0
  512. package/contracts/staking/StakingService.sol +321 -0
  513. package/contracts/staking/StakingServiceManager.sol +46 -0
  514. package/contracts/staking/StakingStore.sol +1368 -0
  515. package/contracts/staking/TargetHandler.sol +132 -0
  516. package/contracts/staking/TargetManagerLib.sol +234 -0
  517. package/contracts/{types → type}/AddressSet.sol +1 -1
  518. package/contracts/type/Amount.sol +154 -0
  519. package/contracts/{types → type}/Blocknumber.sol +36 -12
  520. package/contracts/type/ChainId.sol +101 -0
  521. package/contracts/type/ClaimId.sol +80 -0
  522. package/contracts/{types → type}/DistributorType.sol +2 -2
  523. package/contracts/type/Fee.sol +66 -0
  524. package/contracts/{types → type}/Key32.sol +2 -2
  525. package/contracts/type/Key32Set.sol +62 -0
  526. package/contracts/{types → type}/NftId.sol +28 -15
  527. package/contracts/{types → type}/NftIdSet.sol +2 -2
  528. package/contracts/type/ObjectType.sol +307 -0
  529. package/contracts/type/PayoutId.sol +82 -0
  530. package/contracts/{types → type}/Referral.sol +6 -1
  531. package/contracts/type/RequestId.sol +75 -0
  532. package/contracts/type/RiskId.sol +75 -0
  533. package/contracts/type/RoleId.sol +180 -0
  534. package/contracts/type/Seconds.sol +120 -0
  535. package/contracts/type/Selector.sol +107 -0
  536. package/contracts/{types → type}/StateId.sol +48 -4
  537. package/contracts/type/String.sol +65 -0
  538. package/contracts/{types → type}/Timestamp.sol +36 -20
  539. package/contracts/type/UFixed.sol +263 -0
  540. package/contracts/{types → type}/Version.sol +59 -7
  541. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  542. package/contracts/upgradeability/ProxyManager.sol +246 -0
  543. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  544. package/contracts/upgradeability/Versionable.sol +62 -0
  545. package/package.json +12 -8
  546. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  548. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  549. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  550. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -368
  551. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  552. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  553. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  554. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  555. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  556. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  557. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  558. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  559. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  560. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  561. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  563. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  565. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  567. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  569. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  571. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  573. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  575. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  577. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  579. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  581. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  584. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  586. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  588. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  589. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  590. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  592. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  594. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  596. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  598. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  600. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  601. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  602. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  604. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  605. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  606. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  607. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  608. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  609. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  610. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  611. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  612. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  613. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  614. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  615. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  616. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  617. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  618. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  619. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  620. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  621. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  622. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  623. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  625. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  626. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  629. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  631. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  633. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  635. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  636. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  637. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  638. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  639. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1049
  640. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  641. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -464
  642. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  643. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  644. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  645. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  646. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  647. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  648. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  649. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  650. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  651. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  652. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  653. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  654. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  655. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  656. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  657. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  658. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  659. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  660. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  662. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  664. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  665. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  666. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  667. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  668. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  669. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  670. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  671. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  672. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  673. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  674. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  675. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  676. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  677. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  678. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  680. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  682. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  684. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  686. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  687. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  688. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  690. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  691. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  692. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  694. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  696. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  698. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  700. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  702. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  704. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  706. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  707. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  708. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  709. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  710. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  711. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  712. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  713. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  714. package/contracts/components/BaseComponent.sol +0 -132
  715. package/contracts/components/Distribution.sol +0 -163
  716. package/contracts/components/IBaseComponent.sol +0 -31
  717. package/contracts/components/IDistributionComponent.sol +0 -44
  718. package/contracts/components/IPoolComponent.sol +0 -66
  719. package/contracts/components/IProductComponent.sol +0 -35
  720. package/contracts/components/Pool.sol +0 -267
  721. package/contracts/components/Product.sol +0 -289
  722. package/contracts/experiment/cloning/Cloner.sol +0 -47
  723. package/contracts/experiment/errors/Require.sol +0 -38
  724. package/contracts/experiment/errors/Revert.sol +0 -44
  725. package/contracts/experiment/inheritance/A.sol +0 -53
  726. package/contracts/experiment/inheritance/B.sol +0 -28
  727. package/contracts/experiment/inheritance/C.sol +0 -34
  728. package/contracts/experiment/inheritance/IA.sol +0 -13
  729. package/contracts/experiment/inheritance/IB.sol +0 -10
  730. package/contracts/experiment/inheritance/IC.sol +0 -12
  731. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  732. package/contracts/experiment/statemachine/ISM.sol +0 -25
  733. package/contracts/experiment/statemachine/SM.sol +0 -57
  734. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  735. package/contracts/experiment/types/TypeA.sol +0 -47
  736. package/contracts/experiment/types/TypeB.sol +0 -29
  737. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  738. package/contracts/instance/BundleManager.sol +0 -129
  739. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  740. package/contracts/instance/IInstanceBase.sol +0 -26
  741. package/contracts/instance/InstanceAccessManager.sol +0 -288
  742. package/contracts/instance/InstanceBase.sol +0 -41
  743. package/contracts/instance/ObjectManager.sol +0 -101
  744. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  745. package/contracts/instance/base/IInstanceBase.sol +0 -23
  746. package/contracts/instance/base/KeyValueStore.sol +0 -172
  747. package/contracts/instance/base/Lifecycle.sol +0 -100
  748. package/contracts/instance/module/IAccess.sol +0 -38
  749. package/contracts/instance/module/ISetup.sol +0 -46
  750. package/contracts/instance/module/ITreasury.sol +0 -23
  751. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  752. package/contracts/instance/service/DistributionService.sol +0 -88
  753. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  754. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  755. package/contracts/instance/service/IDistributionService.sol +0 -12
  756. package/contracts/instance/service/IPoolService.sol +0 -51
  757. package/contracts/instance/service/IProductService.sol +0 -110
  758. package/contracts/instance/service/PoolService.sol +0 -287
  759. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  760. package/contracts/instance/service/ProductService.sol +0 -570
  761. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  762. package/contracts/shared/ContractDeployerLib.sol +0 -72
  763. package/contracts/shared/ERC165.sol +0 -25
  764. package/contracts/shared/ProxyManager.sol +0 -94
  765. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  766. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  767. package/contracts/shared/Versionable.sol +0 -147
  768. package/contracts/test/TestFee.sol +0 -25
  769. package/contracts/test/TestRegisterable.sol +0 -18
  770. package/contracts/test/TestRoleId.sol +0 -14
  771. package/contracts/test/TestService.sol +0 -24
  772. package/contracts/test/TestToken.sol +0 -26
  773. package/contracts/test/TestVersion.sol +0 -44
  774. package/contracts/test/TestVersionable.sol +0 -17
  775. package/contracts/types/ChainId.sol +0 -38
  776. package/contracts/types/Fee.sol +0 -56
  777. package/contracts/types/NumberId.sol +0 -52
  778. package/contracts/types/ObjectType.sol +0 -152
  779. package/contracts/types/RiskId.sol +0 -43
  780. package/contracts/types/RoleId.sol +0 -90
  781. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,320 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
6
+
7
+ import {ADMIN_ROLE_NAME, PUBLIC_ROLE_NAME} from "./AccessAdmin.sol";
8
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
9
+ import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
10
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {SelectorLib} from "../type/Selector.sol";
12
+ import {Str, StrLib} from "../type/String.sol";
13
+ import {TimestampLib} from "../type/Timestamp.sol";
14
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
15
+
16
+
17
+ /// @dev Base contract for release specific service authorization contracts and for Authorization contracts.
18
+ contract ServiceAuthorization is
19
+ InitializableERC165,
20
+ IServiceAuthorization
21
+ {
22
+
23
+ string public constant COMMIT_HASH = "1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a";
24
+
25
+ uint256 public constant COMMIT_HASH_LENGTH = 40;
26
+ uint256 public constant GIF_INITIAL_VERSION = 3;
27
+
28
+ string public constant SERVICE_NAME_SUFFIX = "Service";
29
+ string public constant ROLE_NAME_SUFFIX = "_Role";
30
+
31
+ ObjectType public immutable DOMAIN;
32
+ uint256 internal immutable _release;
33
+ string internal _commitHash;
34
+
35
+ string internal _mainTargetName;
36
+ Str internal _mainTarget;
37
+
38
+ // services
39
+ ObjectType[] internal _serviceDomains;
40
+ mapping(ObjectType domain => address service) internal _serviceAddress;
41
+
42
+ // roles
43
+ RoleId[] internal _roles;
44
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
45
+
46
+ // targets
47
+ Str[] internal _targets;
48
+ mapping(Str target => bool exists) internal _targetExists;
49
+ mapping(Str target => RoleId roleId) internal _targetRole;
50
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
51
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
52
+
53
+
54
+ constructor(
55
+ string memory mainTargetName,
56
+ ObjectType domain,
57
+ uint8 release,
58
+ string memory commitHash
59
+ )
60
+ {
61
+ // checks
62
+ if (bytes(mainTargetName).length == 0) {
63
+ revert ErrorAuthorizationMainTargetNameEmpty();
64
+ }
65
+
66
+ if (domain == ObjectTypeLib.zero()) {
67
+ revert ErrorAuthorizationTargetDomainZero();
68
+ }
69
+
70
+ if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
71
+ revert ErrorAuthorizationReleaseInvalid(release);
72
+ }
73
+
74
+ if (bytes(commitHash).length != COMMIT_HASH_LENGTH) {
75
+ revert ErrorAuthorizationCommitHashInvalid(commitHash);
76
+ }
77
+
78
+ // effects
79
+ _initializeERC165();
80
+ _registerInterfaceNotInitializing(type(IServiceAuthorization).interfaceId);
81
+
82
+ _mainTargetName = mainTargetName;
83
+ _mainTarget = StrLib.toStr(mainTargetName);
84
+
85
+ DOMAIN = domain;
86
+ _release = release;
87
+ _commitHash = commitHash;
88
+
89
+ // setup of roles defined in OpenZeppelin AccessManager
90
+ _addRole(ADMIN_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, ADMIN_ROLE_NAME()));
91
+ _addRole(PUBLIC_ROLE(), _toRoleInfo(ADMIN_ROLE(), RoleType.Core, 1, PUBLIC_ROLE_NAME()));
92
+
93
+ // defines service domains relevant for the authorization
94
+ _setupDomains();
95
+ _setupDomainAuthorizations();
96
+ }
97
+
98
+ /// @inheritdoc IServiceAuthorization
99
+ function getDomain() public view returns(ObjectType targetDomain) {
100
+ return DOMAIN;
101
+ }
102
+
103
+ /// @inheritdoc IServiceAuthorization
104
+ function getRelease() public view returns(VersionPart release) {
105
+ return VersionPartLib.toVersionPart(_release);
106
+ }
107
+
108
+ /// @inheritdoc IServiceAuthorization
109
+ function getCommitHash() external view returns(string memory commitHash) {
110
+ return _commitHash;
111
+ }
112
+
113
+ /// @inheritdoc IServiceAuthorization
114
+ function getMainTargetName() public view returns (string memory name) {
115
+ return _mainTargetName;
116
+ }
117
+
118
+ /// @inheritdoc IServiceAuthorization
119
+ function getMainTarget() external view returns(Str target) {
120
+ return _mainTarget;
121
+ }
122
+
123
+ /// @inheritdoc IServiceAuthorization
124
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
125
+ return _serviceDomains;
126
+ }
127
+
128
+ /// @inheritdoc IServiceAuthorization
129
+ function getServiceDomain(uint256 idx) external view returns(ObjectType serviceDomain) {
130
+ return _serviceDomains[idx];
131
+ }
132
+
133
+ /// @inheritdoc IServiceAuthorization
134
+ function getServiceTarget(ObjectType serviceDomain) public view returns(Str target) {
135
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
136
+ ObjectTypeLib.toName(serviceDomain),
137
+ "Service",
138
+ getRelease());
139
+
140
+ return StrLib.toStr(serviceTargetName);
141
+ }
142
+
143
+ /// @inheritdoc IServiceAuthorization
144
+ function getServiceRole(ObjectType serviceDomain) public view returns(RoleId serviceRoleId) {
145
+ // special case domain ALL
146
+ if (serviceDomain == ALL()) {
147
+ return PUBLIC_ROLE();
148
+ }
149
+
150
+ Str target = getServiceTarget(serviceDomain);
151
+ return getTargetRole(target);
152
+ }
153
+
154
+ /// @inheritdoc IServiceAuthorization
155
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
156
+ return _serviceAddress[serviceDomain];
157
+ }
158
+
159
+ /// @inheritdoc IServiceAuthorization
160
+ function getTargetRole(Str target) public view returns(RoleId roleId) {
161
+ return _targetRole[target];
162
+ }
163
+
164
+ /// @inheritdoc IServiceAuthorization
165
+ function roleExists(RoleId roleId) public view returns(bool exists) {
166
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
167
+ }
168
+
169
+ /// @inheritdoc IServiceAuthorization
170
+ function getRoles() external view returns(RoleId[] memory roles) {
171
+ return _roles;
172
+ }
173
+
174
+ /// @inheritdoc IServiceAuthorization
175
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
176
+ return _roleInfo[roleId];
177
+ }
178
+
179
+ /// @inheritdoc IServiceAuthorization
180
+ function getRoleName(RoleId roleId) external view returns (string memory roleName) {
181
+ return _roleInfo[roleId].name.toString();
182
+ }
183
+
184
+ /// @inheritdoc IServiceAuthorization
185
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
186
+ return _authorizedRoles[target];
187
+ }
188
+
189
+ /// @inheritdoc IServiceAuthorization
190
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions) {
191
+ return _authorizedFunctions[target][roleId];
192
+ }
193
+
194
+ /// @dev Defines service domains relevant for the authorization.
195
+ /// When used for ReleaseAdmin the list defines the services to be registered for the release.
196
+ /// IMPORTANT: Both the list of the service domains as well as the ordering of the domains is important.
197
+ /// Trying to register services not in this list or register services in a different order will result in an error.
198
+ // solhint-disable-next-line no-empty-blocks
199
+ function _setupDomains() internal virtual {}
200
+
201
+ /// @dev Overwrite this function for a specific realease.
202
+ // solhint-disable-next-line no-empty-blocks
203
+ function _setupDomainAuthorizations() internal virtual {}
204
+
205
+ /// @dev Use this method to to add an authorized domain.
206
+ /// The services will need to be registered in the order they are added using this function.
207
+ function _authorizeServiceDomain(ObjectType serviceDomain, address serviceAddress) internal {
208
+ _serviceDomains.push(serviceDomain);
209
+ _serviceAddress[serviceDomain] = serviceAddress;
210
+
211
+ string memory serviceName = ObjectTypeLib.toVersionedName(
212
+ ObjectTypeLib.toName(serviceDomain),
213
+ SERVICE_NAME_SUFFIX,
214
+ getRelease());
215
+
216
+ _addTargetWithRole(
217
+ serviceName,
218
+ RoleIdLib.toServiceRoleId(serviceDomain, getRelease()),
219
+ string(abi.encodePacked(serviceName, ROLE_NAME_SUFFIX)));
220
+ }
221
+
222
+
223
+ /// @dev Use this method to to add an authorized target together with its target role.
224
+ function _addTargetWithRole(
225
+ string memory targetName,
226
+ RoleId roleId,
227
+ string memory roleName
228
+ )
229
+ internal
230
+ {
231
+ // add target
232
+ Str target = StrLib.toStr(targetName);
233
+ _targets.push(target);
234
+
235
+ _targetExists[target] = true;
236
+
237
+ // link role to target if defined
238
+ if (roleId != RoleIdLib.zero()) {
239
+ // add role if new
240
+ if (!roleExists(roleId)) {
241
+ _addContractRole(roleId, roleName);
242
+ }
243
+
244
+ // link target to role
245
+ _targetRole[target] = roleId;
246
+ }
247
+ }
248
+
249
+
250
+ /// @dev Add a contract role for the provided role id and name.
251
+ function _addContractRole(RoleId roleId, string memory name) internal {
252
+ _addRole(
253
+ roleId,
254
+ _toRoleInfo(
255
+ ADMIN_ROLE(),
256
+ RoleType.Contract,
257
+ 1,
258
+ name));
259
+ }
260
+
261
+
262
+ /// @dev Use this method to to add an authorized role.
263
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
264
+ _roles.push(roleId);
265
+ _roleInfo[roleId] = info;
266
+ }
267
+
268
+
269
+ /// @dev creates a role info object from the provided parameters
270
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
271
+ return RoleInfo({
272
+ name: StrLib.toStr(name),
273
+ adminRoleId: adminRoleId,
274
+ roleType: roleType,
275
+ maxMemberCount: maxMemberCount,
276
+ createdAt: TimestampLib.current(),
277
+ pausedAt: TimestampLib.max()});
278
+ }
279
+
280
+
281
+ /// @dev Use this method to authorize the specified domain to access the service domain.
282
+ function _authorizeForService(
283
+ ObjectType serviceDomain,
284
+ ObjectType authorizedDomain
285
+ )
286
+ internal
287
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
288
+ {
289
+ Str serviceTarget = getServiceTarget(serviceDomain);
290
+ RoleId authorizedRoleId = getServiceRole(authorizedDomain);
291
+
292
+ return _authorizeForTarget(serviceTarget.toString(), authorizedRoleId);
293
+ }
294
+
295
+
296
+ /// @dev Use this method to authorize the specified role to access the target.
297
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
298
+ internal
299
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
300
+ {
301
+ Str targetStr = StrLib.toStr(target);
302
+
303
+ // add authorized role if not already added
304
+ if (_authorizedFunctions[targetStr][authorizedRoleId].length == 0) {
305
+ _authorizedRoles[targetStr].push(authorizedRoleId);
306
+ }
307
+
308
+ return _authorizedFunctions[targetStr][authorizedRoleId];
309
+ }
310
+
311
+
312
+ /// @dev Use this method to authorize a specific function authorization
313
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
314
+ functions.push(
315
+ IAccess.FunctionInfo({
316
+ selector: SelectorLib.toSelector(selector),
317
+ name: StrLib.toStr(name),
318
+ createdAt: TimestampLib.current()}));
319
+ }
320
+ }
@@ -0,0 +1,141 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+
6
+ import {Distribution} from "./Distribution.sol";
7
+ import {DistributorType} from "../type/DistributorType.sol";
8
+ import {DISTRIBUTOR} from "../type/ObjectType.sol";
9
+ import {Fee} from "../type/Fee.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+
16
+
17
+ contract BasicDistribution is
18
+ Distribution
19
+ {
20
+
21
+ function setFees(
22
+ Fee memory distributionFee,
23
+ Fee memory minDistributionOwnerFee
24
+ )
25
+ external
26
+ virtual
27
+ onlyOwner()
28
+ restricted()
29
+ {
30
+ _setFees(
31
+ distributionFee,
32
+ minDistributionOwnerFee);
33
+ }
34
+
35
+
36
+ function createDistributorType(
37
+ string memory name,
38
+ UFixed minDiscountPercentage,
39
+ UFixed maxDiscountPercentage,
40
+ UFixed commissionPercentage,
41
+ uint32 maxReferralCount,
42
+ Seconds maxReferralLifetime,
43
+ bool allowSelfReferrals,
44
+ bool allowRenewals,
45
+ bytes memory data
46
+ )
47
+ external
48
+ virtual
49
+ restricted()
50
+ onlyOwner()
51
+ returns (DistributorType distributorType)
52
+ {
53
+ return _createDistributorType(
54
+ name,
55
+ minDiscountPercentage,
56
+ maxDiscountPercentage,
57
+ commissionPercentage,
58
+ maxReferralCount,
59
+ maxReferralLifetime,
60
+ allowSelfReferrals,
61
+ allowRenewals,
62
+ data);
63
+ }
64
+
65
+ function createDistributor(
66
+ address distributor,
67
+ DistributorType distributorType,
68
+ bytes memory data
69
+ )
70
+ external
71
+ virtual
72
+ restricted()
73
+ onlyOwner()
74
+ returns(NftId distributorNftId)
75
+ {
76
+ return _createDistributor(distributor, distributorType, data);
77
+ }
78
+
79
+ function changeDistributorType(
80
+ NftId distributorNftId,
81
+ DistributorType distributorType,
82
+ bytes memory data
83
+ )
84
+ external
85
+ virtual
86
+ restricted()
87
+ onlyOwner()
88
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
89
+ {
90
+ _changeDistributorType(distributorNftId, distributorType, data);
91
+ }
92
+
93
+ /**
94
+ * @dev lets distributors create referral codes.
95
+ * referral codes need to be unique
96
+ */
97
+ function createReferral(
98
+ NftId distributorNftId,
99
+ string memory code,
100
+ UFixed discountPercentage,
101
+ uint32 maxReferrals,
102
+ Timestamp expiryAt,
103
+ bytes memory data
104
+ )
105
+ external
106
+ virtual
107
+ restricted()
108
+ onlyNftOwner(distributorNftId)
109
+ returns (ReferralId referralId)
110
+ {
111
+ _checkNftType(distributorNftId, DISTRIBUTOR());
112
+ return _createReferral(
113
+ distributorNftId,
114
+ code,
115
+ discountPercentage,
116
+ maxReferrals,
117
+ expiryAt,
118
+ data); // data
119
+ }
120
+
121
+ function _initializeBasicDistribution(
122
+ address registry,
123
+ NftId instanceNftId,
124
+ IAuthorization authorization,
125
+ address initialOwner,
126
+ string memory name
127
+ )
128
+ internal
129
+ virtual
130
+ onlyInitializing()
131
+ {
132
+ __Distribution_init(
133
+ registry,
134
+ instanceNftId,
135
+ authorization,
136
+ false,
137
+ initialOwner,
138
+ name,
139
+ ""); // component specifc data
140
+ }
141
+ }
@@ -0,0 +1,67 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+
7
+ import {Authorization} from "../authorization/Authorization.sol";
8
+ import {BasicDistribution} from "./BasicDistribution.sol";
9
+ import {Distribution} from "./Distribution.sol";
10
+ import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
11
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {TokenHandler} from "../shared/TokenHandler.sol";
13
+
14
+
15
+ contract BasicDistributionAuthorization
16
+ is Authorization
17
+ {
18
+
19
+ constructor(string memory distributionName)
20
+ Authorization(
21
+ distributionName,
22
+ DISTRIBUTION(),
23
+ 3,
24
+ COMMIT_HASH,
25
+ true,
26
+ true)
27
+ {}
28
+
29
+ function _setupServiceTargets()
30
+ internal
31
+ virtual override
32
+ {
33
+ _authorizeServiceDomain(COMPONENT(), address(11));
34
+ _authorizeServiceDomain(DISTRIBUTION(), address(11));
35
+ }
36
+
37
+ function _setupTokenHandlerAuthorizations() internal virtual override {
38
+ IAccess.FunctionInfo[] storage functions;
39
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
40
+ _authorize(functions, TokenHandler.approve.selector, "approve");
41
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
42
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
43
+
44
+ // authorize token handler functions for pool service role
45
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(DISTRIBUTION()));
46
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
47
+ }
48
+
49
+ function _setupTargetAuthorizations()
50
+ internal
51
+ virtual override
52
+ {
53
+ IAccess.FunctionInfo[] storage functions;
54
+
55
+ // authorize public role (open access to any account, only allows to lock target)
56
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
57
+ _authorize(functions, BasicDistribution.setFees.selector, "setFees");
58
+ _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
59
+ _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
60
+ _authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
61
+ _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
62
+
63
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
64
+ _authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
65
+ }
66
+ }
67
+