@etherisc/gif-next 0.0.2-c34d8ab-035 → 0.0.2-c37b622-555

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (781) hide show
  1. package/README.md +211 -21
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -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 +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 +930 -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 +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 +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 +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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1085 -271
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +751 -139
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +584 -2763
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1999 -661
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +799 -216
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +413 -73
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  115. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  124. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  126. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  127. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  130. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  131. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  132. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  134. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  136. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  162. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  163. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IRiskService.sol/IRiskService.json} +353 -249
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  204. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  205. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +931 -154
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +409 -209
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  217. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  218. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  220. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/Registry.sol/Registry.json +1259 -258
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  223. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -323
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +384 -115
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  231. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  239. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  240. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +303 -164
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  260. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  262. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  264. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  265. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  266. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  268. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  269. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  270. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  272. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  273. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  274. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  275. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  277. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  288. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  289. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  350. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  382. package/contracts/accounting/AccountingService.sol +274 -0
  383. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  384. package/contracts/accounting/IAccountingService.sol +47 -0
  385. package/contracts/authorization/AccessAdmin.sol +780 -0
  386. package/contracts/authorization/AccessAdminLib.sol +396 -0
  387. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  388. package/contracts/authorization/Authorization.sol +169 -0
  389. package/contracts/authorization/IAccess.sol +67 -0
  390. package/contracts/authorization/IAccessAdmin.sol +144 -0
  391. package/contracts/authorization/IAuthorization.sol +26 -0
  392. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  393. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  394. package/contracts/distribution/BasicDistribution.sol +140 -0
  395. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  396. package/contracts/distribution/Distribution.sol +245 -0
  397. package/contracts/distribution/DistributionService.sol +448 -0
  398. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  399. package/contracts/distribution/IDistributionComponent.sol +45 -0
  400. package/contracts/distribution/IDistributionService.sol +115 -0
  401. package/contracts/examples/fire/DamageLevel.sol +59 -0
  402. package/contracts/examples/fire/FirePool.sol +86 -0
  403. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  404. package/contracts/examples/fire/FireProduct.sol +433 -0
  405. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  406. package/contracts/examples/fire/FireUSD.sol +26 -0
  407. package/contracts/examples/flight/FlightLib.sol +279 -0
  408. package/contracts/examples/flight/FlightOracle.sol +167 -0
  409. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  410. package/contracts/examples/flight/FlightPool.sol +89 -0
  411. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  412. package/contracts/examples/flight/FlightProduct.sol +470 -0
  413. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  414. package/contracts/examples/flight/FlightUSD.sol +26 -0
  415. package/contracts/examples/flight/originalV1.sol +396 -0
  416. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  417. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  418. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  419. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  420. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  421. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  422. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  423. package/contracts/instance/BaseStore.sol +93 -0
  424. package/contracts/instance/BundleSet.sol +130 -0
  425. package/contracts/instance/IBaseStore.sol +37 -0
  426. package/contracts/instance/IInstance.sol +144 -16
  427. package/contracts/instance/IInstanceService.sol +106 -17
  428. package/contracts/instance/Instance.sol +251 -342
  429. package/contracts/instance/InstanceAdmin.sol +379 -0
  430. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  431. package/contracts/instance/InstanceReader.sol +534 -190
  432. package/contracts/instance/InstanceService.sol +465 -89
  433. package/contracts/instance/InstanceServiceManager.sol +14 -31
  434. package/contracts/instance/InstanceStore.sol +323 -0
  435. package/contracts/instance/ProductStore.sol +290 -0
  436. package/contracts/instance/RiskSet.sol +126 -0
  437. package/contracts/instance/TargetNames.sol +10 -0
  438. package/contracts/instance/base/BalanceStore.sol +121 -0
  439. package/contracts/instance/base/Cloneable.sol +28 -0
  440. package/contracts/instance/base/ObjectCounter.sol +20 -0
  441. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  442. package/contracts/instance/base/ObjectSet.sol +77 -0
  443. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  444. package/contracts/instance/module/IBundle.sol +10 -8
  445. package/contracts/instance/module/IComponents.sol +60 -0
  446. package/contracts/instance/module/IDistribution.sol +25 -10
  447. package/contracts/instance/module/IPolicy.sol +81 -21
  448. package/contracts/instance/module/IRisk.sol +6 -1
  449. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  450. package/contracts/oracle/BasicOracle.sol +44 -0
  451. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  452. package/contracts/oracle/IOracle.sol +41 -0
  453. package/contracts/oracle/IOracleComponent.sol +33 -0
  454. package/contracts/oracle/IOracleService.sol +66 -0
  455. package/contracts/oracle/Oracle.sol +152 -0
  456. package/contracts/oracle/OracleService.sol +310 -0
  457. package/contracts/oracle/OracleServiceManager.sol +39 -0
  458. package/contracts/pool/BasicPool.sol +161 -0
  459. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  460. package/contracts/pool/BundleService.sol +386 -0
  461. package/contracts/pool/BundleServiceManager.sol +39 -0
  462. package/contracts/pool/IBundleService.sol +116 -0
  463. package/contracts/pool/IPoolComponent.sol +62 -0
  464. package/contracts/pool/IPoolService.sol +170 -0
  465. package/contracts/pool/Pool.sol +331 -0
  466. package/contracts/pool/PoolLib.sol +341 -0
  467. package/contracts/pool/PoolService.sol +614 -0
  468. package/contracts/pool/PoolServiceManager.sol +39 -0
  469. package/contracts/product/ApplicationService.sol +327 -0
  470. package/contracts/product/ApplicationServiceManager.sol +38 -0
  471. package/contracts/product/BasicProduct.sol +48 -0
  472. package/contracts/product/BasicProductAuthorization.sol +64 -0
  473. package/contracts/product/ClaimService.sol +626 -0
  474. package/contracts/product/ClaimServiceManager.sol +38 -0
  475. package/contracts/product/IApplicationService.sol +88 -0
  476. package/contracts/product/IClaimService.sol +136 -0
  477. package/contracts/product/IPolicyService.sol +102 -0
  478. package/contracts/product/IPricingService.sol +40 -0
  479. package/contracts/product/IProductComponent.sol +62 -0
  480. package/contracts/product/IRiskService.sol +48 -0
  481. package/contracts/product/PolicyService.sol +645 -0
  482. package/contracts/product/PolicyServiceLib.sol +139 -0
  483. package/contracts/product/PolicyServiceManager.sol +39 -0
  484. package/contracts/product/PricingService.sol +306 -0
  485. package/contracts/product/PricingServiceManager.sol +39 -0
  486. package/contracts/product/Product.sol +491 -0
  487. package/contracts/product/RiskService.sol +189 -0
  488. package/contracts/product/RiskServiceManager.sol +39 -0
  489. package/contracts/registry/ChainNft.sol +82 -35
  490. package/contracts/registry/IRegistry.sol +134 -20
  491. package/contracts/registry/IRegistryService.sol +44 -17
  492. package/contracts/registry/IRelease.sol +29 -0
  493. package/contracts/registry/ITransferInterceptor.sol +1 -1
  494. package/contracts/registry/Registry.sol +580 -267
  495. package/contracts/registry/RegistryAdmin.sol +191 -0
  496. package/contracts/registry/RegistryAuthorization.sol +336 -0
  497. package/contracts/registry/RegistryService.sol +123 -326
  498. package/contracts/registry/RegistryServiceManager.sol +27 -38
  499. package/contracts/registry/ReleaseAdmin.sol +195 -0
  500. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  501. package/contracts/registry/ReleaseRegistry.sol +525 -0
  502. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  503. package/contracts/registry/TokenRegistry.sol +317 -0
  504. package/contracts/shared/Component.sol +210 -0
  505. package/contracts/shared/ComponentService.sol +691 -0
  506. package/contracts/shared/ComponentServiceManager.sol +38 -0
  507. package/contracts/shared/ContractLib.sol +312 -0
  508. package/contracts/shared/IComponent.sol +58 -0
  509. package/contracts/shared/IComponentService.sol +111 -0
  510. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  511. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  512. package/contracts/shared/INftOwnable.sol +17 -12
  513. package/contracts/shared/IPolicyHolder.sol +35 -0
  514. package/contracts/shared/IRegisterable.sol +24 -5
  515. package/contracts/shared/IRegistryLinked.sol +11 -0
  516. package/contracts/shared/IService.sol +13 -5
  517. package/contracts/shared/InitializableERC165.sol +35 -0
  518. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  519. package/contracts/shared/Lifecycle.sol +88 -0
  520. package/contracts/shared/NftIdSet.sol +65 -0
  521. package/contracts/shared/NftOwnable.sol +77 -84
  522. package/contracts/shared/PolicyHolder.sol +63 -0
  523. package/contracts/shared/Registerable.sol +54 -37
  524. package/contracts/shared/RegistryLinked.sol +38 -0
  525. package/contracts/shared/Service.sol +46 -33
  526. package/contracts/shared/TokenHandler.sol +327 -12
  527. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  528. package/contracts/staking/IStaking.sol +367 -0
  529. package/contracts/staking/IStakingService.sol +127 -0
  530. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  531. package/contracts/staking/Staking.sol +797 -0
  532. package/contracts/staking/StakingLib.sol +195 -0
  533. package/contracts/staking/StakingManager.sol +53 -0
  534. package/contracts/staking/StakingReader.sol +171 -0
  535. package/contracts/staking/StakingService.sol +321 -0
  536. package/contracts/staking/StakingServiceManager.sol +46 -0
  537. package/contracts/staking/StakingStore.sol +1368 -0
  538. package/contracts/staking/TargetHandler.sol +132 -0
  539. package/contracts/staking/TargetManagerLib.sol +234 -0
  540. package/contracts/{types → type}/AddressSet.sol +1 -1
  541. package/contracts/type/Amount.sol +154 -0
  542. package/contracts/{types → type}/Blocknumber.sol +36 -12
  543. package/contracts/type/ChainId.sol +101 -0
  544. package/contracts/type/ClaimId.sol +80 -0
  545. package/contracts/{types → type}/DistributorType.sol +2 -2
  546. package/contracts/type/Fee.sol +66 -0
  547. package/contracts/{types → type}/Key32.sol +2 -2
  548. package/contracts/type/Key32Set.sol +62 -0
  549. package/contracts/{types → type}/NftId.sol +28 -15
  550. package/contracts/type/NftIdSet.sol +62 -0
  551. package/contracts/type/ObjectType.sol +278 -0
  552. package/contracts/type/PayoutId.sol +82 -0
  553. package/contracts/{types → type}/Referral.sol +12 -1
  554. package/contracts/type/RequestId.sol +75 -0
  555. package/contracts/type/RequestIdSet.sol +62 -0
  556. package/contracts/type/RiskId.sol +75 -0
  557. package/contracts/type/RoleId.sol +180 -0
  558. package/contracts/type/Seconds.sol +124 -0
  559. package/contracts/type/Selector.sol +107 -0
  560. package/contracts/{types → type}/StateId.sol +52 -4
  561. package/contracts/type/String.sol +95 -0
  562. package/contracts/{types → type}/Timestamp.sol +45 -20
  563. package/contracts/type/UFixed.sol +263 -0
  564. package/contracts/{types → type}/Version.sol +61 -6
  565. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  566. package/contracts/upgradeability/ProxyManager.sol +246 -0
  567. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  568. package/contracts/upgradeability/Versionable.sol +62 -0
  569. package/package.json +12 -8
  570. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  571. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
  572. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  573. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  574. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  575. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  576. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  577. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  578. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  579. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  580. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  581. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  582. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  583. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  584. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  585. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  586. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  588. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  589. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  590. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  592. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  594. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  596. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  598. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  600. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  601. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  602. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  603. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  604. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  605. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  606. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  607. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  608. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  609. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  610. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  611. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  613. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  614. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  615. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  616. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  617. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  618. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  619. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  620. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  621. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  622. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  623. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  624. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  625. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  626. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  627. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  628. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  629. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  630. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  631. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
  632. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  633. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  634. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  635. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  636. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  637. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  638. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  639. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  640. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  641. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  642. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  643. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  644. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  645. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  646. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  647. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  648. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  649. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  650. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  651. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  652. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  653. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  654. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  655. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  656. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  657. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  658. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  659. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  660. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  661. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  662. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  663. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  664. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  665. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  666. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  667. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  669. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  670. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  671. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  672. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  673. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  674. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  675. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  676. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  677. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  678. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  679. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  681. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  682. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  683. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  684. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  685. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  687. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  689. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  691. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  693. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  695. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  697. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  698. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  699. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  701. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  703. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  705. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  707. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  709. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  710. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  711. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  712. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  713. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  715. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  717. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  719. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  721. package/contracts/components/BaseComponent.sol +0 -86
  722. package/contracts/components/Distribution.sol +0 -166
  723. package/contracts/components/IBaseComponent.sol +0 -24
  724. package/contracts/components/IDistributionComponent.sol +0 -43
  725. package/contracts/components/IPoolComponent.sol +0 -62
  726. package/contracts/components/IProductComponent.sol +0 -35
  727. package/contracts/components/Pool.sol +0 -259
  728. package/contracts/components/Product.sol +0 -297
  729. package/contracts/experiment/cloning/Cloner.sol +0 -47
  730. package/contracts/experiment/errors/Require.sol +0 -38
  731. package/contracts/experiment/errors/Revert.sol +0 -44
  732. package/contracts/experiment/inheritance/A.sol +0 -53
  733. package/contracts/experiment/inheritance/B.sol +0 -28
  734. package/contracts/experiment/inheritance/C.sol +0 -34
  735. package/contracts/experiment/inheritance/IA.sol +0 -13
  736. package/contracts/experiment/inheritance/IB.sol +0 -10
  737. package/contracts/experiment/inheritance/IC.sol +0 -12
  738. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  739. package/contracts/experiment/statemachine/ISM.sol +0 -25
  740. package/contracts/experiment/statemachine/SM.sol +0 -57
  741. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  742. package/contracts/experiment/types/TypeA.sol +0 -47
  743. package/contracts/experiment/types/TypeB.sol +0 -29
  744. package/contracts/instance/AccessManagedSimple.sol +0 -122
  745. package/contracts/instance/AccessManagerSimple.sol +0 -692
  746. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  747. package/contracts/instance/InstanceAccessManager.sol +0 -288
  748. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  749. package/contracts/instance/base/IInstanceBase.sol +0 -23
  750. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  751. package/contracts/instance/base/KeyValueStore.sol +0 -172
  752. package/contracts/instance/base/Lifecycle.sol +0 -100
  753. package/contracts/instance/module/IAccess.sol +0 -38
  754. package/contracts/instance/module/ISetup.sol +0 -43
  755. package/contracts/instance/module/ITreasury.sol +0 -23
  756. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  757. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  758. package/contracts/instance/service/IDistributionService.sol +0 -12
  759. package/contracts/instance/service/IPoolService.sol +0 -37
  760. package/contracts/instance/service/IProductService.sol +0 -107
  761. package/contracts/shared/ContractDeployerLib.sol +0 -72
  762. package/contracts/shared/ERC165.sol +0 -21
  763. package/contracts/shared/ProxyManager.sol +0 -94
  764. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  765. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  766. package/contracts/shared/Versionable.sol +0 -147
  767. package/contracts/test/TestFee.sol +0 -25
  768. package/contracts/test/TestRegisterable.sol +0 -18
  769. package/contracts/test/TestRoleId.sol +0 -14
  770. package/contracts/test/TestService.sol +0 -24
  771. package/contracts/test/TestToken.sol +0 -26
  772. package/contracts/test/TestVersion.sol +0 -44
  773. package/contracts/test/TestVersionable.sol +0 -17
  774. package/contracts/types/ChainId.sol +0 -38
  775. package/contracts/types/Fee.sol +0 -56
  776. package/contracts/types/NftIdSet.sol +0 -60
  777. package/contracts/types/NumberId.sol +0 -52
  778. package/contracts/types/ObjectType.sol +0 -152
  779. package/contracts/types/RiskId.sol +0 -43
  780. package/contracts/types/RoleId.sol +0 -82
  781. package/contracts/types/UFixed.sol +0 -325
