@etherisc/gif-next 0.0.2-b1fb5f9 → 0.0.2-b2070b1-995

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 (696) hide show
  1. package/README.md +477 -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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2609 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  82. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +722 -449
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1092 -0
  92. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/Instance.sol/Instance.json +800 -530
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2740 -0
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1338 -0
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3378 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  112. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  123. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  125. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  126. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  127. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  128. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  129. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  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 +957 -0
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -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 +772 -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 +873 -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 +810 -0
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -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 +866 -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 +905 -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 +1025 -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 +866 -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 +790 -0
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -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 +886 -0
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  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 +1016 -0
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  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 +854 -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 +814 -0
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  207. package/artifacts/contracts/product/Product.sol/Product.json +1117 -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 +774 -0
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  220. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -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 +1389 -0
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  243. package/artifacts/contracts/shared/Component.sol/Component.json +705 -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 +862 -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/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  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/shared/IComponent.sol/IComponent.json +630 -0
  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 +707 -0
  262. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  263. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +547 -0
  264. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  266. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  268. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  270. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  271. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  272. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  274. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  275. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  276. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  277. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  278. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  279. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  280. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  281. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +575 -0
  282. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  284. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  285. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  286. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  287. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  288. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  289. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  290. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  291. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  292. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  293. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  294. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  295. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  296. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  297. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  298. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  299. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  300. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  301. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  302. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  303. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  304. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  305. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  306. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  307. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  308. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  309. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  310. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  312. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  314. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  316. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  317. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  318. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  319. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  320. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  321. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  322. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  323. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  324. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  325. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  326. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  328. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  330. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  332. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  334. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  336. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  338. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  340. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  342. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  343. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  344. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  346. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  347. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  348. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  350. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  352. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  354. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  356. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  357. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  358. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  360. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  362. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  364. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  366. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  368. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  370. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  372. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  374. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  375. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  376. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  377. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  378. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  379. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  380. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  382. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  384. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  385. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  386. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  387. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  388. package/contracts/accounting/AccountingService.sol +274 -0
  389. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  390. package/contracts/accounting/IAccountingService.sol +47 -0
  391. package/contracts/authorization/AccessAdmin.sol +780 -0
  392. package/contracts/authorization/AccessAdminLib.sol +396 -0
  393. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  394. package/contracts/authorization/Authorization.sol +169 -0
  395. package/contracts/authorization/IAccess.sol +67 -0
  396. package/contracts/authorization/IAccessAdmin.sol +144 -0
  397. package/contracts/authorization/IAuthorization.sol +26 -0
  398. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  399. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  400. package/contracts/distribution/BasicDistribution.sol +141 -0
  401. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  402. package/contracts/distribution/Distribution.sol +247 -0
  403. package/contracts/distribution/DistributionService.sol +448 -0
  404. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  405. package/contracts/distribution/IDistributionComponent.sol +45 -0
  406. package/contracts/distribution/IDistributionService.sol +115 -0
  407. package/contracts/examples/fire/DamageLevel.sol +59 -0
  408. package/contracts/examples/fire/FirePool.sol +86 -0
  409. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  410. package/contracts/examples/fire/FireProduct.sol +433 -0
  411. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  412. package/contracts/examples/fire/FireUSD.sol +26 -0
  413. package/contracts/examples/flight/FlightOracle.sol +167 -0
  414. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  415. package/contracts/examples/flight/FlightPool.sol +89 -0
  416. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  417. package/contracts/examples/flight/FlightProduct.sol +728 -0
  418. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  419. package/contracts/examples/flight/FlightUSD.sol +26 -0
  420. package/contracts/examples/flight/originalV1.sol +396 -0
  421. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  422. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  423. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  424. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  425. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  426. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  427. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  428. package/contracts/instance/BaseStore.sol +93 -0
  429. package/contracts/instance/BundleSet.sol +130 -0
  430. package/contracts/instance/IBaseStore.sol +37 -0
  431. package/contracts/instance/IInstance.sol +155 -17
  432. package/contracts/instance/IInstanceService.sol +119 -0
  433. package/contracts/instance/Instance.sol +335 -48
  434. package/contracts/instance/InstanceAdmin.sol +379 -0
  435. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  436. package/contracts/instance/InstanceReader.sol +656 -0
  437. package/contracts/instance/InstanceService.sol +514 -0
  438. package/contracts/instance/InstanceServiceManager.sol +39 -0
  439. package/contracts/instance/InstanceStore.sol +268 -0
  440. package/contracts/instance/ProductStore.sol +119 -0
  441. package/contracts/instance/RiskSet.sol +126 -0
  442. package/contracts/instance/TargetNames.sol +10 -0
  443. package/contracts/instance/base/BalanceStore.sol +121 -0
  444. package/contracts/instance/base/Cloneable.sol +28 -0
  445. package/contracts/instance/base/ObjectCounter.sol +20 -0
  446. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  447. package/contracts/instance/base/ObjectSet.sol +77 -0
  448. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  449. package/contracts/instance/module/IBundle.sol +21 -0
  450. package/contracts/instance/module/IComponents.sol +62 -0
  451. package/contracts/instance/module/IDistribution.sol +54 -0
  452. package/contracts/instance/module/IPolicy.sol +105 -0
  453. package/contracts/instance/module/IRisk.sol +16 -0
  454. package/contracts/mock/Dip.sol +26 -0
  455. package/contracts/oracle/BasicOracle.sol +45 -0
  456. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  457. package/contracts/oracle/IOracle.sol +41 -0
  458. package/contracts/oracle/IOracleComponent.sol +33 -0
  459. package/contracts/oracle/IOracleService.sol +66 -0
  460. package/contracts/oracle/Oracle.sol +154 -0
  461. package/contracts/oracle/OracleService.sol +310 -0
  462. package/contracts/oracle/OracleServiceManager.sol +39 -0
  463. package/contracts/pool/BasicPool.sol +162 -0
  464. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  465. package/contracts/pool/BundleService.sol +386 -0
  466. package/contracts/pool/BundleServiceManager.sol +39 -0
  467. package/contracts/pool/IBundleService.sol +116 -0
  468. package/contracts/pool/IPoolComponent.sol +62 -0
  469. package/contracts/pool/IPoolService.sol +170 -0
  470. package/contracts/pool/Pool.sol +333 -0
  471. package/contracts/pool/PoolLib.sol +341 -0
  472. package/contracts/pool/PoolService.sol +614 -0
  473. package/contracts/pool/PoolServiceManager.sol +39 -0
  474. package/contracts/product/ApplicationService.sol +327 -0
  475. package/contracts/product/ApplicationServiceManager.sol +38 -0
  476. package/contracts/product/BasicProduct.sol +49 -0
  477. package/contracts/product/BasicProductAuthorization.sol +64 -0
  478. package/contracts/product/ClaimService.sol +626 -0
  479. package/contracts/product/ClaimServiceManager.sol +38 -0
  480. package/contracts/product/IApplicationService.sol +88 -0
  481. package/contracts/product/IClaimService.sol +136 -0
  482. package/contracts/product/IPolicyService.sol +102 -0
  483. package/contracts/product/IPricingService.sol +40 -0
  484. package/contracts/product/IProductComponent.sol +62 -0
  485. package/contracts/product/IRiskService.sol +48 -0
  486. package/contracts/product/PolicyService.sol +645 -0
  487. package/contracts/product/PolicyServiceLib.sol +139 -0
  488. package/contracts/product/PolicyServiceManager.sol +39 -0
  489. package/contracts/product/PricingService.sol +306 -0
  490. package/contracts/product/PricingServiceManager.sol +39 -0
  491. package/contracts/product/Product.sol +493 -0
  492. package/contracts/product/RiskService.sol +190 -0
  493. package/contracts/product/RiskServiceManager.sol +39 -0
  494. package/contracts/registry/ChainNft.sol +175 -61
  495. package/contracts/registry/IRegistry.sol +143 -51
  496. package/contracts/registry/IRegistryService.sol +62 -0
  497. package/contracts/registry/IRelease.sol +29 -0
  498. package/contracts/registry/ITransferInterceptor.sol +6 -0
  499. package/contracts/registry/Registry.sol +667 -140
  500. package/contracts/registry/RegistryAdmin.sol +191 -0
  501. package/contracts/registry/RegistryAuthorization.sol +336 -0
  502. package/contracts/registry/RegistryService.sol +241 -0
  503. package/contracts/registry/RegistryServiceManager.sol +53 -0
  504. package/contracts/registry/ReleaseAdmin.sol +195 -0
  505. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  506. package/contracts/registry/ReleaseRegistry.sol +525 -0
  507. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  508. package/contracts/registry/TokenRegistry.sol +317 -0
  509. package/contracts/shared/Component.sol +214 -0
  510. package/contracts/shared/ComponentService.sol +687 -0
  511. package/contracts/shared/ComponentServiceManager.sol +38 -0
  512. package/contracts/shared/ContractLib.sol +312 -0
  513. package/contracts/shared/IComponent.sol +58 -0
  514. package/contracts/shared/IComponentService.sol +111 -0
  515. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  516. package/contracts/shared/IKeyValueStore.sol +62 -0
  517. package/contracts/shared/ILifecycle.sol +31 -0
  518. package/contracts/shared/INftOwnable.sol +27 -0
  519. package/contracts/shared/IPolicyHolder.sol +35 -0
  520. package/contracts/shared/IRegisterable.sol +36 -0
  521. package/contracts/shared/IRegistryLinked.sol +11 -0
  522. package/contracts/shared/IService.sol +23 -0
  523. package/contracts/shared/InitializableERC165.sol +35 -0
  524. package/contracts/shared/InstanceLinkedComponent.sol +234 -0
  525. package/contracts/shared/KeyValueStore.sol +131 -0
  526. package/contracts/shared/Lifecycle.sol +88 -0
  527. package/contracts/shared/NftIdSet.sol +65 -0
  528. package/contracts/shared/NftOwnable.sol +129 -0
  529. package/contracts/shared/PolicyHolder.sol +63 -0
  530. package/contracts/shared/Registerable.sol +106 -0
  531. package/contracts/shared/RegistryLinked.sol +38 -0
  532. package/contracts/shared/Service.sol +67 -0
  533. package/contracts/shared/TokenHandler.sol +342 -0
  534. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  535. package/contracts/staking/IStaking.sol +367 -0
  536. package/contracts/staking/IStakingService.sol +127 -0
  537. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  538. package/contracts/staking/Staking.sol +798 -0
  539. package/contracts/staking/StakingLib.sol +195 -0
  540. package/contracts/staking/StakingManager.sol +53 -0
  541. package/contracts/staking/StakingReader.sol +171 -0
  542. package/contracts/staking/StakingService.sol +321 -0
  543. package/contracts/staking/StakingServiceManager.sol +46 -0
  544. package/contracts/staking/StakingStore.sol +1368 -0
  545. package/contracts/staking/TargetHandler.sol +132 -0
  546. package/contracts/staking/TargetManagerLib.sol +234 -0
  547. package/contracts/type/AddressSet.sol +58 -0
  548. package/contracts/type/Amount.sol +154 -0
  549. package/contracts/{types → type}/Blocknumber.sol +36 -12
  550. package/contracts/type/ChainId.sol +101 -0
  551. package/contracts/type/ClaimId.sol +80 -0
  552. package/contracts/type/DistributorType.sol +55 -0
  553. package/contracts/type/Fee.sol +66 -0
  554. package/contracts/type/Key32.sol +50 -0
  555. package/contracts/type/Key32Set.sol +62 -0
  556. package/contracts/type/NftId.sol +85 -0
  557. package/contracts/type/NftIdSet.sol +62 -0
  558. package/contracts/type/ObjectType.sol +278 -0
  559. package/contracts/type/PayoutId.sol +82 -0
  560. package/contracts/type/Referral.sol +96 -0
  561. package/contracts/type/RequestId.sol +75 -0
  562. package/contracts/type/RequestIdSet.sol +62 -0
  563. package/contracts/type/RiskId.sol +75 -0
  564. package/contracts/type/RoleId.sol +180 -0
  565. package/contracts/type/Seconds.sol +124 -0
  566. package/contracts/type/Selector.sol +107 -0
  567. package/contracts/type/StateId.sol +149 -0
  568. package/contracts/type/String.sol +95 -0
  569. package/contracts/{types → type}/Timestamp.sol +62 -12
  570. package/contracts/{types → type}/UFixed.sol +97 -39
  571. package/contracts/type/Version.sol +159 -0
  572. package/contracts/upgradeability/IVersionable.sol +56 -0
  573. package/contracts/upgradeability/ProxyManager.sol +246 -0
  574. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  575. package/contracts/upgradeability/Versionable.sol +62 -0
  576. package/package.json +22 -7
  577. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  578. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  579. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  580. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  581. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  582. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  583. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  584. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  585. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  586. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  587. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  588. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  589. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  591. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  592. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  593. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  594. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  595. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  596. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  597. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  598. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  599. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  600. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  601. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  602. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  603. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  604. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  605. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  606. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  607. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  608. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  609. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  610. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  611. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  613. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  615. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  616. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  617. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  618. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  619. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  620. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  621. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  622. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  624. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  625. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  626. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  627. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  628. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  629. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  631. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  632. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  633. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  634. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  635. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  636. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  637. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  638. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  639. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  640. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  641. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  642. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  643. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  644. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  645. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  646. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  647. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  648. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  649. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  650. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  651. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  652. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  653. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  654. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  655. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  656. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  657. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  658. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  659. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  661. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  663. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  665. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  667. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  669. package/contracts/components/Component.sol +0 -60
  670. package/contracts/components/IPool.sol +0 -9
  671. package/contracts/components/IProduct.sol +0 -9
  672. package/contracts/components/Pool.sol +0 -22
  673. package/contracts/components/Product.sol +0 -55
  674. package/contracts/experiment/errors/Require.sol +0 -38
  675. package/contracts/experiment/errors/Revert.sol +0 -44
  676. package/contracts/experiment/inheritance/A.sol +0 -53
  677. package/contracts/experiment/inheritance/B.sol +0 -28
  678. package/contracts/experiment/inheritance/C.sol +0 -34
  679. package/contracts/experiment/inheritance/IA.sol +0 -13
  680. package/contracts/experiment/inheritance/IB.sol +0 -10
  681. package/contracts/experiment/inheritance/IC.sol +0 -12
  682. package/contracts/experiment/types/TypeA.sol +0 -47
  683. package/contracts/experiment/types/TypeB.sol +0 -29
  684. package/contracts/instance/access/Access.sol +0 -165
  685. package/contracts/instance/access/IAccess.sol +0 -63
  686. package/contracts/instance/component/ComponentModule.sol +0 -213
  687. package/contracts/instance/component/IComponent.sol +0 -73
  688. package/contracts/instance/policy/IPolicy.sol +0 -51
  689. package/contracts/instance/policy/PolicyModule.sol +0 -91
  690. package/contracts/instance/pool/IPoolModule.sol +0 -29
  691. package/contracts/instance/pool/PoolModule.sol +0 -73
  692. package/contracts/instance/product/IProductService.sol +0 -36
  693. package/contracts/instance/product/ProductService.sol +0 -112
  694. package/contracts/registry/IChainNft.sol +0 -21
  695. package/contracts/types/ChainId.sol +0 -38
  696. package/contracts/types/NftId.sol +0 -51
