@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf51045-496

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 (700) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1292 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +246 -561
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +308 -274
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +306 -335
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -1919
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +280 -80
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +383 -2670
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1312 -310
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +351 -379
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -106
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +269 -237
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +336 -167
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -231
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +322 -438
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +291 -350
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +997 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +397 -420
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +185 -168
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +234 -286
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +110 -65
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1074 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +473 -24
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -134
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -118
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -264
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Component.sol/Component.json +677 -0
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1574 -0
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +818 -0
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  214. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +119 -197
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  222. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +203 -88
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1197 -0
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -0
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +125 -19
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +767 -0
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +127 -110
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1417 -0
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  329. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  335. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  339. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  340. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +263 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +615 -0
  351. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  352. package/contracts/authorization/Authorization.sol +289 -0
  353. package/contracts/authorization/IAccess.sol +49 -0
  354. package/contracts/authorization/IAccessAdmin.sol +137 -0
  355. package/contracts/authorization/IAuthorization.sol +60 -0
  356. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  357. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  358. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  359. package/contracts/distribution/BasicDistribution.sol +139 -0
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  361. package/contracts/{components → distribution}/Distribution.sol +170 -163
  362. package/contracts/distribution/DistributionService.sol +357 -0
  363. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  364. package/contracts/distribution/IDistributionComponent.sol +52 -0
  365. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +436 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +130 -0
  380. package/contracts/instance/IInstance.sol +50 -72
  381. package/contracts/instance/IInstanceService.sol +37 -27
  382. package/contracts/instance/Instance.sol +171 -227
  383. package/contracts/instance/InstanceAdmin.sol +288 -0
  384. package/contracts/instance/InstanceAuthorizationV3.sol +222 -0
  385. package/contracts/instance/InstanceReader.sol +350 -63
  386. package/contracts/instance/InstanceService.sol +267 -364
  387. package/contracts/instance/InstanceServiceManager.sol +14 -29
  388. package/contracts/instance/InstanceStore.sol +287 -0
  389. package/contracts/instance/RiskSet.sol +119 -0
  390. package/contracts/instance/base/BalanceStore.sol +123 -0
  391. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  392. package/contracts/instance/base/ObjectCounter.sol +20 -0
  393. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  394. package/contracts/instance/base/ObjectSet.sol +78 -0
  395. package/contracts/instance/module/IAccess.sol +19 -20
  396. package/contracts/instance/module/IBundle.sol +8 -9
  397. package/contracts/instance/module/IComponents.sol +27 -12
  398. package/contracts/instance/module/IDistribution.sol +6 -6
  399. package/contracts/instance/module/IPolicy.sol +48 -35
  400. package/contracts/instance/module/IRisk.sol +2 -1
  401. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  402. package/contracts/oracle/BasicOracle.sol +47 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  404. package/contracts/oracle/IOracle.sol +36 -0
  405. package/contracts/oracle/IOracleComponent.sol +33 -0
  406. package/contracts/oracle/IOracleService.sol +66 -0
  407. package/contracts/oracle/Oracle.sol +156 -0
  408. package/contracts/oracle/OracleService.sol +309 -0
  409. package/contracts/oracle/OracleServiceManager.sol +39 -0
  410. package/contracts/pool/BasicPool.sol +175 -0
  411. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  412. package/contracts/pool/BundleService.sol +425 -0
  413. package/contracts/pool/BundleServiceManager.sol +39 -0
  414. package/contracts/pool/IBundleService.sol +121 -0
  415. package/contracts/pool/IPoolComponent.sol +62 -0
  416. package/contracts/pool/IPoolService.sol +153 -0
  417. package/contracts/pool/Pool.sol +345 -0
  418. package/contracts/pool/PoolService.sol +615 -0
  419. package/contracts/pool/PoolServiceManager.sol +39 -0
  420. package/contracts/product/ApplicationService.sol +259 -0
  421. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  422. package/contracts/product/BasicProduct.sol +49 -0
  423. package/contracts/product/BasicProductAuthorization.sol +41 -0
  424. package/contracts/product/ClaimService.sol +614 -0
  425. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  426. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  427. package/contracts/product/IClaimService.sol +123 -0
  428. package/contracts/product/IPolicyService.sol +90 -0
  429. package/contracts/product/IPricingService.sol +39 -0
  430. package/contracts/product/IProductComponent.sol +59 -0
  431. package/contracts/product/IRiskService.sol +33 -0
  432. package/contracts/product/PolicyService.sol +736 -0
  433. package/contracts/product/PolicyServiceManager.sol +39 -0
  434. package/contracts/product/PricingService.sol +300 -0
  435. package/contracts/product/PricingServiceManager.sol +39 -0
  436. package/contracts/product/Product.sol +427 -0
  437. package/contracts/product/RiskService.sol +107 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +79 -36
  440. package/contracts/registry/IRegistry.sol +100 -26
  441. package/contracts/registry/IRegistryService.sol +36 -41
  442. package/contracts/registry/ITransferInterceptor.sol +1 -1
  443. package/contracts/registry/Registry.sol +464 -201
  444. package/contracts/registry/RegistryAdmin.sol +457 -0
  445. package/contracts/registry/RegistryService.sol +87 -129
  446. package/contracts/registry/RegistryServiceManager.sol +23 -32
  447. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  448. package/contracts/registry/ReleaseRegistry.sol +486 -0
  449. package/contracts/registry/ServiceAuthorizationV3.sol +207 -0
  450. package/contracts/registry/TokenRegistry.sol +261 -62
  451. package/contracts/shared/Component.sol +219 -0
  452. package/contracts/shared/ComponentService.sol +696 -0
  453. package/contracts/shared/ComponentServiceManager.sol +38 -0
  454. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  455. package/contracts/shared/ContractLib.sol +224 -0
  456. package/contracts/shared/IComponent.sol +62 -0
  457. package/contracts/shared/IComponentService.sol +116 -0
  458. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  459. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  460. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  461. package/contracts/shared/INftOwnable.sol +4 -2
  462. package/contracts/shared/IPolicyHolder.sol +23 -14
  463. package/contracts/shared/IRegisterable.sol +11 -0
  464. package/contracts/shared/IRegistryLinked.sol +0 -1
  465. package/contracts/shared/IService.sol +15 -8
  466. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  467. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  468. package/contracts/shared/KeyValueStore.sol +131 -0
  469. package/contracts/shared/Lifecycle.sol +88 -0
  470. package/contracts/shared/NftIdSet.sol +65 -0
  471. package/contracts/shared/NftOwnable.sol +32 -25
  472. package/contracts/shared/PolicyHolder.sol +22 -41
  473. package/contracts/shared/Registerable.sol +32 -23
  474. package/contracts/shared/RegistryLinked.sol +9 -19
  475. package/contracts/shared/Service.sol +55 -29
  476. package/contracts/shared/TokenHandler.sol +368 -12
  477. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  478. package/contracts/staking/IStaking.sol +173 -0
  479. package/contracts/staking/IStakingService.sol +157 -0
  480. package/contracts/staking/StakeManagerLib.sol +224 -0
  481. package/contracts/staking/Staking.sol +515 -0
  482. package/contracts/staking/StakingLifecycle.sol +23 -0
  483. package/contracts/staking/StakingManager.sol +52 -0
  484. package/contracts/staking/StakingReader.sol +190 -0
  485. package/contracts/staking/StakingService.sol +440 -0
  486. package/contracts/staking/StakingServiceManager.sol +44 -0
  487. package/contracts/staking/StakingStore.sol +605 -0
  488. package/contracts/staking/TargetManagerLib.sol +211 -0
  489. package/contracts/{types → type}/AddressSet.sol +1 -1
  490. package/contracts/type/Amount.sol +150 -0
  491. package/contracts/{types → type}/Blocknumber.sol +26 -3
  492. package/contracts/{types → type}/ClaimId.sol +31 -3
  493. package/contracts/{types → type}/Fee.sol +33 -24
  494. package/contracts/{types → type}/Key32.sol +2 -2
  495. package/contracts/type/Key32Set.sol +62 -0
  496. package/contracts/{types → type}/NftId.sol +21 -16
  497. package/contracts/{types → type}/NftIdSet.sol +2 -2
  498. package/contracts/type/ObjectType.sol +286 -0
  499. package/contracts/type/PayoutId.sol +82 -0
  500. package/contracts/{types → type}/Referral.sol +2 -1
  501. package/contracts/type/RequestId.sol +75 -0
  502. package/contracts/{types → type}/RiskId.sol +31 -5
  503. package/contracts/type/RoleId.sol +162 -0
  504. package/contracts/type/Seconds.sol +101 -0
  505. package/contracts/type/Selector.sol +102 -0
  506. package/contracts/{types → type}/StateId.sol +47 -4
  507. package/contracts/type/String.sol +53 -0
  508. package/contracts/{types → type}/Timestamp.sol +21 -2
  509. package/contracts/{types → type}/UFixed.sol +40 -121
  510. package/contracts/{types → type}/Version.sol +4 -2
  511. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  512. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  513. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  514. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  515. package/package.json +11 -7
  516. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  517. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  518. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  519. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  520. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  521. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  522. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  523. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  524. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  526. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  527. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  529. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  531. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  536. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  538. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  541. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  543. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  545. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  547. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  549. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  551. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  553. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  555. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  557. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  561. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  565. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  568. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  570. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  572. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  574. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  576. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  578. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  579. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  580. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  581. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  583. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  589. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  590. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  591. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  594. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  596. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  598. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  600. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  602. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  604. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  606. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  607. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  608. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  610. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  612. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  614. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  616. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  618. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  620. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  624. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  626. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  628. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  630. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  632. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  634. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  636. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  638. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  644. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  646. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  648. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  650. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  652. package/contracts/components/Component.sol +0 -241
  653. package/contracts/components/IComponent.sol +0 -74
  654. package/contracts/components/IDistributionComponent.sol +0 -71
  655. package/contracts/components/IPoolComponent.sol +0 -113
  656. package/contracts/components/IProductComponent.sol +0 -40
  657. package/contracts/components/Pool.sol +0 -299
  658. package/contracts/components/Product.sol +0 -293
  659. package/contracts/instance/BundleManager.sol +0 -127
  660. package/contracts/instance/InstanceAccessManager.sol +0 -297
  661. package/contracts/instance/ObjectManager.sol +0 -84
  662. package/contracts/instance/base/ComponentService.sol +0 -134
  663. package/contracts/instance/base/KeyValueStore.sol +0 -175
  664. package/contracts/instance/base/Lifecycle.sol +0 -109
  665. package/contracts/instance/module/ISetup.sol +0 -33
  666. package/contracts/instance/module/ITreasury.sol +0 -23
  667. package/contracts/instance/service/ApplicationService.sol +0 -350
  668. package/contracts/instance/service/BundleService.sol +0 -336
  669. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  670. package/contracts/instance/service/ClaimService.sol +0 -151
  671. package/contracts/instance/service/DistributionService.sol +0 -450
  672. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  673. package/contracts/instance/service/IBundleService.sol +0 -62
  674. package/contracts/instance/service/IClaimService.sol +0 -61
  675. package/contracts/instance/service/IPolicyService.sol +0 -72
  676. package/contracts/instance/service/IPoolService.sol +0 -35
  677. package/contracts/instance/service/IProductService.sol +0 -40
  678. package/contracts/instance/service/PolicyService.sol +0 -403
  679. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  680. package/contracts/instance/service/PoolService.sol +0 -163
  681. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  682. package/contracts/instance/service/ProductService.sol +0 -233
  683. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  684. package/contracts/registry/RegistryAccessManager.sol +0 -216
  685. package/contracts/registry/ReleaseManager.sol +0 -322
  686. package/contracts/shared/ContractDeployerLib.sol +0 -72
  687. package/contracts/test/TestFee.sol +0 -25
  688. package/contracts/test/TestRegisterable.sol +0 -18
  689. package/contracts/test/TestRoleId.sol +0 -14
  690. package/contracts/test/TestService.sol +0 -25
  691. package/contracts/test/TestToken.sol +0 -26
  692. package/contracts/test/TestVersion.sol +0 -44
  693. package/contracts/test/TestVersionable.sol +0 -17
  694. package/contracts/types/ChainId.sol +0 -38
  695. package/contracts/types/NumberId.sol +0 -52
  696. package/contracts/types/ObjectType.sol +0 -157
  697. package/contracts/types/PayoutId.sol +0 -54
  698. package/contracts/types/RoleId.sol +0 -95
  699. package/contracts/types/Seconds.sol +0 -54
  700. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {RequestId} from "../type/RequestId.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IOracleComponent is IInstanceLinkedComponent {
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
16
+ /// @dev callback method for requesting some data from the oracle
17
+ function request(
18
+ RequestId requestId,
19
+ NftId requesterNftId,
20
+ bytes calldata requestData,
21
+ Timestamp expiryAt
22
+ ) external;
23
+
24
+
25
+ /// @dev callback method for cancelling the specified oracle request
26
+ function cancel(
27
+ RequestId requestId
28
+ ) external;
29
+
30
+
31
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
32
+ function isVerifying() external view returns (bool verifying);
33
+ }
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RequestId} from "../type/RequestId.sol";
8
+ import {StateId} from "../type/StateId.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+
11
+
12
+ interface IOracleService is IService {
13
+
14
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
15
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
16
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
17
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
18
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
19
+
20
+ // create request
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
22
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
23
+ error ErrorOracleServiceCallbackMethodNameEmpty();
24
+
25
+ // respond
26
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
27
+
28
+ // get request info
29
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
30
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
31
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
32
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
33
+
34
+ /// @dev send an oracle request to the specified oracle component.
35
+ /// the function returns the id of the newly created request.
36
+ /// permissioned: only registered components may send requests to oracles.
37
+ function request(
38
+ NftId oracleNftId,
39
+ bytes calldata requestData,
40
+ Timestamp expiryAt,
41
+ string calldata callbackMethodName
42
+ ) external returns (RequestId requestId);
43
+
44
+ /// @dev respond to oracle request by oracle compnent.
45
+ /// the response data is amende in the request info stored with the instance.
46
+ /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
47
+ /// or to FAILED when calling the requester is not succesful.
48
+ /// the function returns true iff the state changes to FULFILLED.
49
+ /// permissioned: only the oracle component linked to the request id may call this method
50
+ function respond(
51
+ RequestId requestId,
52
+ bytes calldata responseData
53
+ ) external returns (bool success);
54
+
55
+ /// @dev re send a failed response to the requester.
56
+ /// only requests in state FAILED may be re sent.
57
+ /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
58
+ /// permissioned: only the requester may resend a request
59
+ function resend(RequestId requestId) external;
60
+
61
+ /// @dev notify the oracle component that the specified request has become invalid.
62
+ /// only requests in state ACTIVE may be cancelled.
63
+ /// permissioned: only the requester may cancel a request
64
+ function cancel(RequestId requestId) external;
65
+
66
+ }
@@ -0,0 +1,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,309 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ContractLib} from "../shared/ContractLib.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 {Service} from "../shared/Service.sol";
17
+ import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
18
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
19
+
20
+
21
+ contract OracleService is
22
+ Service,
23
+ IOracleService
24
+ {
25
+
26
+ function _initialize(
27
+ address owner,
28
+ bytes memory data
29
+ )
30
+ internal
31
+ virtual override
32
+ initializer()
33
+ {
34
+ (
35
+ address registryAddress,
36
+ address authority
37
+ ) = abi.decode(data, (address, address));
38
+
39
+ _initializeService(registryAddress, authority, owner);
40
+ _registerInterface(type(IOracleService).interfaceId);
41
+ }
42
+
43
+ function request(
44
+ NftId oracleNftId,
45
+ bytes calldata requestData,
46
+ Timestamp expiryAt,
47
+ string calldata callbackMethodName
48
+ )
49
+ external
50
+ virtual
51
+ // restricted() // add authz
52
+ onlyNftOfType(oracleNftId, ORACLE())
53
+ returns (RequestId requestId)
54
+ {
55
+ // IRegistry registry = getRegistry();
56
+
57
+ // get and check active caller
58
+ (
59
+ IRegistry.ObjectInfo memory info,
60
+ address instance
61
+ ) = ContractLib.getAndVerifyAnyComponent(
62
+ getRegistry(), msg.sender, true);
63
+
64
+ (
65
+ NftId requesterNftId,
66
+ IOracleComponent oracle
67
+ ) = _checkRequestParams(
68
+ getRegistry(), oracleNftId, info, expiryAt, callbackMethodName);
69
+
70
+ {
71
+ // create request info
72
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
73
+ requesterNftId: requesterNftId,
74
+ callbackMethodName: callbackMethodName,
75
+ oracleNftId: oracleNftId,
76
+ requestData: requestData,
77
+ responseData: "",
78
+ respondedAt: TimestampLib.zero(),
79
+ expiredAt: expiryAt,
80
+ isCancelled: false
81
+ });
82
+
83
+ // store request with instance
84
+ requestId = IInstance(instance).getInstanceStore().createRequest(request);
85
+ }
86
+
87
+ // callback to oracle component
88
+ oracle.request(
89
+ requestId,
90
+ requesterNftId,
91
+ requestData,
92
+ expiryAt);
93
+
94
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
95
+ }
96
+
97
+
98
+ /// @dev respond to oracle request by oracle compnent.
99
+ /// permissioned: only the oracle component linked to the request id may call this method
100
+ function respond(
101
+ RequestId requestId,
102
+ bytes calldata responseData
103
+ )
104
+ external
105
+ virtual
106
+ // restricted() // add authz
107
+ returns (bool success)
108
+ {
109
+ (
110
+ IRegistry.ObjectInfo memory info,
111
+ address instanceAddress
112
+ ) = ContractLib.getAndVerifyComponent(
113
+ getRegistry(), msg.sender, ORACLE(), true);
114
+
115
+ NftId oracleNftId = info.nftId;
116
+ IInstance instance = IInstance(instanceAddress);
117
+ bool callerIsOracle = true;
118
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
119
+ request.responseData = responseData;
120
+ request.respondedAt = TimestampLib.blockTimestamp();
121
+
122
+ instance.getInstanceStore().updateRequest(
123
+ requestId, request, KEEP_STATE());
124
+
125
+ IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
126
+ request.requesterNftId);
127
+
128
+ string memory functionSignature = string(
129
+ abi.encodePacked(
130
+ request.callbackMethodName,
131
+ "(uint64,bytes)"
132
+ ));
133
+
134
+ (success, ) = requesterInfo.objectAddress.call(
135
+ abi.encodeWithSignature(
136
+ functionSignature,
137
+ requestId,
138
+ responseData));
139
+
140
+ // check that calling requestor was successful
141
+ if (success) {
142
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
143
+ } else {
144
+ instance.getInstanceStore().updateRequestState(requestId, FAILED());
145
+ emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
146
+ }
147
+
148
+ emit LogOracleServiceResponseProcessed(requestId, oracleNftId);
149
+ }
150
+
151
+
152
+ function resend(RequestId requestId)
153
+ external
154
+ virtual
155
+ // restricted() // add authz
156
+ {
157
+ (
158
+ IRegistry.ObjectInfo memory info,
159
+ address instanceAddress
160
+ ) = ContractLib.getAndVerifyAnyComponent(
161
+ getRegistry(), msg.sender, true);
162
+
163
+ NftId requesterNftId = info.nftId;
164
+ IInstance instance = IInstance(instanceAddress);
165
+ bool callerIsOracle = false;
166
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
167
+
168
+ // attempt to deliver response to requester
169
+ string memory functionSignature = string(
170
+ abi.encodePacked(
171
+ request.callbackMethodName,
172
+ "(uint64,bytes)"
173
+ ));
174
+
175
+ (bool success, bytes memory returnData) = info.objectAddress.call(
176
+ abi.encodeWithSignature(
177
+ functionSignature,
178
+ requestId,
179
+ request.responseData));
180
+
181
+ // check that calling requestor was successful
182
+ if (success) {
183
+ instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
184
+ emit LogOracleServiceResponseResent(requestId, requesterNftId);
185
+ } else {
186
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
187
+ }
188
+ }
189
+
190
+
191
+ function cancel(RequestId requestId)
192
+ external
193
+ virtual
194
+ // restricted() // add authz
195
+ {
196
+ (
197
+ IRegistry.ObjectInfo memory info,
198
+ address instanceAddress
199
+ ) = ContractLib.getAndVerifyAnyComponent(
200
+ getRegistry(), msg.sender, true);
201
+
202
+ NftId requesterNftId = info.nftId;
203
+ IInstance instance = IInstance(instanceAddress);
204
+ bool callerIsOracle = false;
205
+ // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
206
+ IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
207
+ request.isCancelled = true;
208
+
209
+ instance.getInstanceStore().updateRequest(requestId, request, CANCELLED());
210
+
211
+ // call oracle component
212
+ // TODO add check that oracle is active?
213
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
214
+ IOracleComponent(oracleAddress).cancel(requestId);
215
+
216
+ emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
217
+ }
218
+
219
+
220
+ function _checkRequestParams(
221
+ IRegistry registry,
222
+ NftId oracleNftId,
223
+ IRegistry.ObjectInfo memory info,
224
+ Timestamp expiryAt,
225
+ string memory callbackMethodName
226
+ )
227
+ internal
228
+ virtual
229
+ view
230
+ returns (
231
+ NftId requesterNftId,
232
+ IOracleComponent oracle
233
+ )
234
+ {
235
+ // get oracle info
236
+ (IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
237
+ registry, oracleNftId, true);
238
+
239
+ // obtain return values
240
+ requesterNftId = info.nftId;
241
+ oracle = IOracleComponent(oracleInfo.objectAddress);
242
+
243
+ // check that requester and oracle share same product cluster
244
+ if (info.objectType == PRODUCT()) {
245
+ if (oracleInfo.parentNftId != requesterNftId) {
246
+ revert ErrorOracleServiceProductMismatch(info.objectType, requesterNftId, oracleInfo.parentNftId);
247
+ }
248
+ } else {
249
+ if (oracleInfo.parentNftId != info.parentNftId) {
250
+ revert ErrorOracleServiceProductMismatch(info.objectType, info.parentNftId, oracleInfo.parentNftId);
251
+ }
252
+ }
253
+
254
+ // check expiriyAt >= now
255
+ if (expiryAt < TimestampLib.blockTimestamp()) {
256
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
257
+ }
258
+
259
+ // check callbackMethodName.length > 0
260
+ if (bytes(callbackMethodName).length == 0) {
261
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
262
+ }
263
+ }
264
+
265
+
266
+ function _checkAndGetRequestInfo(
267
+ IInstance instance,
268
+ RequestId requestId,
269
+ NftId callerNftId,
270
+ bool callerIsOracle
271
+ )
272
+ internal
273
+ virtual
274
+ view
275
+ returns (IOracle.RequestInfo memory info)
276
+ {
277
+ InstanceReader reader = instance.getInstanceReader();
278
+ StateId state = reader.getState(requestId.toKey32());
279
+
280
+ // check caller against resonsible oracle or requester
281
+ info = reader.getRequestInfo(requestId);
282
+ if (callerIsOracle) {
283
+ if (state != ACTIVE()) {
284
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
285
+ }
286
+
287
+ if (callerNftId != info.oracleNftId) {
288
+ revert ErrorOracleServiceCallerNotResponsibleOracle(requestId, info.oracleNftId, callerNftId);
289
+ }
290
+ } else {
291
+ if (state != ACTIVE() && state != FAILED()) {
292
+ revert ErrorOracleServiceRequestStateNotActive(requestId, state);
293
+ }
294
+ if (callerNftId != info.requesterNftId) {
295
+ revert ErrorOracleServiceCallerNotRequester(requestId, info.requesterNftId, callerNftId);
296
+ }
297
+ }
298
+
299
+ // check expiry
300
+ if (info.expiredAt < TimestampLib.blockTimestamp()) {
301
+ revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
302
+ }
303
+ }
304
+
305
+
306
+ function _getDomain() internal pure override returns(ObjectType) {
307
+ return ORACLE();
308
+ }
309
+ }
@@ -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
+ }