@@ -1,45 +1,105 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
5
- import {NumberId} from "../../types/NumberId.sol";
6
- import {ReferralId} from "../../types/Referral.sol";
7
- import {RiskId} from "../../types/RiskId.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {ReferralId} from "../../type/Referral.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+ import {Seconds} from "../../type/Seconds.sol";
10
+ import {Timestamp} from "../../type/Timestamp.sol";
9
11
 
10
12
  interface IPolicy {
13
+
14
+ struct PremiumInfo {
15
+ // slot 0
16
+ // premium splitting per target wallet
17
+ Amount productFeeAmount;
18
+ Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
20
+ Amount poolPremiumAndFeeAmount;
21
+
22
+ // detailed positions
23
+ // this is the net premium calculated by the product
24
+ Amount netPremiumAmount;
25
+ // slot 2
26
+ // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
27
+ Amount fullPremiumAmount;
28
+ // effective premium = fullPremium - discount
29
+ Amount premiumAmount;
30
+ // slot 3
31
+ Amount productFeeFixAmount;
32
+ Amount poolFeeFixAmount;
33
+ // slot 4
34
+ Amount bundleFeeFixAmount;
35
+ Amount distributionFeeFixAmount;
36
+ // slot 5
37
+ Amount productFeeVarAmount;
38
+ Amount poolFeeVarAmount;
39
+ // slot 6
40
+ Amount bundleFeeVarAmount;
41
+ Amount distributionFeeVarAmount;
42
+ // slot 7
43
+ Amount distributionOwnerFeeFixAmount;
44
+ // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
47
+ // this value is based on distributor type referenced in the referral
48
+ Amount commissionAmount;
49
+ // this is based on referral used
50
+ Amount discountAmount;
51
+ }
52
+
53
+ /// @dev policy data for the full policy lifecycle
11
54
  struct PolicyInfo {
55
+ // slot 0
12
56
  NftId productNftId;
13
57
  NftId bundleNftId;
14
- ReferralId referralId;
15
58
  RiskId riskId;
16
- uint256 sumInsuredAmount;
17
- uint256 premiumAmount;
18
- uint256 premiumPaidAmount;
19
- uint256 lifetime;
20
- bytes applicationData;
21
- bytes policyData;
59
+ // slot 1
60
+ Amount sumInsuredAmount;
61
+ Amount premiumAmount; // expected premium at application time
62
+ ReferralId referralId;
63
+ // slot 2
22
64
  uint16 claimsCount;
23
65
  uint16 openClaimsCount;
24
- uint256 payoutAmount;
66
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
67
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
25
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
26
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
27
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
28
77
  }
29
78
 
30
79
  // claimId neeeds to be encoded policyNftId:claimId combination
31
80
  struct ClaimInfo {
32
- uint256 claimAmount;
33
- uint256 paidAmount;
34
- bytes data;
35
- Timestamp closedAt; // payoment of confirmed claim amount (or declinedAt)
81
+ // slot 0
82
+ Amount claimAmount;
83
+ Amount paidAmount;
84
+ Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
85
+ uint24 payoutsCount;
86
+ // slot 1
87
+ uint24 openPayoutsCount;
88
+ // slot 2
89
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
90
+ // slot 3
91
+ bytes processData; // use case specific data that may include information supporting confirm or decline
36
92
  }
37
93
 
38
94
  // claimId neeeds to be encoded policyNftId:claimId combination
39
95
  struct PayoutInfo {
40
- NumberId claimId;
41
- uint256 amount;
42
- bytes data;
43
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
96
+ // slot 0
97
+ ClaimId claimId;
98
+ Amount amount;
99
+ Timestamp paidAt; // timestamp for actual payout
100
+ // slot 1
101
+ address beneficiary; // for address(0) beneficiary is policy nft owner
102
+ // slot 2
103
+ bytes data; // use case specific supporting data
44
104
  }
45
105
  }
