@etherisc/gif-next 0.0.2-7f35518-483 → 0.0.2-7fbee0d-269

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 (797) hide show
  1. package/README.md +157 -281
  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 +810 -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 +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +817 -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 +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -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 +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +383 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.json +253 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2180 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  68. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  70. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  86. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  88. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  92. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +957 -535
  94. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +760 -138
  96. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  97. package/artifacts/contracts/instance/Instance.sol/Instance.json +614 -2806
  98. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  100. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  102. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1919 -679
  104. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +780 -323
  106. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +404 -104
  108. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  110. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  112. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  114. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  116. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  117. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  128. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  133. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  138. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  164. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  165. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IRiskService.sol/IRiskService.json} +353 -249
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  207. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +641 -173
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +419 -200
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  220. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +969 -202
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -309
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +389 -121
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +391 -80
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  243. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  255. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  256. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  257. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +286 -176
  258. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  260. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  262. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  279. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  281. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  283. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  285. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  287. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  289. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  290. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  291. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  297. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  299. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  301. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  302. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  304. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  305. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  306. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  307. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  308. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  309. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  310. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  312. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  314. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  316. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  317. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  318. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  319. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  320. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  321. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  322. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  324. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  326. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  328. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  330. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  332. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  334. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  336. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  338. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  339. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  340. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  342. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  343. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  344. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  346. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  348. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  350. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  352. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  353. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  354. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  356. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  358. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  362. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  364. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  366. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  368. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  370. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  372. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  374. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  375. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  376. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  378. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  380. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  382. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  384. package/contracts/accounting/AccountingService.sol +274 -0
  385. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  386. package/contracts/accounting/IAccountingService.sol +47 -0
  387. package/contracts/authorization/AccessAdmin.sol +679 -0
  388. package/contracts/authorization/AccessAdminLib.sol +678 -0
  389. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  390. package/contracts/authorization/Authorization.sol +190 -0
  391. package/contracts/authorization/IAccess.sol +66 -0
  392. package/contracts/authorization/IAccessAdmin.sol +142 -0
  393. package/contracts/authorization/IAuthorization.sol +26 -0
  394. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  395. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  396. package/contracts/distribution/BasicDistribution.sol +140 -0
  397. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  398. package/contracts/distribution/Distribution.sol +245 -0
  399. package/contracts/distribution/DistributionService.sol +448 -0
  400. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  401. package/contracts/distribution/IDistributionComponent.sol +45 -0
  402. package/contracts/distribution/IDistributionService.sol +115 -0
  403. package/contracts/examples/fire/DamageLevel.sol +59 -0
  404. package/contracts/examples/fire/FirePool.sol +86 -0
  405. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  406. package/contracts/examples/fire/FireProduct.sol +433 -0
  407. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  408. package/contracts/examples/fire/FireUSD.sol +26 -0
  409. package/contracts/examples/flight/FlightLib.sol +273 -0
  410. package/contracts/examples/flight/FlightMessageVerfier.sol +129 -0
  411. package/contracts/examples/flight/FlightOracle.sol +167 -0
  412. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  413. package/contracts/examples/flight/FlightPool.sol +89 -0
  414. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  415. package/contracts/examples/flight/FlightProduct.sol +464 -0
  416. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  417. package/contracts/examples/flight/FlightUSD.sol +26 -0
  418. package/contracts/examples/flight/originalV1.sol +396 -0
  419. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  420. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  421. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  422. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  423. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  424. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  425. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  426. package/contracts/instance/BaseStore.sol +93 -0
  427. package/contracts/instance/BundleSet.sol +130 -0
  428. package/contracts/instance/IBaseStore.sol +37 -0
  429. package/contracts/instance/IInstance.sol +141 -24
  430. package/contracts/instance/IInstanceService.sol +106 -17
  431. package/contracts/instance/Instance.sol +249 -341
  432. package/contracts/instance/InstanceAdmin.sol +307 -0
  433. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  434. package/contracts/instance/InstanceReader.sol +524 -202
  435. package/contracts/instance/InstanceService.sol +462 -130
  436. package/contracts/instance/InstanceServiceManager.sol +14 -31
  437. package/contracts/instance/InstanceStore.sol +323 -0
  438. package/contracts/instance/ProductStore.sol +290 -0
  439. package/contracts/instance/RiskSet.sol +126 -0
  440. package/contracts/instance/TargetNames.sol +10 -0
  441. package/contracts/instance/base/BalanceStore.sol +121 -0
  442. package/contracts/instance/base/Cloneable.sol +28 -0
  443. package/contracts/instance/base/ObjectCounter.sol +20 -0
  444. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  445. package/contracts/instance/base/ObjectSet.sol +77 -0
  446. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  447. package/contracts/instance/module/IBundle.sol +10 -9
  448. package/contracts/instance/module/IComponents.sol +60 -0
  449. package/contracts/instance/module/IDistribution.sol +25 -10
  450. package/contracts/instance/module/IPolicy.sol +81 -21
  451. package/contracts/instance/module/IRisk.sol +6 -1
  452. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  453. package/contracts/oracle/BasicOracle.sol +44 -0
  454. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  455. package/contracts/oracle/IOracle.sol +41 -0
  456. package/contracts/oracle/IOracleComponent.sol +33 -0
  457. package/contracts/oracle/IOracleService.sol +66 -0
  458. package/contracts/oracle/Oracle.sol +152 -0
  459. package/contracts/oracle/OracleService.sol +310 -0
  460. package/contracts/oracle/OracleServiceManager.sol +39 -0
  461. package/contracts/pool/BasicPool.sol +161 -0
  462. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  463. package/contracts/pool/BundleService.sol +386 -0
  464. package/contracts/pool/BundleServiceManager.sol +39 -0
  465. package/contracts/pool/IBundleService.sol +116 -0
  466. package/contracts/pool/IPoolComponent.sol +62 -0
  467. package/contracts/pool/IPoolService.sol +170 -0
  468. package/contracts/pool/Pool.sol +331 -0
  469. package/contracts/pool/PoolLib.sol +341 -0
  470. package/contracts/pool/PoolService.sol +614 -0
  471. package/contracts/pool/PoolServiceManager.sol +39 -0
  472. package/contracts/product/ApplicationService.sol +327 -0
  473. package/contracts/product/ApplicationServiceManager.sol +38 -0
  474. package/contracts/product/BasicProduct.sol +48 -0
  475. package/contracts/product/BasicProductAuthorization.sol +64 -0
  476. package/contracts/product/ClaimService.sol +626 -0
  477. package/contracts/product/ClaimServiceManager.sol +38 -0
  478. package/contracts/product/IApplicationService.sol +88 -0
  479. package/contracts/product/IClaimService.sol +136 -0
  480. package/contracts/product/IPolicyService.sol +102 -0
  481. package/contracts/product/IPricingService.sol +40 -0
  482. package/contracts/product/IProductComponent.sol +62 -0
  483. package/contracts/product/IRiskService.sol +48 -0
  484. package/contracts/product/PolicyService.sol +645 -0
  485. package/contracts/product/PolicyServiceLib.sol +139 -0
  486. package/contracts/product/PolicyServiceManager.sol +39 -0
  487. package/contracts/product/PricingService.sol +306 -0
  488. package/contracts/product/PricingServiceManager.sol +39 -0
  489. package/contracts/product/Product.sol +491 -0
  490. package/contracts/product/RiskService.sol +189 -0
  491. package/contracts/product/RiskServiceManager.sol +39 -0
  492. package/contracts/registry/ChainNft.sol +82 -35
  493. package/contracts/registry/IRegistry.sol +128 -50
  494. package/contracts/registry/IRegistryService.sol +45 -16
  495. package/contracts/registry/IRelease.sol +29 -0
  496. package/contracts/registry/ITransferInterceptor.sol +1 -1
  497. package/contracts/registry/Registry.sol +551 -304
  498. package/contracts/registry/RegistryAdmin.sol +173 -0
  499. package/contracts/registry/RegistryAuthorization.sol +337 -0
  500. package/contracts/registry/RegistryService.sol +126 -284
  501. package/contracts/registry/RegistryServiceManager.sol +26 -53
  502. package/contracts/registry/ReleaseAdmin.sol +199 -0
  503. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  504. package/contracts/registry/ReleaseRegistry.sol +525 -0
  505. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  506. package/contracts/registry/TokenRegistry.sol +265 -59
  507. package/contracts/shared/Component.sol +210 -0
  508. package/contracts/shared/ComponentService.sol +691 -0
  509. package/contracts/shared/ComponentServiceManager.sol +38 -0
  510. package/contracts/shared/ContractLib.sol +312 -0
  511. package/contracts/shared/EcdsaChecker.sol +5 -0
  512. package/contracts/shared/IComponent.sol +58 -0
  513. package/contracts/shared/IComponentService.sol +111 -0
  514. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  515. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  516. package/contracts/shared/INftOwnable.sol +17 -12
  517. package/contracts/shared/IPolicyHolder.sol +35 -0
  518. package/contracts/shared/IRegisterable.sol +24 -5
  519. package/contracts/shared/IRegistryLinked.sol +11 -0
  520. package/contracts/shared/IService.sol +13 -5
  521. package/contracts/shared/InitializableERC165.sol +35 -0
  522. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  523. package/contracts/shared/Lifecycle.sol +88 -0
  524. package/contracts/shared/NftIdSet.sol +65 -0
  525. package/contracts/shared/NftOwnable.sol +77 -84
  526. package/contracts/shared/PolicyHolder.sol +63 -0
  527. package/contracts/shared/Registerable.sol +54 -38
  528. package/contracts/shared/RegistryLinked.sol +38 -0
  529. package/contracts/shared/Service.sol +46 -33
  530. package/contracts/shared/TokenHandler.sol +327 -12
  531. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  532. package/contracts/staking/IStaking.sol +366 -0
  533. package/contracts/staking/IStakingService.sol +127 -0
  534. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  535. package/contracts/staking/Staking.sol +797 -0
  536. package/contracts/staking/StakingLib.sol +195 -0
  537. package/contracts/staking/StakingManager.sol +53 -0
  538. package/contracts/staking/StakingReader.sol +171 -0
  539. package/contracts/staking/StakingService.sol +321 -0
  540. package/contracts/staking/StakingServiceManager.sol +46 -0
  541. package/contracts/staking/StakingStore.sol +1368 -0
  542. package/contracts/staking/TargetHandler.sol +132 -0
  543. package/contracts/staking/TargetManagerLib.sol +234 -0
  544. package/contracts/{types → type}/AddressSet.sol +1 -1
  545. package/contracts/type/Amount.sol +154 -0
  546. package/contracts/{types → type}/Blocknumber.sol +38 -19
  547. package/contracts/type/ChainId.sol +101 -0
  548. package/contracts/type/ClaimId.sol +80 -0
  549. package/contracts/{types → type}/DistributorType.sol +2 -2
  550. package/contracts/type/Fee.sol +66 -0
  551. package/contracts/{types → type}/Key32.sol +2 -2
  552. package/contracts/type/Key32Set.sol +62 -0
  553. package/contracts/{types → type}/NftId.sol +28 -15
  554. package/contracts/type/NftIdSet.sol +62 -0
  555. package/contracts/type/ObjectType.sol +278 -0
  556. package/contracts/type/PayoutId.sol +82 -0
  557. package/contracts/{types → type}/Referral.sol +12 -1
  558. package/contracts/type/RequestId.sol +75 -0
  559. package/contracts/type/RequestIdSet.sol +62 -0
  560. package/contracts/type/RiskId.sol +75 -0
  561. package/contracts/type/RoleId.sol +180 -0
  562. package/contracts/type/Seconds.sol +124 -0
  563. package/contracts/type/Selector.sol +107 -0
  564. package/contracts/{types → type}/StateId.sol +48 -4
  565. package/contracts/type/String.sol +95 -0
  566. package/contracts/{types → type}/Timestamp.sol +45 -20
  567. package/contracts/type/UFixed.sol +263 -0
  568. package/contracts/{types → type}/Version.sol +59 -7
  569. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  570. package/contracts/upgradeability/ProxyManager.sol +246 -0
  571. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  572. package/contracts/upgradeability/Versionable.sol +62 -0
  573. package/package.json +13 -8
  574. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  575. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  576. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  577. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  578. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  579. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  580. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  581. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  582. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  583. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  584. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  585. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  586. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  587. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -873
  588. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  589. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  590. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  592. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  594. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  596. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  598. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  600. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  601. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  602. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  603. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  604. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  605. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  606. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  607. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  608. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  609. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  610. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  611. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  613. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  614. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  615. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  616. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  617. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  618. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  619. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  620. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  621. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  622. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  623. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  624. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  625. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  626. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  627. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  628. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  629. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  630. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  631. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  632. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  633. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  634. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  635. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  636. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  637. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  638. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  639. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  640. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  641. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  642. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  643. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  644. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  645. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  646. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  647. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  648. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  649. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  650. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  651. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  652. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  653. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  654. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  655. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  656. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  657. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  658. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  659. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  660. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  661. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  662. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  663. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  664. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  665. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  666. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  667. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  668. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  669. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  670. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  671. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  672. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  673. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  674. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  675. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  676. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  677. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  678. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  679. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  681. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  682. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  683. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  684. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  685. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  686. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  687. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  688. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  689. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  690. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  691. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  692. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  693. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  694. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  695. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  696. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  697. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  699. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  701. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  703. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  705. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  707. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  709. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  710. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  711. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  712. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  713. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  715. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  717. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  719. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  721. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  722. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  723. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  724. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  725. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  726. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  727. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  728. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  729. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  730. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  731. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  732. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  733. package/contracts/components/BaseComponent.sol +0 -91
  734. package/contracts/components/Distribution.sol +0 -166
  735. package/contracts/components/IBaseComponent.sol +0 -25
  736. package/contracts/components/IDistributionComponent.sol +0 -46
  737. package/contracts/components/IPoolComponent.sol +0 -62
  738. package/contracts/components/IProductComponent.sol +0 -35
  739. package/contracts/components/Pool.sol +0 -247
  740. package/contracts/components/Product.sol +0 -297
  741. package/contracts/experiment/cloning/Cloner.sol +0 -47
  742. package/contracts/experiment/errors/Require.sol +0 -38
  743. package/contracts/experiment/errors/Revert.sol +0 -44
  744. package/contracts/experiment/inheritance/A.sol +0 -53
  745. package/contracts/experiment/inheritance/B.sol +0 -28
  746. package/contracts/experiment/inheritance/C.sol +0 -34
  747. package/contracts/experiment/inheritance/IA.sol +0 -13
  748. package/contracts/experiment/inheritance/IB.sol +0 -10
  749. package/contracts/experiment/inheritance/IC.sol +0 -12
  750. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  751. package/contracts/experiment/statemachine/ISM.sol +0 -25
  752. package/contracts/experiment/statemachine/SM.sol +0 -57
  753. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  754. package/contracts/experiment/types/TypeA.sol +0 -47
  755. package/contracts/experiment/types/TypeB.sol +0 -29
  756. package/contracts/instance/AccessManagedSimple.sol +0 -115
  757. package/contracts/instance/AccessManagerSimple.sol +0 -692
  758. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  759. package/contracts/instance/InstanceAccessManager.sol +0 -288
  760. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  761. package/contracts/instance/base/IInstanceBase.sol +0 -23
  762. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  763. package/contracts/instance/base/KeyValueStore.sol +0 -172
  764. package/contracts/instance/base/Lifecycle.sol +0 -100
  765. package/contracts/instance/module/IAccess.sol +0 -38
  766. package/contracts/instance/module/ISetup.sol +0 -44
  767. package/contracts/instance/module/ITreasury.sol +0 -23
  768. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  769. package/contracts/instance/service/DistributionService.sol +0 -99
  770. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  771. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  772. package/contracts/instance/service/IDistributionService.sol +0 -12
  773. package/contracts/instance/service/IPoolService.sol +0 -37
  774. package/contracts/instance/service/IProductService.sol +0 -107
  775. package/contracts/instance/service/PoolService.sol +0 -205
  776. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  777. package/contracts/shared/ContractDeployerLib.sol +0 -72
  778. package/contracts/shared/ERC165.sol +0 -25
  779. package/contracts/shared/ProxyManager.sol +0 -94
  780. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  781. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  782. package/contracts/shared/Versionable.sol +0 -147
  783. package/contracts/test/TestFee.sol +0 -25
  784. package/contracts/test/TestRegisterable.sol +0 -18
  785. package/contracts/test/TestRoleId.sol +0 -14
  786. package/contracts/test/TestService.sol +0 -24
  787. package/contracts/test/TestToken.sol +0 -26
  788. package/contracts/test/TestVersion.sol +0 -44
  789. package/contracts/test/TestVersionable.sol +0 -17
  790. package/contracts/types/ChainId.sol +0 -38
  791. package/contracts/types/Fee.sol +0 -56
  792. package/contracts/types/NftIdSet.sol +0 -60
  793. package/contracts/types/NumberId.sol +0 -52
  794. package/contracts/types/ObjectType.sol +0 -152
  795. package/contracts/types/RiskId.sol +0 -43
  796. package/contracts/types/RoleId.sol +0 -89
  797. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,180 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {ObjectType, ROLE} from "./ObjectType.sol";
