@etherisc/gif-next 0.0.2-e545d2c-624 → 0.0.2-e586bbf-616

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 (782) hide show
  1. package/README.md +138 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -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 +1225 -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 +930 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1831 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1266 -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 +1461 -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 +2026 -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 +1404 -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 +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -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 +2452 -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/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -1254
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +604 -174
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +663 -2398
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +637 -354
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -93
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +384 -361
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1435 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1022 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +391 -347
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1430 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1814 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1017 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1533 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +313 -299
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +328 -231
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +527 -305
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +192 -168
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +835 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +605 -28
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +299 -222
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1031 -71
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +358 -274
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +381 -78
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -97
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +264 -253
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +264 -135
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1137 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +133 -145
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +154 -159
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +247 -0
  371. package/contracts/distribution/DistributionService.sol +448 -0
  372. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  373. package/contracts/distribution/IDistributionComponent.sol +45 -0
  374. package/contracts/distribution/IDistributionService.sol +115 -0
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +136 -53
  390. package/contracts/instance/IInstanceService.sol +95 -22
  391. package/contracts/instance/Instance.sol +256 -182
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +525 -208
  395. package/contracts/instance/InstanceService.sol +425 -258
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +298 -0
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +121 -0
  400. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +10 -9
  406. package/contracts/instance/module/IComponents.sol +62 -0
  407. package/contracts/instance/module/IDistribution.sol +25 -10
  408. package/contracts/instance/module/IPolicy.sol +81 -21
  409. package/contracts/instance/module/IRisk.sol +6 -1
  410. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +406 -0
  422. package/contracts/pool/BundleServiceManager.sol +39 -0
  423. package/contracts/pool/IBundleService.sol +121 -0
  424. package/contracts/pool/IPoolComponent.sol +62 -0
  425. package/contracts/pool/IPoolService.sol +170 -0
  426. package/contracts/pool/Pool.sol +343 -0
  427. package/contracts/pool/PoolLib.sol +359 -0
  428. package/contracts/pool/PoolService.sol +614 -0
  429. package/contracts/pool/PoolServiceManager.sol +39 -0
  430. package/contracts/product/ApplicationService.sol +327 -0
  431. package/contracts/product/ApplicationServiceManager.sol +38 -0
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +639 -0
  435. package/contracts/product/ClaimServiceManager.sol +38 -0
  436. package/contracts/product/IApplicationService.sol +88 -0
  437. package/contracts/product/IClaimService.sol +135 -0
  438. package/contracts/product/IPolicyService.sol +102 -0
  439. package/contracts/product/IPricingService.sol +40 -0
  440. package/contracts/product/IProductComponent.sol +62 -0
  441. package/contracts/product/IRiskService.sol +33 -0
  442. package/contracts/product/PolicyService.sol +645 -0
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +306 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +472 -0
  448. package/contracts/product/RiskService.sol +157 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +83 -36
  451. package/contracts/registry/IRegistry.sol +113 -29
  452. package/contracts/registry/IRegistryService.sol +38 -34
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -1
  455. package/contracts/registry/Registry.sol +550 -210
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +284 -0
  458. package/contracts/registry/RegistryService.sol +119 -198
  459. package/contracts/registry/RegistryServiceManager.sol +24 -33
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  464. package/contracts/registry/TokenRegistry.sol +265 -61
  465. package/contracts/shared/Component.sol +210 -0
  466. package/contracts/shared/ComponentService.sol +678 -0
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ContractLib.sol +311 -0
  469. package/contracts/shared/IComponent.sol +58 -0
  470. package/contracts/shared/IComponentService.sol +110 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  473. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  474. package/contracts/shared/INftOwnable.sol +15 -12
  475. package/contracts/shared/IPolicyHolder.sol +35 -0
  476. package/contracts/shared/IRegisterable.sol +24 -5
  477. package/contracts/shared/IRegistryLinked.sol +11 -0
  478. package/contracts/shared/IService.sol +12 -5
  479. package/contracts/shared/InitializableERC165.sol +35 -0
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +75 -82
  485. package/contracts/shared/PolicyHolder.sol +63 -0
  486. package/contracts/shared/Registerable.sol +54 -38
  487. package/contracts/shared/RegistryLinked.sol +38 -0
  488. package/contracts/shared/Service.sol +44 -35
  489. package/contracts/shared/TokenHandler.sol +327 -12
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +195 -0
  492. package/contracts/staking/IStakingService.sol +170 -0
  493. package/contracts/staking/Staking.sol +605 -0
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +199 -0
  498. package/contracts/staking/StakingService.sol +468 -0
  499. package/contracts/staking/StakingServiceManager.sol +45 -0
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/{types → type}/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/type/ClaimId.sol +80 -0
  506. package/contracts/{types → type}/DistributorType.sol +2 -2
  507. package/contracts/type/Fee.sol +66 -0
  508. package/contracts/{types → type}/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/{types → type}/NftId.sol +28 -15
  511. package/contracts/{types → type}/NftIdSet.sol +2 -2
  512. package/contracts/type/ObjectType.sol +307 -0
  513. package/contracts/type/PayoutId.sol +82 -0
  514. package/contracts/{types → type}/Referral.sol +6 -1
  515. package/contracts/type/RequestId.sol +75 -0
  516. package/contracts/type/RiskId.sol +75 -0
  517. package/contracts/type/RoleId.sol +180 -0
  518. package/contracts/type/Seconds.sol +105 -0
  519. package/contracts/type/Selector.sol +107 -0
  520. package/contracts/{types → type}/StateId.sol +48 -4
  521. package/contracts/type/String.sol +65 -0
  522. package/contracts/{types → type}/Timestamp.sol +33 -19
  523. package/contracts/type/UFixed.sol +262 -0
  524. package/contracts/{types → type}/Version.sol +59 -7
  525. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  526. package/contracts/upgradeability/ProxyManager.sol +246 -0
  527. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  528. package/contracts/upgradeability/Versionable.sol +62 -0
  529. package/package.json +12 -8
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  532. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -397
  534. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  540. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  548. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  550. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  552. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  554. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  556. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  558. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  560. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  565. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  567. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  571. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  573. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  575. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  581. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  582. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  583. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  585. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  586. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  587. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  589. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  590. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  591. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  593. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -532
  595. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  597. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  603. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  605. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
  609. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  611. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  617. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  621. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  624. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1156
  627. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  629. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  631. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  633. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  635. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  636. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  637. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  638. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  639. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  640. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  641. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  642. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  643. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  644. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  645. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  646. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  647. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  648. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  649. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  650. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  651. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  652. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  653. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  654. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  655. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  657. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  659. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  661. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  662. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  663. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  664. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  665. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  666. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  667. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  669. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  670. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  671. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  672. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  673. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  675. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  677. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  679. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  681. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  683. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  685. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  686. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  687. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  689. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  691. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  693. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  695. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  697. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  699. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  701. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  703. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  705. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  707. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  709. package/contracts/components/BaseComponent.sol +0 -159
  710. package/contracts/components/Distribution.sol +0 -164
  711. package/contracts/components/IBaseComponent.sol +0 -34
  712. package/contracts/components/IDistributionComponent.sol +0 -44
  713. package/contracts/components/IPoolComponent.sol +0 -66
  714. package/contracts/components/IProductComponent.sol +0 -35
  715. package/contracts/components/Pool.sol +0 -272
  716. package/contracts/components/Product.sol +0 -301
  717. package/contracts/experiment/cloning/Cloner.sol +0 -47
  718. package/contracts/experiment/errors/Require.sol +0 -38
  719. package/contracts/experiment/errors/Revert.sol +0 -44
  720. package/contracts/experiment/inheritance/A.sol +0 -53
  721. package/contracts/experiment/inheritance/B.sol +0 -28
  722. package/contracts/experiment/inheritance/C.sol +0 -34
  723. package/contracts/experiment/inheritance/IA.sol +0 -13
  724. package/contracts/experiment/inheritance/IB.sol +0 -10
  725. package/contracts/experiment/inheritance/IC.sol +0 -12
  726. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  727. package/contracts/experiment/statemachine/ISM.sol +0 -25
  728. package/contracts/experiment/statemachine/SM.sol +0 -57
  729. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  730. package/contracts/experiment/types/TypeA.sol +0 -47
  731. package/contracts/experiment/types/TypeB.sol +0 -29
  732. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  733. package/contracts/instance/BundleManager.sol +0 -129
  734. package/contracts/instance/IInstanceBase.sol +0 -26
  735. package/contracts/instance/InstanceAccessManager.sol +0 -303
  736. package/contracts/instance/InstanceBase.sol +0 -41
  737. package/contracts/instance/ObjectManager.sol +0 -101
  738. package/contracts/instance/base/ComponentServiceBase.sol +0 -76
  739. package/contracts/instance/base/IInstanceBase.sol +0 -23
  740. package/contracts/instance/base/KeyValueStore.sol +0 -172
  741. package/contracts/instance/base/Lifecycle.sol +0 -100
  742. package/contracts/instance/module/IAccess.sol +0 -48
  743. package/contracts/instance/module/ISetup.sol +0 -46
  744. package/contracts/instance/module/ITreasury.sol +0 -23
  745. package/contracts/instance/service/BundleService.sol +0 -294
  746. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  747. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  748. package/contracts/instance/service/DistributionService.sol +0 -120
  749. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  750. package/contracts/instance/service/IBundleService.sol +0 -44
  751. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  752. package/contracts/instance/service/IDistributionService.sol +0 -12
  753. package/contracts/instance/service/IPolicyService.sol +0 -94
  754. package/contracts/instance/service/IPoolService.sol +0 -20
  755. package/contracts/instance/service/IProductService.sol +0 -40
  756. package/contracts/instance/service/PolicyService.sol +0 -539
  757. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  758. package/contracts/instance/service/PoolService.sol +0 -145
  759. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  760. package/contracts/instance/service/ProductService.sol +0 -213
  761. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  762. package/contracts/registry/RegistryAccessManager.sol +0 -210
  763. package/contracts/registry/ReleaseManager.sol +0 -342
  764. package/contracts/shared/ContractDeployerLib.sol +0 -72
  765. package/contracts/shared/ERC165.sol +0 -25
  766. package/contracts/shared/ProxyManager.sol +0 -94
  767. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  768. package/contracts/shared/Versionable.sol +0 -147
  769. package/contracts/test/TestFee.sol +0 -25
  770. package/contracts/test/TestRegisterable.sol +0 -18
  771. package/contracts/test/TestRoleId.sol +0 -14
  772. package/contracts/test/TestService.sol +0 -25
  773. package/contracts/test/TestToken.sol +0 -26
  774. package/contracts/test/TestVersion.sol +0 -44
  775. package/contracts/test/TestVersionable.sol +0 -17
  776. package/contracts/types/ChainId.sol +0 -38
  777. package/contracts/types/Fee.sol +0 -56
  778. package/contracts/types/NumberId.sol +0 -52
  779. package/contracts/types/ObjectType.sol +0 -152
  780. package/contracts/types/RiskId.sol +0 -43
  781. package/contracts/types/RoleId.sol +0 -90
  782. package/contracts/types/UFixed.sol +0 -325
