@etherisc/gif-next 0.0.2-e2d8c7d-942 → 0.0.2-e30eae1-836

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 (732) hide show
  1. package/README.md +85 -23
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +125 -11
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +917 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +311 -1361
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +383 -177
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +333 -3049
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1022 -391
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +463 -531
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +352 -166
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  93. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +339 -294
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +964 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +251 -241
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +150 -187
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +655 -114
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -233
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +989 -146
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +304 -335
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +343 -123
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → shared/Component.sol/Component.json} +369 -343
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1843 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +158 -137
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +291 -192
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +119 -165
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +150 -176
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  328. package/contracts/authorization/AccessAdmin.sol +596 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +289 -0
  331. package/contracts/authorization/IAccess.sol +49 -0
  332. package/contracts/authorization/IAccessAdmin.sol +137 -0
  333. package/contracts/authorization/IAuthorization.sol +60 -0
  334. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  335. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  336. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  337. package/contracts/distribution/BasicDistribution.sol +139 -0
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  339. package/contracts/distribution/Distribution.sol +284 -0
  340. package/contracts/distribution/DistributionService.sol +354 -0
  341. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  342. package/contracts/distribution/IDistributionComponent.sol +52 -0
  343. package/contracts/distribution/IDistributionService.sol +100 -0
  344. package/contracts/examples/fire/DamageLevel.sol +59 -0
  345. package/contracts/examples/fire/FirePool.sol +86 -0
  346. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  347. package/contracts/examples/fire/FireProduct.sol +431 -0
  348. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  349. package/contracts/examples/fire/FireUSD.sol +26 -0
  350. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  351. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  352. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  353. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  354. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  355. package/contracts/instance/IInstance.sol +57 -51
  356. package/contracts/instance/IInstanceService.sol +57 -20
  357. package/contracts/instance/Instance.sol +162 -394
  358. package/contracts/instance/InstanceAdmin.sol +277 -0
  359. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  360. package/contracts/instance/InstanceReader.sol +264 -84
  361. package/contracts/instance/InstanceService.sol +335 -220
  362. package/contracts/instance/InstanceServiceManager.sol +14 -32
  363. package/contracts/instance/InstanceStore.sol +287 -0
  364. package/contracts/instance/base/BalanceStore.sol +123 -0
  365. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  366. package/contracts/instance/base/ObjectCounter.sol +21 -0
  367. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  368. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  369. package/contracts/instance/module/IAccess.sol +29 -21
  370. package/contracts/instance/module/IBundle.sol +8 -8
  371. package/contracts/instance/module/IComponents.sol +50 -0
  372. package/contracts/instance/module/IDistribution.sol +6 -4
  373. package/contracts/instance/module/IPolicy.sol +59 -19
  374. package/contracts/instance/module/IRisk.sol +1 -1
  375. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  376. package/contracts/oracle/BasicOracle.sol +47 -0
  377. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  378. package/contracts/oracle/IOracle.sol +36 -0
  379. package/contracts/oracle/IOracleComponent.sol +33 -0
  380. package/contracts/oracle/IOracleService.sol +66 -0
  381. package/contracts/oracle/Oracle.sol +156 -0
  382. package/contracts/oracle/OracleService.sol +292 -0
  383. package/contracts/oracle/OracleServiceManager.sol +39 -0
  384. package/contracts/pool/BasicPool.sol +175 -0
  385. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  386. package/contracts/pool/BundleService.sol +485 -0
  387. package/contracts/pool/BundleServiceManager.sol +39 -0
  388. package/contracts/pool/IBundleService.sol +140 -0
  389. package/contracts/pool/IPoolComponent.sol +62 -0
  390. package/contracts/pool/IPoolService.sol +172 -0
  391. package/contracts/pool/Pool.sol +345 -0
  392. package/contracts/pool/PoolService.sol +620 -0
  393. package/contracts/pool/PoolServiceManager.sol +39 -0
  394. package/contracts/product/ApplicationService.sol +259 -0
  395. package/contracts/product/ApplicationServiceManager.sol +38 -0
  396. package/contracts/product/BasicProduct.sol +49 -0
  397. package/contracts/product/BasicProductAuthorization.sol +42 -0
  398. package/contracts/product/ClaimService.sol +614 -0
  399. package/contracts/product/ClaimServiceManager.sol +38 -0
  400. package/contracts/product/IApplicationService.sol +63 -0
  401. package/contracts/product/IClaimService.sol +123 -0
  402. package/contracts/product/IPolicyService.sol +82 -0
  403. package/contracts/product/IPricingService.sol +39 -0
  404. package/contracts/product/IProductComponent.sol +59 -0
  405. package/contracts/product/IRiskService.sol +33 -0
  406. package/contracts/product/PolicyService.sol +695 -0
  407. package/contracts/product/PolicyServiceManager.sol +39 -0
  408. package/contracts/product/PricingService.sol +300 -0
  409. package/contracts/product/PricingServiceManager.sol +39 -0
  410. package/contracts/product/Product.sol +432 -0
  411. package/contracts/product/RiskService.sol +96 -0
  412. package/contracts/product/RiskServiceManager.sol +39 -0
  413. package/contracts/registry/ChainNft.sol +78 -33
  414. package/contracts/registry/IRegistry.sol +127 -35
  415. package/contracts/registry/IRegistryService.sol +40 -28
  416. package/contracts/registry/ITransferInterceptor.sol +1 -1
  417. package/contracts/registry/Registry.sol +550 -273
  418. package/contracts/registry/RegistryAdmin.sol +462 -0
  419. package/contracts/registry/RegistryService.sol +116 -233
  420. package/contracts/registry/RegistryServiceManager.sol +26 -53
  421. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  422. package/contracts/registry/ReleaseRegistry.sol +485 -0
  423. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  424. package/contracts/registry/TokenRegistry.sol +261 -57
  425. package/contracts/shared/Component.sol +229 -0
  426. package/contracts/shared/ComponentService.sol +779 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  429. package/contracts/shared/ContractLib.sol +54 -0
  430. package/contracts/shared/IComponent.sol +67 -0
  431. package/contracts/shared/IComponentService.sol +130 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  435. package/contracts/shared/INftOwnable.sol +15 -12
  436. package/contracts/shared/IPolicyHolder.sol +35 -0
  437. package/contracts/shared/IRegisterable.sol +15 -6
  438. package/contracts/shared/IRegistryLinked.sol +11 -0
  439. package/contracts/shared/IService.sol +16 -6
  440. package/contracts/shared/InitializableERC165.sol +27 -0
  441. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +88 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +75 -82
  446. package/contracts/shared/PolicyHolder.sol +62 -0
  447. package/contracts/shared/Registerable.sol +34 -41
  448. package/contracts/shared/RegistryLinked.sol +38 -0
  449. package/contracts/shared/Service.sol +61 -32
  450. package/contracts/shared/TokenHandler.sol +382 -12
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  452. package/contracts/staking/IStaking.sol +173 -0
  453. package/contracts/staking/IStakingService.sol +157 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +505 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +190 -0
  459. package/contracts/staking/StakingService.sol +453 -0
  460. package/contracts/staking/StakingServiceManager.sol +44 -0
  461. package/contracts/staking/StakingStore.sol +605 -0
  462. package/contracts/staking/TargetManagerLib.sol +211 -0
  463. package/contracts/{types → type}/AddressSet.sol +1 -1
  464. package/contracts/type/Amount.sol +150 -0
  465. package/contracts/{types → type}/Blocknumber.sol +27 -3
  466. package/contracts/type/ClaimId.sol +80 -0
  467. package/contracts/{types → type}/DistributorType.sol +2 -2
  468. package/contracts/{types → type}/Fee.sol +33 -23
  469. package/contracts/{types → type}/NftId.sol +22 -15
  470. package/contracts/{types → type}/NftIdSet.sol +2 -2
  471. package/contracts/type/ObjectType.sol +276 -0
  472. package/contracts/type/PayoutId.sol +82 -0
  473. package/contracts/{types → type}/Referral.sol +6 -1
  474. package/contracts/type/RequestId.sol +75 -0
  475. package/contracts/{types → type}/RiskId.sol +17 -3
  476. package/contracts/type/RoleId.sol +162 -0
  477. package/contracts/type/Seconds.sol +101 -0
  478. package/contracts/type/Selector.sol +102 -0
  479. package/contracts/{types → type}/StateId.sol +48 -4
  480. package/contracts/type/String.sol +53 -0
  481. package/contracts/{types → type}/Timestamp.sol +34 -15
  482. package/contracts/{types → type}/UFixed.sol +39 -9
  483. package/contracts/{types → type}/Version.sol +5 -2
  484. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  485. package/contracts/upgradeability/ProxyManager.sol +232 -0
  486. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  487. package/contracts/upgradeability/Versionable.sol +59 -0
  488. package/package.json +11 -7
  489. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  491. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  492. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -368
  494. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  495. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  496. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  498. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  500. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  501. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  502. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  503. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  504. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  506. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  508. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  510. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  512. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  514. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  516. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  518. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  520. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  522. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  524. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  527. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  529. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  531. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  533. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  535. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  537. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  539. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  541. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  543. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  544. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  545. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  547. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  548. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  549. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  550. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  552. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  553. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  554. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  556. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  559. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  560. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  562. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  563. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  564. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  565. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  569. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  571. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  573. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  575. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  577. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  581. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  597. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  599. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  600. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  601. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  603. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  605. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  607. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  609. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  631. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  633. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  635. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  637. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  639. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  641. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  642. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  643. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  645. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  647. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  649. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  651. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  653. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  655. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  657. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  659. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  661. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  663. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  665. package/contracts/components/BaseComponent.sol +0 -132
  666. package/contracts/components/Distribution.sol +0 -163
  667. package/contracts/components/IBaseComponent.sol +0 -31
  668. package/contracts/components/IDistributionComponent.sol +0 -44
  669. package/contracts/components/IPoolComponent.sol +0 -66
  670. package/contracts/components/IProductComponent.sol +0 -35
  671. package/contracts/components/Pool.sol +0 -271
  672. package/contracts/components/Product.sol +0 -292
  673. package/contracts/experiment/cloning/Cloner.sol +0 -47
  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/statemachine/Dummy.sol +0 -27
  683. package/contracts/experiment/statemachine/ISM.sol +0 -25
  684. package/contracts/experiment/statemachine/SM.sol +0 -57
  685. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  686. package/contracts/experiment/types/TypeA.sol +0 -47
  687. package/contracts/experiment/types/TypeB.sol +0 -29
  688. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  689. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  690. package/contracts/instance/IInstanceBase.sol +0 -26
  691. package/contracts/instance/InstanceAccessManager.sol +0 -288
  692. package/contracts/instance/InstanceBase.sol +0 -41
  693. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  694. package/contracts/instance/base/IInstanceBase.sol +0 -23
  695. package/contracts/instance/base/KeyValueStore.sol +0 -172
  696. package/contracts/instance/base/Lifecycle.sol +0 -100
  697. package/contracts/instance/module/ISetup.sol +0 -46
  698. package/contracts/instance/module/ITreasury.sol +0 -23
  699. package/contracts/instance/service/BundleService.sol +0 -260
  700. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  701. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  702. package/contracts/instance/service/DistributionService.sol +0 -118
  703. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  704. package/contracts/instance/service/IBundleService.sol +0 -45
  705. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  706. package/contracts/instance/service/IDistributionService.sol +0 -12
  707. package/contracts/instance/service/IPolicyService.sol +0 -87
  708. package/contracts/instance/service/IPoolService.sol +0 -20
  709. package/contracts/instance/service/IProductService.sol +0 -40
  710. package/contracts/instance/service/PolicyService.sol +0 -508
  711. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  712. package/contracts/instance/service/PoolService.sol +0 -124
  713. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  714. package/contracts/instance/service/ProductService.sol +0 -173
  715. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  716. package/contracts/shared/ContractDeployerLib.sol +0 -72
  717. package/contracts/shared/ERC165.sol +0 -25
  718. package/contracts/shared/ProxyManager.sol +0 -94
  719. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  720. package/contracts/shared/Versionable.sol +0 -147
  721. package/contracts/test/TestFee.sol +0 -25
  722. package/contracts/test/TestRegisterable.sol +0 -18
  723. package/contracts/test/TestRoleId.sol +0 -14
  724. package/contracts/test/TestService.sol +0 -24
  725. package/contracts/test/TestToken.sol +0 -26
  726. package/contracts/test/TestVersion.sol +0 -44
  727. package/contracts/test/TestVersionable.sol +0 -17
  728. package/contracts/types/ChainId.sol +0 -38
  729. package/contracts/types/NumberId.sol +0 -52
  730. package/contracts/types/ObjectType.sol +0 -152
  731. package/contracts/types/RoleId.sol +0 -92
  732. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,156 @@
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 withdrawnAmount)
73
+ {
74
+ revert ErrorOracleNotImplemented("withdrawFees");
75
+ }
76
+
77
+
78
+ function _initializeOracle(
79
+ address registry,
80
+ NftId productNftId,
81
+ IAuthorization authorization,
82
+ address initialOwner,
83
+ string memory name,
84
+ address token,
85
+ bytes memory componentData // component specifidc data
86
+ )
87
+ internal
88
+ virtual
89
+ onlyInitializing()
90
+ {
91
+ _initializeInstanceLinkedComponent(
92
+ registry,
93
+ productNftId,
94
+ name,
95
+ token,
96
+ ORACLE(),
97
+ authorization,
98
+ true,
99
+ initialOwner,
100
+ componentData);
101
+
102
+ OracleStorage storage $ = _getOracleStorage();
103
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
105
+
106
+ _registerInterface(type(IOracleComponent).interfaceId);
107
+ }
108
+
109
+
110
+ /// @dev Internal function for handling requests.
111
+ /// Empty implementation.
112
+ /// Overwrite this function to implement use case specific handling for oracle calls.
113
+ function _request(
114
+ RequestId requestId,
115
+ NftId requesterId,
116
+ bytes calldata requestData,
117
+ Timestamp expiryAt
118
+ )
119
+ internal
120
+ virtual
121
+ {
122
+ }
123
+
124
+
125
+ /// @dev Internal function for cancelling requests.
126
+ /// Empty implementation.
127
+ /// Overwrite this function to implement use case specific cancelling.
128
+ function _cancel(
129
+ RequestId requestId
130
+ )
131
+ internal
132
+ virtual
133
+ {
134
+ }
135
+
136
+
137
+ /// @dev Internal function for handling oracle responses.
138
+ /// Default implementation sends response back to oracle service.
139
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
140
+ function _respond(
141
+ RequestId requestId,
142
+ bytes memory responseData
143
+ )
144
+ internal
145
+ virtual
146
+ {
147
+ _getOracleStorage()._oracleService.respond(
148
+ requestId, responseData);
149
+ }
150
+
151
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
152
+ assembly {
153
+ $.slot := ORACLE_STORAGE_LOCATION_V1
154
+ }
155
+ }
156
+ }
@@ -0,0 +1,292 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
5
+ import {IComponent} from "../shared/IComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IInstanceService} from "../instance/IInstanceService.sol";
8
+ import {InstanceReader} from "../instance/InstanceReader.sol";
9
+ import {IOracle} from "./IOracle.sol";
10
+ import {IOracleComponent} from "./IOracleComponent.sol";
11
+ import {IOracleService} from "./IOracleService.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {NftId} from "../type/NftId.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
+ import {RequestId} from "../type/RequestId.sol";
16
+ import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
+
19
+
20
+ contract OracleService is
21
+ ComponentVerifyingService,
22
+ IOracleService
23
+ {
24
+
25
+ function _initialize(
26
+ address owner,
27
+ bytes memory data
28
+ )
29
+ internal
30
+ virtual override
31
+ initializer()
32
+ {
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
40
+ }
41
+
42
+ function request(
43
+ NftId oracleNftId,
44
+ bytes calldata requestData,
45
+ Timestamp expiryAt,
46
+ string calldata callbackMethodName
47
+ )
48
+ external
49
+ virtual
50
+ // restricted() // add authz
51
+ onlyNftOfType(oracleNftId, ORACLE())
52
+ returns (
53
+ RequestId requestId
54
+ )
55
+ {
56
+ (
57
+ NftId componentNftId,
58
+ IRegistry.ObjectInfo memory componentInfo,
59
+ IInstance instance
60
+ ) = _getAndVerifyActiveComponent(COMPONENT());
61
+
62
+ // oracleNftId exists and is active oracle
63
+ (
64
+ IRegistry.ObjectInfo memory oracleInfo,
65
+ ) = _getAndVerifyComponentInfo(
66
+ oracleNftId,
67
+ ORACLE(),
68
+ true); // only active
69
+
70
+ {
71
+ // check that requester and oracle share same product cluster
72
+ if (componentInfo.objectType == PRODUCT()) {
73
+ if (oracleInfo.parentNftId != componentInfo.nftId) {
74
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
75
+ }
76
+ } else {
77
+ if (oracleInfo.parentNftId != componentInfo.parentNftId) {
78
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
79
+ }
80
+ }
81
+
82
+ // check expiriyAt >= now
83
+ if (expiryAt < TimestampLib.blockTimestamp()) {
84
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
85
+ }
86
+
87
+ // check callbackMethodName.length > 0
88
+ if (bytes(callbackMethodName).length == 0) {
89
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
90
+ }
91
+ }
92
+
93
+ {
94
+ // create request info
95
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
96
+ requesterNftId: componentNftId,
97
+ callbackMethodName: callbackMethodName,
98
+ oracleNftId: oracleNftId,
99
+ requestData: requestData,
100
+ responseData: "",
101
+ respondedAt: TimestampLib.zero(),
102
+ expiredAt: expiryAt,
103
+ isCancelled: false
104
+ });
105
+
106
+ // store request with instance
107
+ requestId = instance.getInstanceStore().createRequest(request);
108
+ }
109
+
110
+ // call oracle component
111
+ IOracleComponent(oracleInfo.objectAddress).request(
112
+ requestId,
113
+ componentNftId,
114
+ requestData,
115
+ expiryAt);
116
+
117
+ emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
118
+ }
119
+
120
+
121
+ /// @dev respond to oracle request by oracle compnent.
122
+ /// permissioned: only the oracle component linked to the request id may call this method
123
+ function respond(
124
+ RequestId requestId,
125
+ bytes calldata responseData
126
+ )
127
+ external
128
+ virtual
129
+ // restricted() // add authz
130
+ returns (bool success)
131
+ {
132
+ (
133
+ NftId oracleNftId,
134
+ IRegistry.ObjectInfo memory componentInfo,
135
+ IInstance instance
136
+ ) = _getAndVerifyActiveComponent(ORACLE());
137
+
138
+ bool callerIsOracle = true;
139
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
140
+ request.responseData = responseData;
141
+ request.respondedAt = TimestampLib.blockTimestamp();
142
+
143
+ instance.getInstanceStore().updateRequest(
144
+ requestId, request, KEEP_STATE());
145
+
146
+ IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
147
+ request.requesterNftId);
148
+
149
+ string memory functionSignature = string(
150
+ abi.encodePacked(
151
+ request.callbackMethodName,
152
+ "(uint64,bytes)"
153
+ ));
154
+
155
+ (success, ) = requesterInfo.objectAddress.call(
156
+ abi.encodeWithSignature(
157
+ functionSignature,
158
+ requestId,
159
+ responseData));
160
+
161
+ // check that calling requestor was successful
162
+ if (success) {
163
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
164
+ } else {
165
+ instance.getInstanceStore().updateRequestState(requestId, FAILED());
166
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
167
+ }
168
+
169
+ emit LogOracleServiceResponseProcessed(requestId, oracleNftId);
170
+ }
171
+
172
+
173
+ function resend(RequestId requestId)
174
+ external
175
+ virtual
176
+ // restricted() // add authz
177
+ {
178
+ (
179
+ NftId requesterNftId,
180
+ IRegistry.ObjectInfo memory requesterInfo,
181
+ IInstance instance
182
+ ) = _getAndVerifyActiveComponent(COMPONENT());
183
+
184
+ bool callerIsOracle = false;
185
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
186
+
187
+ // attempt to deliver response to requester
188
+ string memory functionSignature = string(
189
+ abi.encodePacked(
190
+ request.callbackMethodName,
191
+ "(uint64,bytes)"
192
+ ));
193
+
194
+ (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
195
+ abi.encodeWithSignature(
196
+ functionSignature,
197
+ requestId,
198
+ request.responseData));
199
+
200
+ // check that calling requestor was successful
201
+ if (success) {
202
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
203
+ emit LogOracleServiceResponseResent(requestId, requesterNftId);
204
+ } else {
205
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
206
+ }
207
+ }
208
+
209
+
210
+ function cancel(RequestId requestId)
211
+ external
212
+ virtual
213
+ // restricted() // add authz
214
+ {
215
+ (
216
+ NftId requesterNftId,
217
+ IRegistry.ObjectInfo memory componentInfo,
218
+ IInstance instance
219
+ ) = _getAndVerifyActiveComponent(COMPONENT());
220
+
221
+ bool callerIsOracle = false;
222
+ // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
223
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
224
+ request.isCancelled = true;
225
+
226
+ instance.getInstanceStore().updateRequest(requestId, request, CANCELLED());
227
+
228
+ // call oracle component
229
+ // TODO add check that oracle is active?
230
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
231
+ IOracleComponent(oracleAddress).cancel(requestId);
232
+
233
+ emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
234
+ }
235
+
236
+
237
+ function _checkAndGetRequestInfo(
238
+ IInstance instance,
239
+ RequestId requestId,
240
+ NftId callerNftId,
241
+ bool callerIsOracle
242
+ )
243
+ internal
244
+ virtual
245
+ view
246
+ returns (IOracle.RequestInfo memory info)
247
+ {
248
+ InstanceReader reader = instance.getInstanceReader();
249
+ StateId state = reader.getState(requestId.toKey32());
250
+
251
+ // check caller against resonsible oracle or requester
252
+ info = reader.getRequestInfo(requestId);
253
+ if (callerIsOracle) {
254
+ if (state != ACTIVE()) {
255
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
256
+ }
257
+
258
+ if (callerNftId != info.oracleNftId) {
259
+ revert ErrorOracleServiceCallerNotResponsibleOracle(requestId, info.oracleNftId, callerNftId);
260
+ }
261
+ } else {
262
+ if (state != ACTIVE() && state != FAILED()) {
263
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
264
+ }
265
+ if (callerNftId != info.requesterNftId) {
266
+ revert ErrorOracleServiceCallerNotRequester(requestId, info.requesterNftId, callerNftId);
267
+ }
268
+ }
269
+
270
+ // check expiry
271
+ if (info.expiredAt < TimestampLib.blockTimestamp()) {
272
+ revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
273
+ }
274
+ }
275
+
276
+
277
+ // TODO cleanup
278
+ // function _getInstanceForComponent(NftId componentNftId)
279
+ // internal
280
+ // view
281
+ // returns(IInstance instance)
282
+ // {
283
+ // NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
284
+ // address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
285
+ // return IInstance(instanceAddress);
286
+ // }
287
+
288
+
289
+ function _getDomain() internal pure override returns(ObjectType) {
290
+ return ORACLE();
291
+ }
292
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {OracleService} from "./OracleService.sol";
7
+
8
+ contract OracleServiceManager is ProxyManager {
9
+
10
+ OracleService private _oracleService;
11
+
12
+ /// @dev initializes proxy manager with service implementation and deploys instance
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _oracleService = OracleService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getOracleService()
32
+ external
33
+ view
34
+ returns (OracleService oracleService)
35
+ {
36
+ return _oracleService;
37
+ }
38
+
39
+ }
@@ -0,0 +1,175 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {BUNDLE} from "../type/ObjectType.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+
14
+ import {Pool} from "./Pool.sol";
15
+
16
+ abstract contract BasicPool is
17
+ Pool
18
+ {
19
+
20
+ function _initializeBasicPool(
21
+ address registry,
22
+ NftId productNftId,
23
+ string memory name,
24
+ address token,
25
+ IComponents.PoolInfo memory poolInfo,
26
+ IAuthorization authorization,
27
+ address initialOwner
28
+ )
29
+ internal
30
+ virtual
31
+ onlyInitializing()
32
+ {
33
+ _initializePool(
34
+ registry,
35
+ productNftId,
36
+ name,
37
+ token,
38
+ poolInfo,
39
+ authorization,
40
+ initialOwner,
41
+ ""); // componentData
42
+ }
43
+
44
+ function stake(
45
+ NftId bundleNftId,
46
+ Amount amount
47
+ )
48
+ public
49
+ virtual
50
+ restricted()
51
+ onlyBundleOwner(bundleNftId)
52
+ onlyNftOfType(bundleNftId, BUNDLE())
53
+ {
54
+ _stake(bundleNftId, amount);
55
+ }
56
+
57
+
58
+ function unstake(
59
+ NftId bundleNftId,
60
+ Amount amount
61
+ )
62
+ public
63
+ virtual
64
+ restricted()
65
+ onlyBundleOwner(bundleNftId)
66
+ onlyNftOfType(bundleNftId, BUNDLE())
67
+ {
68
+ _unstake(bundleNftId, amount);
69
+ }
70
+
71
+
72
+ function extend(
73
+ NftId bundleNftId,
74
+ Seconds lifetimeExtension
75
+ )
76
+ public
77
+ virtual
78
+ restricted()
79
+ onlyBundleOwner(bundleNftId)
80
+ onlyNftOfType(bundleNftId, BUNDLE())
81
+ returns(Timestamp newExpiredAt)
82
+ {
83
+ return _extend(bundleNftId, lifetimeExtension);
84
+ }
85
+
86
+
87
+ function lockBundle(NftId bundleNftId)
88
+ public
89
+ virtual
90
+ restricted()
91
+ onlyBundleOwner(bundleNftId)
92
+ onlyNftOfType(bundleNftId, BUNDLE())
93
+ {
94
+ _lockBundle(bundleNftId);
95
+ }
96
+
97
+
98
+ function unlockBundle(NftId bundleNftId)
99
+ public
100
+ virtual
101
+ restricted()
102
+ onlyBundleOwner(bundleNftId)
103
+ onlyNftOfType(bundleNftId, BUNDLE())
104
+ {
105
+ _unlockBundle(bundleNftId);
106
+ }
107
+
108
+
109
+ function closeBundle(NftId bundleNftId)
110
+ public
111
+ virtual
112
+ restricted()
113
+ onlyBundleOwner(bundleNftId)
114
+ onlyNftOfType(bundleNftId, BUNDLE())
115
+ {
116
+ _closeBundle(bundleNftId);
117
+ }
118
+
119
+
120
+ /// @dev Updates the bundle feeds to the specified values.
121
+ /// @param bundleNftId the bundle Nft Id
122
+ /// @param fee the new fee values
123
+ function setBundleFee(
124
+ NftId bundleNftId,
125
+ Fee memory fee
126
+ )
127
+ public
128
+ virtual
129
+ restricted()
130
+ onlyBundleOwner(bundleNftId)
131
+ onlyNftOfType(bundleNftId, BUNDLE())
132
+ {
133
+ _setBundleFee(bundleNftId, fee);
134
+ }
135
+
136
+
137
+ /// @dev Withdraw bundle feeds for the given bundle.
138
+ /// @param bundleNftId the bundle Nft Id
139
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
140
+ /// @return withdrawnAmount the effective withdrawn amount
141
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
142
+ external
143
+ virtual
144
+ restricted()
145
+ onlyBundleOwner(bundleNftId)
146
+ onlyNftOfType(bundleNftId, BUNDLE())
147
+ returns (Amount withdrawnAmount)
148
+ {
149
+ return _withdrawBundleFees(bundleNftId, amount);
150
+ }
151
+
152
+
153
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
154
+ public
155
+ virtual
156
+ restricted()
157
+ onlyOwner()
158
+ {
159
+ _setMaxBalanceAmount(maxBalanceAmount);
160
+ }
161
+
162
+
163
+ function setFees(
164
+ Fee memory poolFee,
165
+ Fee memory stakingFee,
166
+ Fee memory performanceFee
167
+ )
168
+ public
169
+ virtual
170
+ restricted()
171
+ onlyOwner()
172
+ {
173
+ _setPoolFees(poolFee, stakingFee, performanceFee);
174
+ }
175
+ }