6
+ import {VersionPart, VersionPartLib} from "./Version.sol";
7
+
8
+ type RoleId is uint64;
9
+
10
+ // type bindings
11
+ using {
12
+ eqRoleId as ==,
13
+ neRoleId as !=,
14
+ RoleIdLib.toInt,
15
+ RoleIdLib.isServiceRole,
16
+ RoleIdLib.eqz,
17
+ RoleIdLib.gtz
18
+ } for RoleId global;
19
+
20
+ // general pure free functions
21
+
22
+ // @dev Returns true iff role ids a and b are identical
23
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
24
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
25
+ }
26
+
27
+ // @dev Returns true iff role ids a and b are different
28
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
29
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
30
+ }
31
+
32
+ //--- OpenZeppelin provided roles -------------------------------------------//
33
+
34
+ /// @dev Role ID needs to match with oz AccessManager.ADMIN_ROLE
35
+ function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).min); }
36
+
37
+ /// @dev Role ID needs to match with oz AccessManager.PUBLIC_ROLE
38
+ function PUBLIC_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).max); }
39
+
40
+ //--- GIF roles (range: 1-99) ----------------------------------------------//
41
+
42
+ /// @dev cental role for gif release management.
43
+ /// this role is necessary to call ReleaseManager.createNextRelease/activateNextRelease
44
+ /// the actual deployment of a release requires the GIF_MANAGER_ROLE.
45
+ /// GIF_ADMIN_ROLE is the admin of the GIF_MANAGER_ROLE.
46
+ /// only a single holder may hold this role at any time
47
+ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1); }
48
+
49
+ /// @dev role for token whith/blacklisting, deploying and registering the services for a new major release
50
+ /// registering services for a new major release is only possible after a new initial release has been created by the GIF_ADMIN_ROLE
51
+ /// token white/blacklisting is possible for any active release
52
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
53
+
54
+ /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
+ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
56
+
57
+ // TODO check if/where this is really needed
58
+ /// @dev role assigned to release registry, release specfic to lock/unlock a release
59
+ function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
60
+
61
+ /// @dev role assigned to every instance owner
62
+ function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
63
+
64
+ // TODO upate role id ranges
65
+ //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
66
+ // created and assigned during initial deployment for registry and staking
67
+ // granting for instances and components in instance service
68
+ // object type * 100 + 0, examples:
69
+ // - registry contract role: 200
70
+ // - staking contract role: 300
71
+ // - instance contract role: 1000
72
+
73
+ //--- GIF service roles (range 201 - 9'9xx) ---------------------------------//
74
+ // created and assigned by release manager contract
75
+ // object type * 100 + 1/major version, examples:
76
+ // - registry service role (any version): 299
77
+ // - registry service role (version 3): 203
78
+ // - registry service role (any version): 399
79
+ // - staking service role: (version 3): 303
80
+ // - application service role (version 3): 2003
81
+
82
+ //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
83
+ // the min value of 12'001 is based on the following calculation:
84
+ // object type * 1000 + 1 where the lowest object type is 12 (product)
85
+ // assigned at component registration time
86
+ // object type * 1000 + instane specific component counter
87
+ // on any instance a maximum number of 999 components may be deployed
88
+ // examples:
89
+ // - 1st pool on instance: 15001
90
+ // - 1st distribution on instance: 14002
91
+ // - 1st product on instance: 12003
92
+ // - 2nd pool on instance: 15004
93
+ // - 2nd distribution on instance: 14005
94
+ // - 2nd product on instance: 12006
95
+
96
+
97
+ //--- Custom roles (range >= 1'000'000) -------------------------------------//
98
+
99
+ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(1000000); }
100
+
101
+ library RoleIdLib {
102
+
103
+ error ErrorRoleIdTooBig(uint256 roleId);
104
+
105
+ // constant values need to match with AccessAdminLib.SERVICE_ROLE_*
106
+ uint64 public constant SERVICE_ROLE_MIN = 1000;
107
+ uint64 public constant SERVICE_ROLE_MAX = 99099; // 99 (max object type) * 1000 + 99
108
+
109
+ uint64 public constant SERVICE_ROLE_FACTOR = 1000;
110
+
111
+ /// @dev Converts the RoleId to a uint.
112
+ function zero() public pure returns (RoleId) {
113
+ return RoleId.wrap(0);
114
+ }
115
+
116
+
117
+ /// @dev Converts an uint into a role id.
118
+ function toRoleId(uint256 a) public pure returns (RoleId) {
119
+ if (a > type(uint64).max) {
120
+ revert ErrorRoleIdTooBig(a);
121
+ }
122
+
123
+ return RoleId.wrap(uint64(a));
124
+ }
125
+
126
+
127
+ function isServiceRole(RoleId roleId)
128
+ public
129
+ pure
130
+ returns (bool)
131
+ {
132
+ uint256 roleIdInt = RoleId.unwrap(roleId);
133
+ return roleIdInt >= SERVICE_ROLE_MIN && roleIdInt <= SERVICE_ROLE_MAX;
134
+ }
135
+
136
+
137
+ function toGenericServiceRoleId(
138
+ ObjectType objectType
139
+ )
140
+ public
141
+ pure
142
+ returns (RoleId)
143
+ {
144
+ return toServiceRoleId(
145
+ objectType,
146
+ VersionPartLib.releaseMax());
147
+ }
148
+
149
+
150
+ function toServiceRoleId(
151
+ ObjectType serviceDomain,
152
+ VersionPart release
153
+ )
154
+ public
155
+ pure
156
+ returns (RoleId serviceRoleId)
157
+ {
158
+ uint256 serviceRoleIdInt =
159
+ SERVICE_ROLE_MIN
160
+ + SERVICE_ROLE_FACTOR * (serviceDomain.toInt() - 1)
161
+ + release.toInt();
162
+
163
+ return toRoleId(serviceRoleIdInt);
164
+ }
165
+
166
+ /// @dev Converts the role id to a uint.
167
+ function toInt(RoleId a) public pure returns (uint64) {
168
+ return uint64(RoleId.unwrap(a));
169
+ }
170
+
171
+ /// @dev Returns true if the value is non-zero (> 0).
172
+ function gtz(RoleId a) public pure returns (bool) {
173
+ return RoleId.unwrap(a) > 0;
174
+ }
175
+
176
+ /// @dev Returns true if the value is zero (== 0).
177
+ function eqz(RoleId a) public pure returns (bool) {
178
+ return RoleId.unwrap(a) == 0;
179
+ }
180
+ }
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ /// @dev Target: Cover durations of 1000 years.
5
+ type Seconds is uint40;
6
+
7
+ using {
8
+ SecondsEq as ==,
9
+ SecondsLt as <,
10
+ SecondsGt as >,
11
+ SecondsAdd as +,
12
+ SecondsLib.eqz,
13
+ SecondsLib.gtz,
14
+ SecondsLib.eq,
15
+ SecondsLib.gt,
16
+ SecondsLib.lt,
17
+ SecondsLib.toInt,
18
+ SecondsLib.add
19
+ } for Seconds global;
20
+
21
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
22
+ return SecondsLib.eq(duration1, duration2);
23
+ }
24
+
25
+ function SecondsLt(Seconds duration1, Seconds duration2) pure returns (bool) {
26
+ return SecondsLib.lt(duration1, duration2);
27
+ }
28
+
29
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
30
+ return SecondsLib.gt(duration1, duration2);
31
+ }
32
+
33
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
34
+ return SecondsLib.add(duration1, duration2);
35
+ }
36
+
37
+
38
+ library SecondsLib {
39
+
40
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
41
+
42
+ function zero() public pure returns (Seconds) {
43
+ return Seconds.wrap(0);
44
+ }
45
+
46
+ function max() public pure returns (Seconds) {
47
+ return Seconds.wrap(_max());
48
+ }
49
+
50
+ function fromHours(uint32 numberOfHours) public pure returns (Seconds duration) {
51
+ return Seconds.wrap(numberOfHours * 3600);
52
+ }
53
+
54
+ function oneDay() public pure returns (Seconds duration) {
55
+ return Seconds.wrap(24 * 3600);
56
+ }
57
+
58
+ function fromDays(uint32 numberOfDays) public pure returns (Seconds duration) {
59
+ return Seconds.wrap(numberOfDays * 24 * 3600);
60
+ }
61
+
62
+ function oneYear() public pure returns (Seconds duration) {
63
+ return Seconds.wrap(365 * 24 * 3600);
64
+ }
65
+
66
+ /// @dev converts the uint duration into Seconds
67
+ /// function reverts if duration is exceeding max Seconds value
68
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
69
+ // if(duration > type(uint40).max) {
70
+ if(duration > _max()) {
71
+ revert ErrorSecondsLibDurationTooBig(duration);
72
+ }
73
+
74
+ return Seconds.wrap(uint40(duration));
75
+ }
76
+
77
+ /// @dev return true if duration equals 0
78
+ function eqz(Seconds duration) public pure returns (bool) {
79
+ return Seconds.unwrap(duration) == 0;
80
+ }
81
+
82
+ /// @dev return true if duration is larger than 0
83
+ function gtz(Seconds duration) public pure returns (bool) {
84
+ return Seconds.unwrap(duration) > 0;
85
+ }
86
+
87
+ /// @dev return true iff duration1 and duration2 are the same
88
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
89
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
90
+ }
91
+
92
+ /// @dev return true if duration1 is larger than duration2
93
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
94
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
95
+ }
96
+
97
+ /// @dev return true if duration1 is smaller than duration2
98
+ function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
99
+ return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
100
+ }
101
+
102
+ /// @dev returns the smaller of the duration
103
+ function min(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
104
+ if (Seconds.unwrap(duration1) < Seconds.unwrap(duration2)) {
105
+ return duration1;
106
+ }
107
+
108
+ return duration2;
109
+ }
110
+
111
+ /// @dev return add duration1 and duration2
112
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
113
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
114
+ }
115
+
116
+ function toInt(Seconds duration) public pure returns (uint256) {
117
+ return uint256(uint40(Seconds.unwrap(duration)));
118
+ }
119
+
120
+ function _max() internal pure returns (uint40) {
121
+ // IMPORTANT: type nees to match with actual definition for Seconds
122
+ return type(uint40).max;
123
+ }
124
+ }
@@ -0,0 +1,107 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Selector is bytes4;
5
+
6
+ // type bindings
7
+ using {
8
+ eqSelector as ==,
9
+ neSelector as !=,
10
+ SelectorLib.toBytes4,
11
+ SelectorLib.toString,
12
+ SelectorLib.eqz
13
+ } for Selector global;
14
+
15
+ // pure free functions for operators
16
+ function eqSelector(Selector s1, Selector s2) pure returns (bool isSame) {
17
+ return SelectorLib.eq(s1, s2);
18
+ }
19
+
20
+ function neSelector(Selector s1, Selector s2) pure returns (bool isDifferent) {
21
+ return SelectorLib.ne(s1, s2);
22
+ }
23
+
24
+ // library functions that operate on user defined type
25
+ library SelectorLib {
26
+
27
+ function zero() public pure returns (Selector) {
28
+ return Selector.wrap("");
29
+ }
30
+
31
+ function eqz(Selector s) public pure returns (bool) {
32
+ return Selector.unwrap(s) == "";
33
+ }
34
+
35
+ function eq(Selector s1, Selector s2) public pure returns (bool isSame) {
36
+ return Selector.unwrap(s1) == Selector.unwrap(s2);
37
+ }
38
+
39
+ function ne(Selector s1, Selector s2) public pure returns (bool isDifferent) {
40
+ return Selector.unwrap(s1) != Selector.unwrap(s2);
41
+ }
42
+
43
+ function toSelector(bytes4 selector) public pure returns (Selector) {
44
+ return Selector.wrap(selector);
45
+ }
46
+
47
+ function toBytes4(Selector s) public pure returns (bytes4) {
48
+ return Selector.unwrap(s);
49
+ }
50
+
51
+ function toString(Selector s) public pure returns (string memory) {
52
+ return string(abi.encode(Selector.unwrap(s)));
53
+ }
54
+ }
55
+
56
+ // selector specific set library
57
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
58
+ library SelectorSetLib {
59
+
60
+ struct Set {
61
+ Selector[] selectors;
62
+ mapping(Selector selector => uint256 index) at;
63
+ }
64
+
65
+ function add(Set storage set, Selector selector) external {
66
+ // selector already in set
67
+ if (set.at[selector] > 0) { return; }
68
+
69
+ set.selectors.push(selector);
70
+ set.at[selector] = set.selectors.length;
71
+ }
72
+
73
+ function remove(Set storage set, Selector selector) external {
74
+ uint256 selectorIndex = set.at[selector];
75
+
76
+ // selector not in set
77
+ if (selectorIndex == 0) {return; }
78
+
79
+ uint256 toDeleteIndex = selectorIndex - 1;
80
+ uint256 lastIndex = set.selectors.length - 1;
81
+
82
+ if (lastIndex != toDeleteIndex) {
83
+ Selector lastSelector = set.selectors[lastIndex];
84
+ set.selectors[toDeleteIndex] = lastSelector;
85
+ set.at[lastSelector] = selectorIndex; // Replace lastValue's index to valueIndex
86
+ }
87
+
88
+ set.selectors.pop();
89
+ delete set.at[selector];
90
+ }
91
+
92
+ function isEmpty(Set storage set) external view returns(bool empty) {
93
+ return set.selectors.length == 0;
94
+ }
95
+
96
+ function contains(Set storage set, Selector selector) external view returns(bool inSet) {
97
+ return set.at[selector] > 0;
98
+ }
99
+
100
+ function size(Set storage set) external view returns(uint256 length) {
101
+ return set.selectors.length;
102
+ }
103
+
104
+ function at(Set storage set, uint256 index) external view returns(Selector selector) {
105
+ return set.selectors[index];
106
+ }
107
+ }
@@ -9,11 +9,37 @@ using {
9
9
  eqStateId as ==,
10
10
  neStateId as !=,
11
11
  StateIdLib.eqz,
12
+ StateIdLib.eq,
12
13
  StateIdLib.gtz,
13
14
  StateIdLib.toInt
14
15
  } for StateId global;