@@ -1,27 +1,342 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
4
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
6
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
7
 
7
- contract TokenHandler {
8
- IERC20Metadata private _token;
8
+ import {Amount, AmountLib} from "../type/Amount.sol";
9
+ import {ContractLib} from "../shared/ContractLib.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {SERVICE} from "../type/ObjectType.sol";
9
13
 
10
- constructor(address token) {
11
- _token = IERC20Metadata(token);
14
+
15
+ /// @dev Token specific transfer helper base contract.
16
+ /// A default token contract is provided via contract constructor.
17
+ /// Relies internally on OpenZeppelin SafeERC20.safeTransferFrom.
18
+ /// This base contract simplifies writing tests.
19
+ contract TokenHandlerBase {
20
+
21
+ // _setWallet
22
+ event LogTokenHandlerWalletAddressChanged(NftId componentNftId, address oldWallet, address newWallet);
23
+ event LogTokenHandlerWalletTokensTransferred(NftId componentNftId, address oldWallet, address newWallet, Amount amount);
24
+
25
+ // _approveTokenHandler
26
+ event LogTokenHandlerTokenApproved(NftId nftId, address tokenHandler, address token, Amount amount, bool isMaxAmount);
27
+
28
+ // _transfer
29
+ event LogTokenHandlerTokenTransfer(address token, address from, address to, Amount amount);
30
+
31
+ // constructor
32
+ error ErrorTokenHandlerNotRegistry(address registry);
33
+ error ErrorTokenHandlerComponentNotRegistered(address component);
34
+ error ErrorTokenHandlerTokenAddressZero();
35
+
36
+ // _setWallet
37
+ error ErrorTokenHandlerNewWalletAddressZero();
38
+ error ErrorTokenHandlerAddressIsSameAsCurrent();
39
+
40
+ // _approveTokenHandler
41
+ error ErrorTokenHandlerNotWallet(NftId nftId, address tokenHandler, address wallet);
42
+
43
+ // _checkPreconditions
44
+ error ErrorTokenHandlerBalanceTooLow(address token, address from, uint256 balance, uint256 expectedBalance);
45
+ error ErrorTokenHandlerAllowanceTooSmall(address token, address from, address spender, uint256 allowance, uint256 expectedAllowance);
46
+ error ErrorTokenHandlerAmountIsZero();
47
+
48
+ IRegistry public immutable REGISTRY;
49
+ IERC20Metadata public immutable TOKEN;
50
+ address public immutable COMPONENT;
51
+ NftId public immutable NFT_ID;
52
+
53
+ address internal _wallet;
54
+
55
+ constructor(
56
+ address registry,
57
+ address component,
58
+ address token
59
+ )
60
+ {
61
+ if (!ContractLib.isRegistry(registry)) {
62
+ revert ErrorTokenHandlerNotRegistry(registry);
63
+ }
64
+
65
+ if (token == address(0)) {
66
+ revert ErrorTokenHandlerTokenAddressZero();
67
+ }
68
+
69
+ REGISTRY = IRegistry(registry);
70
+ COMPONENT = component;
71
+ NFT_ID = REGISTRY.getNftIdForAddress(component);
72
+
73
+ if (NFT_ID.eqz()) {
74
+ revert ErrorTokenHandlerComponentNotRegistered(component);
75
+ }
76
+
77
+ TOKEN = IERC20Metadata(token);
78
+
79
+ // self approval of token handler to max amount
80
+ _approve(TOKEN, AmountLib.max());
81
+ }
82
+
83
+
84
+ /// @dev Checks the balance and allowance for the from address and amount.
85
+ /// When requiring amount > 0 set checkAmount to true.
86
+ function checkBalanceAndAllowance(
87
+ address from,
88
+ Amount amount,
89
+ bool checkAmount
90
+ )
91
+ external
92
+ view
93
+ {
94
+ _checkBalanceAndAllowance(from, amount, checkAmount);
95
+ }
96
+
97
+
98
+ /// @dev Returns the wallet linked to this TokenHandler.
99
+ function getWallet()
100
+ public
101
+ view
102
+ returns (address wallet)
103
+ {
104
+ if (_wallet == address(0)) {
105
+ return address(this);
106
+ }
107
+
108
+ return _wallet;
109
+ }
110
+
111
+
112
+ /// @dev Approves token handler to spend up to the specified amount of tokens.
113
+ /// Sets spending limit to type(uint256).max for AmountLib.max().
114
+ /// Reverts if wallet is not token handler itself.
115
+ /// Sets approvel using SareERC20.forceApprove internally.
116
+ function _approve(
117
+ IERC20Metadata token,
118
+ Amount amount
119
+ )
120
+ internal
121
+ {
122
+ // check that wallet is token handler contract itself
123
+ if(_wallet != address(0)) {
124
+ revert ErrorTokenHandlerNotWallet(NFT_ID, address(this), _wallet);
125
+ }
126
+
127
+ // update spending limit for AmountLib.max() to type(uint256).max
128
+ uint256 amountInt = amount.toInt();
129
+ bool isMaxAmount = false;
130
+ if (amount == AmountLib.max()) {
131
+ amountInt = type(uint256).max;
132
+ isMaxAmount = true;
133
+ }
134
+
135
+ emit LogTokenHandlerTokenApproved(NFT_ID, address(this), address(token), amount, isMaxAmount);
136
+
137
+ // execute approval
138
+ SafeERC20.forceApprove(
139
+ token,
140
+ address(this),
141
+ amountInt);
142
+ }
143
+
144
+
145
+ function _setWallet(address newWallet)
146
+ internal
147
+ {
148
+ address oldWallet = _wallet;
149
+ if (newWallet == oldWallet) {
150
+ revert ErrorTokenHandlerAddressIsSameAsCurrent();
151
+ }
152
+
153
+ // effects
154
+ address oldWalletForBalance = getWallet();
155
+ _wallet = newWallet;
156
+
157
+ emit LogTokenHandlerWalletAddressChanged(NFT_ID, oldWallet, newWallet);
158
+
159
+ // interactions
160
+ Amount balanceAmount = AmountLib.toAmount(
161
+ TOKEN.balanceOf(oldWalletForBalance));
162
+
163
+ if (balanceAmount.gtz()) {
164
+ // move tokens from old to new wallet
165
+ emit LogTokenHandlerWalletTokensTransferred(NFT_ID, oldWallet, newWallet, balanceAmount);
166
+
167
+ if (oldWallet == address(0)) {
168
+ // transfer from the component requires an allowance
169
+ _transfer(address(this), newWallet, balanceAmount, true);
170
+ } else if (newWallet == address(0)) {
171
+ _transfer(oldWallet, address(this), balanceAmount, true);
172
+ } else {
173
+ _transfer(oldWallet, newWallet, balanceAmount, true);
174
+ }
175
+ }
176
+ }
177
+
178
+
179
+ function _pullToken(address from, Amount amount)
180
+ internal
181
+ {
182
+ _transfer(from, getWallet(), amount, true);
183
+ }
184
+
185
+
186
+ function _pushToken(address to, Amount amount)
187
+ internal
188
+ {
189
+ _transfer(getWallet(), to, amount, true);
12
190
  }
13
191
 
14
- // TODO add logging
15
- function transfer(
192
+
193
+ function _transfer(
16
194
  address from,
17
195
  address to,
18
- uint256 amount // TODO add authz (only treasury/instance/product/pool/ service)
19
- ) external {
20
- SafeERC20.safeTransferFrom(_token, from, to, amount);
21
- // _token.transferFrom(from, to, amount);
196
+ Amount amount,
197
+ bool checkPreconditions
198
+ )
199
+ internal
200
+ {
201
+ if (checkPreconditions) {
202
+ bool checkAmount = true;
203
+ _checkBalanceAndAllowance(from, amount, checkAmount);
204
+ }
205
+
206
+ // transfer the tokens
207
+ emit LogTokenHandlerTokenTransfer(address(TOKEN), from, to, amount);
208
+
209
+ SafeERC20.safeTransferFrom(
210
+ TOKEN,
211
+ from,
212
+ to,
213
+ amount.toInt());
22
214
  }
23
215
 
24
- function getToken() external view returns (IERC20Metadata) {
25
- return _token;
216
+
217
+ function _checkBalanceAndAllowance(
218
+ address from,
219
+ Amount amount,
220
+ bool checkAmount
221
+ )
222
+ internal
223
+ view
224
+ {
225
+ // amount must be greater than zero
226
+ if (checkAmount && amount.eqz()) {
227
+ revert ErrorTokenHandlerAmountIsZero();
228
+ }
229
+
230
+ // allowance must be >= amount
231
+ uint256 allowance = TOKEN.allowance(from, address(this));
232
+ if (allowance < amount.toInt()) {
233
+ revert ErrorTokenHandlerAllowanceTooSmall(address(TOKEN), from, address(this), allowance, amount.toInt());
234
+ }
235
+
236
+ // balance must be >= amount
237
+ uint256 balance = TOKEN.balanceOf(from);
238
+ if (balance < amount.toInt()) {
239
+ revert ErrorTokenHandlerBalanceTooLow(address(TOKEN), from, balance, amount.toInt());
240
+ }
241
+ }
242
+ }
243
+
244
+
245
+ /// @dev Token specific transfer helper.
246
+ /// Contract is derived from TokenHandlerBase and adds
247
+ /// authorization based on OpenZeppelin AccessManaged.
248
+ contract TokenHandler is
249
+ AccessManaged,
250
+ TokenHandlerBase
251
+ {
252
+
253
+ // onlyService
254
+ error ErrorTokenHandlerNotService(address service);
255
+
256
+ modifier onlyService() {
257
+ if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
258
+ revert ErrorTokenHandlerNotService(msg.sender);
259
+ }
260
+ _;
261
+ }
262
+
263
+ constructor(
264
+ address registry,
265
+ address component,
266
+ address token,
267
+ address authority
268
+ )
269
+ TokenHandlerBase(registry, component, token)
270
+ AccessManaged(authority)
271
+ { }
272
+
273
+ /// @dev Sets the wallet address for the component.
274
+ /// Seeting the new wallet address to address(0) will set the wallet to the tokenHandler contract itself.
275
+ /// If the current wallet has tokens, these will be transferred.
276
+ /// If the new wallet address is externally owned, an approval from the
277
+ /// owner of the external wallet to the tokenhandler of the component that
278
+ /// covers the current component balance must exist.
279
+ function setWallet(address newWallet)
280
+ external
281
+ restricted()
282
+ onlyService()
283
+ {
284
+ _setWallet(newWallet);
285
+ }
286
+
287
+
288
+ /// @dev Approves token handler to spend up to the specified amount of tokens.
289
+ /// Sets spending limit to type(uint256).max for AmountLib.max().
290
+ /// Reverts if component wallet is not component itself.
291
+ /// Sets approvel using SareERC20.forceApprove internally.
292
+ function approve(
293
+ IERC20Metadata token,
294
+ Amount amount
295
+ )
296
+ external
297
+ restricted()
298
+ onlyService()
299
+ {
300
+ _approve(token, amount);
301
+ }
302
+
303
+ /// @dev Collect tokens from outside of GIF and transfer them to the wallet.
304
+ /// This method also checks balance and allowance and makes sure the amount is greater than zero.
305
+ function pullToken(
306
+ address from,
307
+ Amount amount
308
+ )
309
+ external
310
+ restricted()
311
+ onlyService()
312
+ {
313
+ _pullToken(from, amount);
314
+ }
315
+
316
+
317
+ /// @dev Distribute tokens from a wallet within the scope of gif to some address.
318
+ function pushToken(
319
+ address to,
320
+ Amount amount
321
+ )
322
+ external
323
+ restricted()
324
+ onlyService()
325
+ {
326
+ _pushToken(to, amount);
327
+ }
328
+
329
+
330
+ /// @dev Distribute fee tokens from a wallet within the scope of gif to some address.
331
+ /// Separate push function for component service.
332
+ function pushFeeToken(
333
+ address to,
334
+ Amount amount
335
+ )
336
+ external
337
+ restricted()
338
+ onlyService()
339
+ {
340
+ _pushToken(to, amount);
26
341
  }
27
342
  }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TokenHandler} from "./TokenHandler.sol";
5
+
6
+ library TokenHandlerDeployerLib {
7
+
8
+ function deployTokenHandler(
9
+ address registry,
10
+ address component,
11
+ address token,
12
+ address authority
13
+ )
14
+ public
15
+ returns (TokenHandler)
16
+ {
17
+ return new TokenHandler(registry, component, token, authority);
18
+ }
19
+
20
+ }
@@ -0,0 +1,195 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {IComponent} from "../shared/IComponent.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+
9
+ import {Amount} from "../type/Amount.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ObjectType} from "../type/ObjectType.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {StakingReader} from "./StakingReader.sol";
14
+ import {StakingStore} from "./StakingStore.sol";
15
+ import {Timestamp} from "../type/Timestamp.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
17
+
18
+ interface IStaking is
19
+ IComponent,
20
+ IVersionable
21
+ {
22
+ // staking rate
23
+ event LogStakingStakingRateSet(uint256 chainId, address token, UFixed oldStakingRate, UFixed newStakingRate);
24
+
25
+ // protocol parameters
26
+ event LogStakingProtocolLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
27
+ event LogStakingProtocolRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
28
+
29
+ // targets
30
+ event LogStakingTargetRegistered(NftId targetNftId, ObjectType objectType, Seconds lockingPeriod, UFixed rewardRate, Amount maxStakedAmount);
31
+
32
+ // target parameters
33
+ event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
34
+ event LogStakingRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
35
+ event LogStakingMaxStakedAmountSet(NftId targetNftId, Amount maxStakedAmount);
36
+
37
+ // modifiers
38
+ error ErrorStakingNotStake(NftId stakeNftId);
39
+ error ErrorStakingNotTarget(NftId targetNftId);
40
+
41
+ error ErrorStakingNotStakingOwner();
42
+ error ErrorStakingNotNftOwner(NftId nftId);
43
+
44
+ // initializeTokenHandler
45
+ error ErrorStakingNotRegistry(address registry);
46
+
47
+ // staking rate
48
+ error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
49
+
50
+ // check dip balance and allowance
51
+ error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
52
+ error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
53
+
54
+ error ErrorStakingStakingReaderStakingMismatch(address stakingByStakingReader);
55
+ error ErrorStakingTargetAlreadyRegistered(NftId targetNftId);
56
+ error ErrorStakingTargetNftIdZero();
57
+ error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
58
+ error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
59
+ error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
60
+ error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
61
+ error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
62
+ error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
63
+ error ErrorStakingTargetNotFound(NftId targetNftId);
64
+ error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
65
+ error ErrorStakingTargetMaxStakedAmountExceeded(NftId targetNftId, Amount maxStakedAmount, Amount stakedAmount);
66
+
67
+ error ErrorStakingStakeAmountZero(NftId targetNftId);
68
+
69
+ // info for individual stake
70
+ struct StakeInfo {
71
+ // slot 0
72
+ Timestamp lockedUntil;
73
+ }
74
+
75
+ struct TargetInfo {
76
+ // Slot 0
77
+ UFixed rewardRate;
78
+ Amount maxStakedAmount;
79
+ // Slot 1
80
+ ObjectType objectType;
81
+ Seconds lockingPeriod;
82
+ // Slot 2
83
+ uint256 chainId;
84
+ }
85
+
86
+ function initializeTokenHandler() external;
87
+
88
+ //--- only owner functions -------------------------------------------//
89
+
90
+ /// @dev Set the stake locking period for protocol stakes to the specified duration.
91
+ function setProtocolLockingPeriod(Seconds lockingPeriod) external;
92
+
93
+ /// @dev Set the protocol reward rate.
94
+ function setProtocolRewardRate(UFixed rewardRate) external;
95
+
96
+ /// @dev Set the staking rate for the specified chain and token.
97
+ /// The staking rate defines the amount of staked dips required to back up 1 token of total value locked.
98
+ function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
99
+
100
+ /// @dev Sets/updates the staking reader contract.
101
+ function setStakingReader(StakingReader stakingReader) external;
102
+
103
+ /// @dev Set the approval to the token handler.
104
+ /// Defines the max allowance from the staking wallet to the token handler.
105
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external;
106
+
107
+ //--- target management ----------------------------------------------//
108
+
109
+ function registerTarget(
110
+ NftId targetNftId,
111
+ ObjectType expectedObjectType,
112
+ uint256 chainId,
113
+ Seconds initialLockingPeriod,
114
+ UFixed initialRewardRate
115
+ ) external;
116
+
117
+
118
+ /// @dev set the stake locking period to the specified duration.
119
+ /// permissioned: only the staking service may call this function
120
+ function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
121
+
122
+ /// @dev update the target specific reward rate.
123
+ /// permissioned: only the staking service may call this function
124
+ function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
125
+
126
+ /// @dev set the maximum staked amount for the specified target.
127
+ /// permissioned: only the staking service may call this function
128
+ function setMaxStakedAmount(NftId targetNftId, Amount maxStakedAmount) external;
129
+
130
+ /// @dev (re)fills the staking reward reserves for the specified target
131
+ /// unpermissioned: anybody may fill up staking reward reserves
132
+ function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
133
+
134
+ /// @dev defunds the staking reward reserves for the specified target
135
+ /// permissioned: only the staking service may call this function
136
+ function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
137
+
138
+ /// @dev increases the total value locked amount for the specified target by the provided token amount.
139
+ /// function is called when a new policy is collateralized.
140
+ /// function restricted to the pool service.
141
+ function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
142
+
143
+ /// @dev decreases the total value locked amount for the specified target by the provided token amount.
144
+ /// function is called when a new policy is closed or payouts are executed.
145
+ /// function restricted to the pool service.
146
+ function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
147
+
148
+
149
+ function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
150
+
151
+ // staking functions
152
+
153
+ /// @dev creat a new stake info object
154
+ /// permissioned: only staking service may call this function.
155
+ function createStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
156
+
157
+ /// @dev increase the staked dip by dipAmount for the specified stake.
158
+ /// staking rewards are updated and added to the staked dips as well.
159
+ /// the function returns the new total amount of staked dips.
160
+ function stake(NftId stakeNftId, Amount dipAmount) external returns (Amount stakeBalance);
161
+
162
+ /// @dev restakes the dips to a new target.
163
+ /// the sum of the staked dips and the accumulated rewards will be restaked.
164
+ /// permissioned: only staking service may call this function.
165
+ function restake(NftId stakeNftId, NftId newStakeNftId) external returns (Amount newStakeBalance);
166
+
167
+ /// @dev retuns the specified amount of dips to the holder of the specified stake nft.
168
+ /// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
169
+ /// permissioned: only staking service may call this function.
170
+ function unstake(NftId stakeNftId)
171
+ external
172
+ returns (
173
+ Amount unstakedAmount,
174
+ Amount rewardsClaimedAmount
175
+ );
176
+
177
+ /// @dev update stake rewards for current time.
178
+ /// may be called before an announement of a decrease of a reward rate reduction.
179
+ /// calling this functions ensures that reward balance is updated using the current (higher) reward rate.
180
+ /// unpermissioned.
181
+ function updateRewards(NftId stakeNftId) external;
182
+
183
+ /// @dev transfers all rewards accumulated so far to the holder of the specified stake nft.
184
+ /// permissioned: only staking service may call this function.
185
+ function claimRewards(NftId stakeNftId)
186
+ external
187
+ returns (
188
+ Amount rewardsClaimedAmount
189
+ );
190
+
191
+ //--- view and pure functions -------------------------------------------//
192
+
193
+ function getStakingStore() external view returns (StakingStore stakingStore);
194
+ function getStakingReader() external view returns (StakingReader reader);
195
+ }