@@ -1,11 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
4
+ import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
- contract USDC is ERC20 {
6
+ contract Dip is ERC20 {
7
7
 
8
8
  // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
12
  uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
13
  // decimals == 18 (openzeppelin erc20 default)
14
14
  constructor()
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../contracts/authorization/IAuthorization.sol";
5
+ import {NftId} from "../../contracts/type/NftId.sol";
6
+ import {Oracle} from "../../contracts/oracle/Oracle.sol";
7
+ import {RequestId} from "../../contracts/type/RequestId.sol";
8
+
9
+ contract BasicOracle is
10
+ Oracle
11
+ {
12
+
13
+ /// Function to provide reponse data releated to request id.
14
+ function respond(
15
+ RequestId requestId,
16
+ bytes memory responseData
17
+ )
18
+ external
19
+ virtual
20
+ restricted()
21
+ {
22
+ _respond(requestId, responseData);
23
+ }
24
+
25
+ function _initializeBasicOracle(
26
+ address registry,
27
+ NftId instanceNftId,
28
+ IAuthorization authorization,
29
+ address initialOwner,
30
+ string memory name
31
+ )
32
+ internal
33
+ virtual
34
+ onlyInitializing()
35
+ {
36
+
37
+ __Oracle_init(
38
+ registry,
39
+ instanceNftId,
40
+ authorization,
41
+ initialOwner,
42
+ name);
43
+ }
44
+ }
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicOracle} from "./BasicOracle.sol";
6
+ import {ORACLE} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IOracle} from "./IOracle.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicOracleAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(
18
+ string memory componentName
19
+ )
20
+ Authorization(
21
+ componentName,
22
+ ORACLE(),
23
+ 3,
24
+ COMMIT_HASH,
25
+ true,
26
+ false)
27
+ {}
28
+
29
+ function _setupServiceTargets()
30
+ internal
31
+ virtual override
32
+ {
33
+ _authorizeServiceDomain(ORACLE(), address(15));
34
+ }
35
+
36
+ function _setupTargetAuthorizations()
37
+ internal
38
+ virtual override
39
+ {
40
+ IAccess.FunctionInfo[] storage functions;
41
+
42
+ // authorize public role (open access to any account, only allows to lock target)
43
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
44
+ _authorize(functions, IOracle.request.selector, "request");
45
+ _authorize(functions, IOracle.cancel.selector, "cancel");
46
+
47
+ // authorize public role (open access to any account, only allows to lock target)
48
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
49
+ _authorize(functions, BasicOracle.respond.selector, "respond");
50
+ }
51
+ }
52
+
@@ -0,0 +1,41 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
6
+ import {Timestamp} from "../type/Timestamp.sol";
7
+
8
+
9
+ interface IOracle {
10
+
11
+ struct RequestInfo {
12
+ // slot 0
13
+ NftId requesterNftId; // originator of the request
14
+ NftId oracleNftId; // responsible oracle component
15
+ bool isCancelled;
16
+ Timestamp respondedAt; // response timestamp
17
+ // slot 1
18
+ Timestamp expiredAt; // expiry timestamp
19
+ // slot 2
20
+ string callbackMethodName; // callback function of the requestor to call to provide response data
21
+ // slot 3
22
+ bytes requestData;
23
+ // slot 4
24
+ bytes responseData;
25
+ }
26
+
27
+
28
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
29
+ function request(
30
+ RequestId requestId,
31
+ NftId requesterId,
32
+ bytes calldata requestData,
33
+ Timestamp expiryAt
34
+ ) external;
35
+
36
+
37
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
38
+ function cancel(
39
+ RequestId requestId
40
+ ) external;
41
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {RequestId} from "../type/RequestId.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IOracleComponent is IInstanceLinkedComponent {
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
16
+ /// @dev callback method for requesting some data from the oracle
17
+ function request(
18
+ RequestId requestId,
19
+ NftId requesterNftId,
20
+ bytes calldata requestData,
21
+ Timestamp expiryAt
22
+ ) external;
23
+
24
+
25
+ /// @dev callback method for cancelling the specified oracle request
26
+ function cancel(
27
+ RequestId requestId
28
+ ) external;
29
+
30
+
31
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
32
+ function isVerifying() external view returns (bool verifying);
33
+ }
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RequestId} from "../type/RequestId.sol";
8
+ import {StateId} from "../type/StateId.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+
11
+
12
+ interface IOracleService is IService {
13
+
14
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
15
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
16
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
17
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
18
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
19
+
20
+ // create request
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
22
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
23
+ error ErrorOracleServiceCallbackMethodNameEmpty();
24
+
25
+ // respond
26
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
27
+
28
+ // get request info
29
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
30
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
31
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
32
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
33
+
34
+ /// @dev send an oracle request to the specified oracle component.
35
+ /// the function returns the id of the newly created request.
36
+ /// permissioned: only registered components may send requests to oracles.
37
+ function request(
38
+ NftId oracleNftId,
39
+ bytes calldata requestData,
40
+ Timestamp expiryAt,
41
+ string calldata callbackMethodName
42
+ ) external returns (RequestId requestId);
43
+
44
+ /// @dev Respond to oracle request by oracle compnent.
45
+ /// The response data is amended in the request info stored with the instance.
46
+ /// The request state changes to FULFILLED (when calling the callback method of the requester is successful)
47
+ /// or to FAILED when calling the requester is not succesful.
48
+ /// The function returns true iff the state changes to FULFILLED.
49
+ /// Permissioned: only the receiving oracle component may call this method
50
+ function respond(
51
+ RequestId requestId,
52
+ bytes calldata responseData
53
+ ) external returns (bool success);
54
+
55
+ /// @dev Resend a failed response to the requester.
56
+ /// Only requests in state FAILED may be resent.
57
+ /// The request state changes to FULFILLED when calling the callback method of the requester is successful.
58
+ /// Permissioned: only the receiving oracle may resend a request
59
+ function resend(RequestId requestId) external;
60
+
61
+ /// @dev Notify the oracle component that the specified request has become invalid.
62
+ /// Only requests in state ACTIVE may be cancelled.
63
+ /// Permissioned: only the requester may cancel a request
64
+ function cancel(RequestId requestId) external;
65
+
66
+ }
@@ -0,0 +1,152 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {IOracleComponent} from "./IOracleComponent.sol";
10
+ import {IOracleService} from "./IOracleService.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {RequestId} from "../type/RequestId.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
15
+
16
+
17
+ abstract contract Oracle is
18
+ InstanceLinkedComponent,
19
+ IOracleComponent
20
+ {
21
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Oracle")) - 1)) & ~bytes32(uint256(0xff));
22
+ bytes32 public constant ORACLE_STORAGE_LOCATION_V1 = 0xaab7c0ea03d290e56d6c060e0733d3ebcbe647f7694616a2ec52738a64b2f900;
23
+
24
+ struct OracleStorage {
25
+ IComponentService _componentService;
26
+ IOracleService _oracleService;
27
+ }
28
+
29
+
30
+ function request(
31
+ RequestId requestId,
32
+ NftId requesterId,
33
+ bytes calldata requestData,
34
+ Timestamp expiryAt
35
+ )
36
+ external
37
+ virtual
38
+ restricted()
39
+ {
40
+ _request(requestId, requesterId, requestData, expiryAt);
41
+ }
42
+
43
+
44
+ function cancel(
45
+ RequestId requestId
46
+ )
47
+ external
48
+ virtual
49
+ restricted()
50
+ {
51
+ _cancel(requestId);
52
+ }
53
+
54
+
55
+ /// @dev Not relevant for oracle components, always returns false.
56
+ function isVerifying()
57
+ external
58
+ virtual
59
+ view
60
+ returns (bool verifying)
61
+ {
62
+ return false;
63
+ }
64
+
65
+ /// @dev Not relevant for oracle components
66
+ function withdrawFees(Amount amount)
67
+ external
68
+ virtual
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
+ onlyOwner()
71
+ restricted()
72
+ returns (Amount)
73
+ {
74
+ revert ErrorOracleNotImplemented("withdrawFees");
75
+ }
76
+
77
+
78
+ function __Oracle_init(
79
+ address registry,
80
+ NftId productNftId,
81
+ IAuthorization authorization,
82
+ address initialOwner,
83
+ string memory name
84
+ )
85
+ internal
86
+ virtual
87
+ onlyInitializing()
88
+ {
89
+ __InstanceLinkedComponent_init(
90
+ registry,
91
+ productNftId,
92
+ name,
93
+ ORACLE(),
94
+ authorization,
95
+ true,
96
+ initialOwner);
97
+
98
+ OracleStorage storage $ = _getOracleStorage();
99
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
100
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
101
+
102
+ _registerInterface(type(IOracleComponent).interfaceId);
103
+ }
104
+
105
+
106
+ /// @dev Internal function for handling requests.
107
+ /// Empty implementation.
108
+ /// Overwrite this function to implement use case specific handling for oracle calls.
109
+ function _request(
110
+ RequestId requestId,
111
+ NftId requesterId,
112
+ bytes calldata requestData,
113
+ Timestamp expiryAt
114
+ )
115
+ internal
116
+ virtual
117
+ {
118
+ }
119
+
120
+
121
+ /// @dev Internal function for cancelling requests.
122
+ /// Empty implementation.
123
+ /// Overwrite this function to implement use case specific cancelling.
124
+ function _cancel(
125
+ RequestId requestId
126
+ )
127
+ internal
128
+ virtual
129
+ {
130
+ }
131
+
132
+
133
+ /// @dev Internal function for handling oracle responses.
134
+ /// Default implementation sends response back to oracle service.
135
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
136
+ function _respond(
137
+ RequestId requestId,
138
+ bytes memory responseData
139
+ )
140
+ internal
141
+ virtual
142
+ {
143
+ _getOracleStorage()._oracleService.respond(
144
+ requestId, responseData);
145
+ }
146
+
147
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
148
+ assembly {
149
+ $.slot := ORACLE_STORAGE_LOCATION_V1
150
+ }
151
+ }
152
+ }