15
16
 
16
17
  // general pure free functions
18
+
19
+ function INITIAL() pure returns (StateId) {
20
+ return toStateId(1);
21
+ }
22
+
23
+ function SCHEDULED() pure returns (StateId) {
24
+ return toStateId(2);
25
+ }
26
+
27
+ function DEPLOYING() pure returns (StateId) {
28
+ return toStateId(3);
29
+ }
30
+
31
+ function DEPLOYED() pure returns (StateId) {
32
+ return toStateId(4);
33
+ }
34
+
35
+ function ACTIVE() pure returns (StateId) {
36
+ return toStateId(5);
37
+ }
38
+
39
+ function SKIPPED() pure returns (StateId) {
40
+ return toStateId(6);
41
+ }
42
+
17
43
  function APPLIED() pure returns (StateId) {
18
44
  return toStateId(10);
19
45
  }
@@ -26,20 +52,32 @@ function DECLINED() pure returns (StateId) {
26
52
  return toStateId(30);
27
53
  }
28
54
 
29
- function UNDERWRITTEN() pure returns (StateId) {
55
+ function COLLATERALIZED() pure returns (StateId) {
30
56
  return toStateId(40);
31
57
  }
32
58
 
33
- function CONFIRMED() pure returns (StateId) {
59
+ function SUBMITTED() pure returns (StateId) {
34
60
  return toStateId(50);
35
61
  }
36
62
 
63
+ function CONFIRMED() pure returns (StateId) {
64
+ return toStateId(51);
65
+ }
66
+
37
67
  function EXPECTED() pure returns (StateId) {
38
68
  return toStateId(60);
39
69
  }
40
70
 
41
- function ACTIVE() pure returns (StateId) {
42
- return toStateId(100);
71
+ function FULFILLED() pure returns (StateId) {
72
+ return toStateId(70);
73
+ }
74
+
75
+ function FAILED() pure returns (StateId) {
76
+ return toStateId(7);
77
+ }
78
+
79
+ function CANCELLED() pure returns (StateId) {
80
+ return toStateId(72);
43
81
  }
44
82
 
45
83
  function PAUSED() pure returns (StateId) {
@@ -67,6 +105,7 @@ function toStateId(uint256 id) pure returns (StateId) {
67
105
  return StateId.wrap(uint8(id));
68
106
  }
69
107
 
108
+ // TODO move to StateIdLib and rename to zero()
70
109
  /// @dev Return the StateId zero (0)
71
110
  function zeroStateId() pure returns (StateId) {
72
111
  return StateId.wrap(0);
@@ -83,6 +122,11 @@ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
83
122
 
84
123
  // library functions that operate on user defined type
85
124
  library StateIdLib {
125
+
126
+ function zero() public pure returns (StateId) {
127
+ return StateId.wrap(0);
128
+ }
129
+
86
130
  /// @dev Converts the NftId to a uint256.
87
131
  function toInt(StateId stateId) public pure returns (uint96) {
88
132
  return uint96(StateId.unwrap(stateId));
@@ -0,0 +1,95 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
5
+
6
+ type Str is bytes32;
7
+
8
+ using {
9
+ StrEq as ==,
10
+ StrNe as !=,
11
+ StrLib.toString,
12
+ StrLib.length
13
+ } for Str global;
14
+
15
+ // pure free function needed for the operator overloading
16
+ function StrEq(Str s1, Str s2) pure returns (bool) {
17
+ return StrLib.eq(s1, s2);
18
+ }
19
+
20
+ // pure free function needed for the operator overloading
21
+ function StrNe(Str s1, Str s2) pure returns (bool) {
22
+ return StrLib.ne(s1, s2);
23
+ }
24
+
25
+ library StrLib {
26
+
27
+
28
+ /// @dev converts the provided string into a short string.
29
+ /// uses ShortStrings.toShortString
30
+ function toStr(string memory str) public pure returns (Str) {
31
+ return Str.wrap(ShortString.unwrap(ShortStrings.toShortString(str)));
32
+ }
33
+
34
+ /// @dev return true iff s1 equals s2
35
+ function eq(Str s1, Str s2) public pure returns (bool) {
36
+ return Str.unwrap(s1) == Str.unwrap(s2);
37
+ }
38
+
39
+ /// @dev return true iff s1 differs from s2
40
+ function ne(Str s1, Str s2) public pure returns (bool) {
41
+ return Str.unwrap(s1) != Str.unwrap(s2);
42
+ }
43
+
44
+ /// @dev return true iff s1 equals from s2
45
+ function eq(string memory s1, string memory s2) public pure returns (bool) {
46
+ return keccak256(bytes(s1)) == keccak256(bytes(s2));
47
+ }
48
+
49
+ /// @dev return true iff s1 differs s2
50
+ function ne(string memory s1, string memory s2) public pure returns (bool) {
51
+ return !eq(s1, s2);
52
+ }
53
+
54
+ /// @dev converts the provided short string into a string.
55
+ /// uses ShortStrings.toString
56
+ function toString(Str str) public pure returns (string memory) {
57
+ return ShortStrings.toString(ShortString.wrap(Str.unwrap(str)));
58
+ }
59
+
60
+ /// @dev converts the provided short string into a string.
61
+ /// uses ShortStrings.byteLength
62
+ function length(Str str) public pure returns (uint256 byteLength) {
63
+ return ShortStrings.byteLength(ShortString.wrap(Str.unwrap(str)));
64
+ }
65
+
66
+ /// @dev Returns the provied int as a string
67
+ function uintToString(uint256 value) public pure returns (string memory name) {
68
+
69
+ if (value == 0) {
70
+ return "0";
71
+ }
72
+
73
+ uint256 temp = value;
74
+ uint256 digits = 0;
75
+ while (temp != 0) {
76
+ digits++;
77
+ temp /= 10;
78
+ }
79
+
80
+ bytes memory buffer = new bytes(digits);
81
+ uint256 index = digits - 1;
82
+
83
+ temp = value;
84
+ while (temp != 0) {
85
+ buffer[index] = bytes1(uint8(48 + temp % 10));
86
+ temp /= 10;
87
+
88
+ if (index > 0) {
89
+ index--;
90
+ }
91
+ }
92
+
93
+ return string(buffer);
94
+ }
95
+ }