@@ -0,0 +1,35 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+ import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {ClaimId} from "../type/ClaimId.sol";
9
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {PayoutId} from "../type/PayoutId.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+
14
+ /// @dev Generic interface for contracts that need to hold policies and receive payouts.
15
+ /// The framework notifies policy holder contracts for policy creation/expiry, claim confirmation and payout execution
16
+ interface IPolicyHolder is
17
+ IERC165,
18
+ IERC721Receiver,
19
+ IRegistryLinked
20
+ {
21
+
22
+ /// @dev Callback function that will be called after successful policy activation.
23
+ /// Active policies may open claims under the activated policy.
24
+ function policyActivated(NftId policyNftId, Timestamp activatedAt) external;
25
+
26
+ /// @dev Callback function to indicate the specified policy has expired.
27
+ /// expired policies no longer accept new claims.
28
+ function policyExpired(NftId policyNftId, Timestamp expiredAt) external;
29
+
30
+ /// @dev Callback function to notify the confirmation of the specified claim.
31
+ function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external;
32
+
33
+ /// @dev Callback function to notify the successful payout.
34
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external;
35
+ }
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {INftOwnable} from "./INftOwnable.sol";
7
+ import {IRelease} from "../registry/IRelease.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+
10
+ /// @title IRegisterable
11
+ /// @dev Marks contracts that are intended to be registered in the registry.
12
+ ///
13
+ interface IRegisterable is
14
+ IAccessManaged,
15
+ INftOwnable,
16
+ IRelease
17
+ {
18
+ // __Registerable_init
19
+ error ErrorAuthorityInvalid(address authority);
20
+
21
+ // onlyActive()
22
+ error ErrorRegisterableNotActive();
23
+
24
+ /// @dev Returns true iff this contract managed by its authority is active.
25
+ /// Queries the IAccessManaged.authority().
26
+ function isActive() external view returns (bool active);
27
+
28
+ /// @dev retuns the object info relevant for registering for this contract
29
+ /// IMPORTANT information returned by this function may only be used
30
+ /// before the contract is registered in the registry.
31
+ /// Once registered this information MUST only be accessed via the registry.
32
+ function getInitialInfo()
33
+ external
34
+ view
35
+ returns (IRegistry.ObjectInfo memory);
36
+ }
@@ -0,0 +1,11 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+
6
+ interface IRegistryLinked {
7
+
8
+ error ErrorNotRegistry(address registryAddress);
9
+
10
+ function getRegistry() external view returns (IRegistry);
11
+ }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {IRegisterable} from "./IRegisterable.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+
11
+ interface IService is
12
+ IAccessManaged,
13
+ IRegisterable,
14
+ IVersionable
15
+ {
16
+ /// @dev returns the domain for this service.
17
+ /// In any GIF release only one service for any given domain may be deployed.
18
+ function getDomain() external pure returns(ObjectType serviceDomain);
19
+
20
+ /// @dev returns the GIF release specific role id.
21
+ /// These role ids are used to authorize service to service communication.
22
+ function getRoleId() external view returns(RoleId serviceRoleId);
23
+ }
@@ -0,0 +1,35 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
6
+
7
+ contract InitializableERC165 is
8
+ Initializable,
9
+ IERC165
10
+ {
11
+ mapping(bytes4 => bool) private _isSupported;
12
+
13
+ // @dev initializes with support for ERC165
14
+ function __ERC165_init() internal onlyInitializing() {
15
+ _initializeERC165();
16
+ }
17
+
18
+ function _initializeERC165() internal {
19
+ _isSupported[type(IERC165).interfaceId] = true;
20
+ }
21
+
22
+ // @dev register support for provided interfaceId
23
+ // includes initialization for ERC165_ID if not yet done
24
+ function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
25
+ _registerInterfaceNotInitializing(interfaceId);
26
+ }
27
+
28
+ function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
29
+ _isSupported[interfaceId] = true;
30
+ }
31
+
32
+ function supportsInterface(bytes4 interfaceId) external view override returns (bool) {
33
+ return _isSupported[interfaceId];
34
+ }
35
+ }
@@ -0,0 +1,234 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IComponentService} from "./IComponentService.sol";
7
+ import {IInstance} from "../instance/IInstance.sol";
8
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
9
+ import {IInstanceService} from "../instance/IInstanceService.sol";
10
+ import {IOracleService} from "../oracle/IOracleService.sol";
11
+
12
+ import {Amount} from "../type/Amount.sol";
13
+ import {Component} from "./Component.sol";
14
+ import {InstanceReader} from "../instance/InstanceReader.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
18
+ import {RequestId} from "../type/RequestId.sol";
19
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
20
+ import {TokenHandler} from "../shared/TokenHandler.sol";
21
+ import {Timestamp} from "../type/Timestamp.sol";
22
+ import {VersionPart} from "../type/Version.sol";
23
+
24
+ // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
25
+ // same pattern as for Service which is also upgradeable
26
+ abstract contract InstanceLinkedComponent is
27
+ Component,
28
+ IInstanceLinkedComponent
29
+ {
30
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
31
+ bytes32 public constant INSTANCE_LINKED_COMPONENT_LOCATION_V1 = 0xffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00;
32
+
33
+ struct InstanceLinkedComponentStorage {
34
+ IInstance _instance; // instance for this component
35
+ InstanceReader _instanceReader; // instance reader for this component
36
+ IAuthorization _initialAuthorization;
37
+ IComponentService _componentService;
38
+ IOracleService _oracleService;
39
+ }
40
+
41
+ //--- view functions ----------------------------------------------------//
42
+
43
+ /// @inheritdoc IInstanceLinkedComponent
44
+ function getInstance() public view virtual override returns (IInstance instance) {
45
+ return _getInstanceLinkedComponentStorage()._instance;
46
+ }
47
+
48
+
49
+ /// @inheritdoc IInstanceLinkedComponent
50
+ function getAuthorization() external view virtual returns (IAuthorization authorization) {
51
+ return _getInstanceLinkedComponentStorage()._initialAuthorization;
52
+ }
53
+
54
+
55
+ /// @inheritdoc IInstanceLinkedComponent
56
+ function withdrawFees(Amount amount)
57
+ external
58
+ virtual
59
+ restricted()
60
+ onlyOwner()
61
+ returns (Amount withdrawnAmount)
62
+ {
63
+ return _withdrawFees(amount);
64
+ }
65
+
66
+ //--- internal functions ------------------------------------------------//
67
+
68
+ function _sendRequest(
69
+ NftId oracleNftId,
70
+ bytes memory requestData,
71
+ Timestamp expiryAt,
72
+ string memory callbackMethod
73
+ )
74
+ internal
75
+ virtual
76
+ returns (RequestId requestId)
77
+ {
78
+ return _getInstanceLinkedComponentStorage()._oracleService.request(
79
+ oracleNftId,
80
+ requestData,
81
+ expiryAt,
82
+ callbackMethod);
83
+ }
84
+
85
+
86
+ function _cancelRequest(RequestId requestId)
87
+ internal
88
+ virtual
89
+ {
90
+ _getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
91
+ }
92
+
93
+
94
+ function _resendRequest(RequestId requestId)
95
+ internal
96
+ virtual
97
+ {
98
+ _getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
99
+ }
100
+
101
+
102
+ function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
103
+ assembly {
104
+ $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
105
+ }
106
+ }
107
+
108
+
109
+ function __InstanceLinkedComponent_init(
110
+ address registry,
111
+ NftId parentNftId,
112
+ string memory name,
113
+ ObjectType componentType,
114
+ IAuthorization authorization,
115
+ bool isInterceptor,
116
+ address initialOwner,
117
+ bytes memory componentData // data that will saved with the component info in the instance store
118
+ )
119
+ internal
120
+ virtual
121
+ onlyInitializing()
122
+ {
123
+ // validate registry, nft ids and get parent nft id
124
+ NftId instanceNftId = _checkAndGetInstanceNftId(
125
+ registry,
126
+ parentNftId,
127
+ componentType);
128
+
129
+ // set and check linked instance
130
+ InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
131
+ $._instance = IInstance(
132
+ IRegistry(registry).getObjectAddress(instanceNftId));
133
+
134
+ // set component specific parameters
135
+ __Component_init(
136
+ $._instance.authority(), // instance linked components need to point to instance admin
137
+ registry,
138
+ parentNftId,
139
+ name,
140
+ componentType,
141
+ isInterceptor,
142
+ initialOwner,
143
+ "", // registry data
144
+ componentData);
145
+
146
+ // set instance linked specific parameters
147
+ $._instanceReader = $._instance.getInstanceReader();
148
+ $._initialAuthorization = authorization;
149
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
150
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
151
+
152
+ // register interfaces
153
+ _registerInterface(type(IInstanceLinkedComponent).interfaceId);
154
+ }
155
+
156
+
157
+ function _checkAndGetInstanceNftId(
158
+ address registryAddress,
159
+ NftId parentNftId,
160
+ ObjectType componentType
161
+ )
162
+ internal
163
+ view
164
+ returns (NftId instanceNftId)
165
+ {
166
+ // if product, then parent is already instance
167
+ if (componentType == PRODUCT()) {
168
+ _checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
169
+ return parentNftId;
170
+ }
171
+
172
+ // if not product parent is product, and parent of product is instance
173
+ IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
174
+ return registry.getParentNftId(parentNftId);
175
+ }
176
+
177
+ /// @dev checks the and gets registry.
178
+ /// validates registry using a provided nft id and expected object type.
179
+ function _checkAndGetRegistry(
180
+ address registryAddress,
181
+ NftId objectNftId,
182
+ ObjectType requiredType
183
+ )
184
+ internal
185
+ view
186
+ returns (IRegistry registry)
187
+ {
188
+ registry = IRegistry(registryAddress);
189
+ IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
190
+
191
+ if (info.objectType != requiredType) {
192
+ revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
193
+ }
194
+ }
195
+
196
+
197
+ /// @dev for instance linked components the wallet address stored in the instance store.
198
+ /// updating needs to go throug component service
199
+ function _setWallet(address newWallet) internal virtual override onlyOwner {
200
+ IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
201
+ }
202
+
203
+
204
+ function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
205
+ NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
206
+
207
+ // if registered, attempt to return component info via instance reader
208
+ if (componentNftId.gtz()) {
209
+ // component registerd with registry
210
+ info = _getInstanceReader().getComponentInfo(getNftId());
211
+
212
+ // check if also registered with instance
213
+ if (address(info.tokenHandler) != address(0)) {
214
+ return info;
215
+ }
216
+ }
217
+
218
+ // return data from component contract if not yet registered
219
+ return super._getComponentInfo();
220
+ }
221
+
222
+
223
+ /// @dev returns reader for linked instance
224
+ function _getInstanceReader() internal view returns (InstanceReader reader) {
225
+ return _getInstanceLinkedComponentStorage()._instanceReader;
226
+ }
227
+
228
+ function _withdrawFees(Amount amount)
229
+ internal
230
+ returns (Amount withdrawnAmount)
231
+ {
232
+ return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
233
+ }
234
+ }
@@ -0,0 +1,131 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
5
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {StateId, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
9
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
+
11
+ import {Lifecycle} from "./Lifecycle.sol";
12
+ import {IKeyValueStore} from "./IKeyValueStore.sol";
13
+
14
+ abstract contract KeyValueStore is
15
+ Lifecycle,
16
+ IKeyValueStore
17
+ {
18
+
19
+ mapping(Key32 key32 => Value value) private _value;
20
+
21
+ function _create(
22
+ Key32 key32,
23
+ bytes memory data
24
+ )
25
+ internal
26
+ {
27
+ ObjectType objectType = key32.toObjectType();
28
+ if (objectType.eqz()) {
29
+ revert ErrorKeyValueStoreTypeUndefined(objectType);
30
+ }
31
+
32
+ Metadata storage metadata = _value[key32].metadata;
33
+ if (metadata.state.gtz()) {
34
+ revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
35
+ }
36
+
37
+ if(!hasLifecycle(objectType)) {
38
+ revert ErrorKeyValueStoreNoLifecycle(objectType);
39
+ }
40
+
41
+ Blocknumber blocknumber = BlocknumberLib.current();
42
+ StateId initialState = getInitialState(objectType);
43
+
44
+ // set metadata
45
+ metadata.objectType = objectType;
46
+ metadata.state = initialState;
47
+ metadata.updatedIn = blocknumber;
48
+ metadata.createdIn = blocknumber;
49
+
50
+ // set data
51
+ _value[key32].data = data;
52
+
53
+ // solhint-disable-next-line avoid-tx-origin
54
+ emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
55
+ }
56
+
57
+
58
+ function _update(
59
+ Key32 key32,
60
+ bytes memory data,
61
+ StateId state
62
+ )
63
+ internal
64
+ {
65
+ // update state
66
+ Blocknumber lastUpdatedIn = _updateState(key32, state);
67
+
68
+ // update data
69
+ _value[key32].data = data;
70
+
71
+ // solhint-disable-next-line avoid-tx-origin
72
+ emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, msg.sender, tx.origin, lastUpdatedIn);
73
+ }
74
+
75
+
76
+ function _updateState(
77
+ Key32 key32,
78
+ StateId state
79
+ )
80
+ internal
81
+ returns (Blocknumber lastUpdatedIn)
82
+ {
83
+ if (state.eqz()) {
84
+ revert ErrorKeyValueStoreStateZero(key32);
85
+ }
86
+
87
+ Metadata storage metadata = _value[key32].metadata;
88
+ StateId stateOld = metadata.state;
89
+ lastUpdatedIn = metadata.updatedIn;
90
+
91
+ if (stateOld.eqz()) {
92
+ revert ErrorKeyValueStoreNotExisting(key32);
93
+ }
94
+
95
+ // update state
96
+ if(state != KEEP_STATE()) {
97
+ checkTransition(stateOld, metadata.objectType, stateOld, state);
98
+ metadata.state = state;
99
+
100
+ // solhint-disable-next-line avoid-tx-origin
101
+ emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, msg.sender, tx.origin, lastUpdatedIn);
102
+ }
103
+
104
+ // update metadata
105
+ metadata.updatedIn = BlocknumberLib.current();
106
+ }
107
+
108
+ function exists(Key32 key32) public view returns (bool) {
109
+ return _value[key32].metadata.state.gtz();
110
+ }
111
+
112
+ function get(Key32 key32) public view returns (Value memory value) {
113
+ return _value[key32];
114
+ }
115
+
116
+ function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
117
+ return _value[key32].metadata;
118
+ }
119
+
120
+ function getData(Key32 key32) public view returns (bytes memory data) {
121
+ return _value[key32].data;
122
+ }
123
+
124
+ function getState(Key32 key32) public view returns (StateId state) {
125
+ return _value[key32].metadata.state;
126
+ }
127
+
128
+ function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
129
+ return Key32Lib.toKey32(objectType, id);
130
+ }
131
+ }
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ObjectType} from "../type/ObjectType.sol";
5
+ import {StateId, zeroStateId} from "../type/StateId.sol";
6
+ import {ILifecycle} from "./ILifecycle.sol";
7
+
8
+ abstract contract Lifecycle is
9
+ ILifecycle
10
+ {
11
+ mapping(ObjectType objectType => StateId initialState)
12
+ private _initialState;
13
+
14
+ mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
15
+ private _isValidTransition;
16
+
17
+ /// @dev child class must implement and CALL setup func at deployment/initializaton time
18
+ function _setupLifecycle() internal virtual;
19
+
20
+ function setInitialState(ObjectType ttype, StateId state) internal virtual {
21
+ assert(_initialState[ttype] == zeroStateId());
22
+ _initialState[ttype] = state;
23
+ }
24
+
25
+ function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
26
+ assert(_isValidTransition[ttype][oldState][newState] == false);
27
+ _isValidTransition[ttype][oldState][newState] = true;
28
+ }
29
+
30
+ function hasLifecycle(
31
+ ObjectType objectType
32
+ )
33
+ public
34
+ view
35
+ override
36
+ returns (bool)
37
+ {
38
+ return _initialState[objectType].gtz();
39
+ }
40
+
41
+ function getInitialState(
42
+ ObjectType objectType
43
+ )
44
+ public
45
+ view
46
+ returns (StateId)
47
+ {
48
+ return _initialState[objectType];
49
+ }
50
+
51
+ function checkTransition(
52
+ StateId stateId,
53
+ ObjectType objectType,
54
+ StateId expectedFromId,
55
+ StateId toId
56
+ )
57
+ public
58
+ view
59
+ {
60
+ // revert if no life cycle support
61
+ if (_initialState[objectType].eqz()) {
62
+ revert ErrorNoLifecycle(address(this), objectType);
63
+ }
64
+
65
+ // revert if current state is not expected `from` state
66
+ if(stateId != expectedFromId) {
67
+ revert ErrorFromStateMissmatch(address(this), objectType, stateId, expectedFromId);
68
+ }
69
+
70
+ // enforce valid state transition
71
+ if (!_isValidTransition[objectType][stateId][toId]) {
72
+ revert ErrorInvalidStateTransition(
73
+ address(this),
74
+ objectType,
75
+ stateId,
76
+ toId
77
+ );
78
+ }
79
+ }
80
+
81
+ function isValidTransition(
82
+ ObjectType objectType,
83
+ StateId fromId,
84
+ StateId toId
85
+ ) public view returns (bool) {
86
+ return _isValidTransition[objectType][fromId][toId];
87
+ }
88
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+
7
+ contract NftIdSet {
8
+
9
+ error ErrorNftIdSetManagerNotOwner(address owner, address sender);
10
+ error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
11
+ error ErrorNftIdSetManagerNftIdInvalid(NftId objectNftId);
12
+ error ErrorNftIdSetManagerAlreadyAdded(NftId objectNftId);
13
+
14
+ LibNftIdSet.Set private _allObjects;
15
+ LibNftIdSet.Set private _activeObjects;
16
+ address private _owner;
17
+
18
+ modifier onlyOwner() {
19
+ if(msg.sender != _owner) {
20
+ revert ErrorNftIdSetManagerNotOwner(_owner, msg.sender);
21
+ }
22
+ _;
23
+ }
24
+
25
+ constructor() {
26
+ _owner = msg.sender;
27
+ }
28
+
29
+ function add(NftId objectNftId) external onlyOwner {
30
+ LibNftIdSet.add(_allObjects, objectNftId);
31
+ LibNftIdSet.add(_activeObjects, objectNftId);
32
+ }
33
+
34
+ function activate(NftId componentNftId, NftId objectNftId) external onlyOwner {
35
+ LibNftIdSet.add(_activeObjects, objectNftId);
36
+ }
37
+
38
+ function deactivate(NftId componentNftId, NftId objectNftId) external onlyOwner {
39
+ LibNftIdSet.remove(_activeObjects, objectNftId);
40
+ }
41
+
42
+ function nftIds() external view returns (uint256 ids) {
43
+ return LibNftIdSet.size(_allObjects);
44
+ }
45
+
46
+ function getNftId(uint256 idx) external view returns (NftId) {
47
+ return LibNftIdSet.getElementAt(_allObjects, idx);
48
+ }
49
+
50
+ function exists(NftId objectNftId) external view returns (bool) {
51
+ return LibNftIdSet.contains(_allObjects, objectNftId);
52
+ }
53
+
54
+ function activeNftIds() external view returns (uint256 ids) {
55
+ return LibNftIdSet.size(_activeObjects);
56
+ }
57
+
58
+ function getActiveNftId(uint256 idx) external view returns (NftId) {
59
+ return LibNftIdSet.getElementAt(_activeObjects, idx);
60
+ }
61
+
62
+ function isActive(NftId objectNftId) external view returns (bool) {
63
+ return LibNftIdSet.contains(_activeObjects, objectNftId);
64
+ }
65
+ }