@etherisc/gif-next 0.0.2-c9711ab-345 → 0.0.2-c9ad04b-284

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 (351) hide show
  1. package/README.md +4 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +21 -21
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +42 -248
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -222
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +129 -286
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -120
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -37
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -62
  30. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  31. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  32. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  33. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  34. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  38. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  39. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  40. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +71 -71
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +225 -68
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +34 -146
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +30 -81
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +220 -102
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +32 -238
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  76. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -37
  79. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -222
  82. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
  84. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +29 -80
  86. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  87. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +5 -227
  88. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  89. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  90. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  91. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +76 -235
  92. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +51 -110
  94. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +0 -31
  96. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +5 -42
  98. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +63 -78
  100. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/Pool.sol/Pool.json +5 -227
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +101 -332
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +32 -135
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -89
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  111. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +3 -225
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  113. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  115. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +185 -175
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +53 -100
  118. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  120. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
  122. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +120 -140
  124. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  126. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -37
  128. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  129. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  130. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +184 -380
  132. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +44 -111
  134. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -270
  136. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +52 -123
  138. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  139. package/artifacts/contracts/product/Product.sol/Product.json +3 -225
  140. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  141. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  142. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +221 -21
  148. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  150. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/Registry.sol/Registry.json +419 -82
  152. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  153. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +229 -114
  154. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
  156. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -73
  158. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  160. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
  162. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  164. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  166. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  167. package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
  168. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +84 -212
  170. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +55 -114
  172. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -37
  179. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  188. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -222
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  195. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Service.sol/Service.json +0 -112
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  208. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  210. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  212. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
  215. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
  217. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +42 -89
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -138
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +26 -77
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +84 -84
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  232. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  243. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  253. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  255. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  259. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  263. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  266. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  270. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  271. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  272. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +14 -65
  273. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  274. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  275. package/contracts/authorization/AccessAdmin.sol +1 -3
  276. package/contracts/authorization/Authorization.sol +0 -1
  277. package/contracts/distribution/Distribution.sol +1 -1
  278. package/contracts/distribution/DistributionService.sol +26 -27
  279. package/contracts/distribution/IDistributionService.sol +9 -5
  280. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  281. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  282. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  283. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  284. package/contracts/instance/IInstance.sol +7 -30
  285. package/contracts/instance/Instance.sol +10 -35
  286. package/contracts/instance/InstanceAdmin.sol +23 -4
  287. package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
  288. package/contracts/instance/InstanceReader.sol +24 -7
  289. package/contracts/instance/InstanceService.sol +60 -36
  290. package/contracts/instance/InstanceStore.sol +11 -1
  291. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  292. package/contracts/instance/module/IComponents.sol +1 -1
  293. package/contracts/instance/module/IPolicy.sol +22 -22
  294. package/contracts/oracle/Oracle.sol +2 -1
  295. package/contracts/oracle/OracleService.sol +4 -3
  296. package/contracts/pool/BundleService.sol +13 -26
  297. package/contracts/pool/IBundleService.sol +2 -3
  298. package/contracts/pool/IPoolService.sol +29 -18
  299. package/contracts/pool/Pool.sol +15 -17
  300. package/contracts/pool/PoolService.sol +45 -98
  301. package/contracts/product/ApplicationService.sol +41 -23
  302. package/contracts/product/BasicProduct.sol +1 -0
  303. package/contracts/product/ClaimService.sol +116 -46
  304. package/contracts/product/IApplicationService.sol +1 -0
  305. package/contracts/product/IClaimService.sol +28 -5
  306. package/contracts/product/IPolicyService.sol +21 -32
  307. package/contracts/product/IPricingService.sol +7 -7
  308. package/contracts/product/IProductComponent.sol +0 -1
  309. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  310. package/contracts/product/PolicyService.sol +230 -186
  311. package/contracts/product/PricingService.sol +44 -43
  312. package/contracts/product/Product.sol +50 -36
  313. package/contracts/product/{ProductService.sol → RiskService.sol} +5 -7
  314. package/contracts/product/{ProductServiceManager.sol → RiskServiceManager.sol} +8 -8
  315. package/contracts/registry/ChainNft.sol +65 -32
  316. package/contracts/registry/IRegistry.sol +49 -15
  317. package/contracts/registry/Registry.sol +321 -195
  318. package/contracts/registry/RegistryAdmin.sol +150 -51
  319. package/contracts/registry/RegistryService.sol +2 -2
  320. package/contracts/registry/ReleaseRegistry.sol +12 -6
  321. package/contracts/registry/ServiceAuthorizationV3.sol +2 -3
  322. package/contracts/shared/Component.sol +17 -29
  323. package/contracts/shared/ComponentService.sol +16 -26
  324. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  325. package/contracts/shared/IComponent.sol +4 -4
  326. package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
  327. package/contracts/shared/IPolicyHolder.sol +0 -9
  328. package/contracts/shared/InitializableERC165.sol +2 -2
  329. package/contracts/shared/InstanceLinkedComponent.sol +4 -4
  330. package/contracts/shared/NftOwnable.sol +5 -5
  331. package/contracts/shared/PolicyHolder.sol +5 -48
  332. package/contracts/shared/Registerable.sol +4 -4
  333. package/contracts/shared/RegistryLinked.sol +3 -2
  334. package/contracts/shared/Service.sol +5 -5
  335. package/contracts/shared/TokenHandler.sol +100 -19
  336. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  337. package/contracts/staking/IStaking.sol +2 -1
  338. package/contracts/staking/StakeManagerLib.sol +18 -25
  339. package/contracts/staking/Staking.sol +10 -28
  340. package/contracts/staking/StakingService.sol +10 -14
  341. package/contracts/staking/TargetManagerLib.sol +7 -3
  342. package/contracts/type/ObjectType.sol +15 -11
  343. package/contracts/type/Seconds.sol +8 -0
  344. package/contracts/type/StateId.sol +1 -0
  345. package/contracts/upgradeability/ProxyManager.sol +1 -1
  346. package/package.json +1 -1
  347. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  348. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  349. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  350. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  351. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {BasicOracle} from "../../oracle/BasicOracle.sol";
7
+ import {RequestId} from "../../type/RequestId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ contract SimpleOracle is
11
+ BasicOracle
12
+ {
13
+
14
+ string public constant ANSWER_SYNC = "oracle constant sync answer";
15
+
16
+ struct SimpleRequest {
17
+ bool synchronous;
18
+ string text;
19
+ }
20
+
21
+ struct SimpleResponse {
22
+ bool revertInCall;
23
+ Timestamp revertUntil;
24
+ string text;
25
+ }
26
+
27
+ event LogSimpleOracleRequestReceived(RequestId requestId, NftId requesterId, bool synchronous, string requestText);
28
+ event LogSimpleOracleCancellingReceived(RequestId requestId);
29
+
30
+ event LogSimpleOracleAsyncResponseSent(RequestId requestId, string responseText);
31
+ event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftId,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token
39
+ )
40
+ {
41
+ initialize(
42
+ registry,
43
+ instanceNftId,
44
+ authorization,
45
+ initialOwner,
46
+ "SimpleOracle",
47
+ token
48
+ );
49
+ }
50
+
51
+ function initialize(
52
+ address registry,
53
+ NftId instanceNftId,
54
+ IAuthorization authorization,
55
+ address initialOwner,
56
+ string memory name,
57
+ address token
58
+ )
59
+ public
60
+ virtual
61
+ initializer()
62
+ {
63
+ _initializeBasicOracle(
64
+ registry,
65
+ instanceNftId,
66
+ authorization,
67
+ initialOwner,
68
+ name,
69
+ token);
70
+ }
71
+
72
+ /// @dev use case specific handling of oracle requests
73
+ /// for now only log is emitted to verify that request has been received by oracle component
74
+ function _request(
75
+ RequestId requestId,
76
+ NftId requesterId,
77
+ bytes calldata requestData,
78
+ Timestamp expiryAt
79
+ )
80
+ internal
81
+ virtual override
82
+ {
83
+ SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
84
+
85
+ if (request.synchronous) {
86
+ _respondSync(requestId);
87
+ }
88
+
89
+ emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
90
+ }
91
+
92
+
93
+ /// @dev use case specific handling of oracle requests
94
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
95
+ function _cancel(
96
+ RequestId requestId
97
+ )
98
+ internal
99
+ virtual override
100
+ {
101
+ emit LogSimpleOracleCancellingReceived(requestId);
102
+ }
103
+
104
+
105
+ function respondAsync(
106
+ RequestId requestId,
107
+ string memory responseText,
108
+ bool revertInCall,
109
+ Timestamp revertUntil
110
+ )
111
+ external
112
+ // permissionless, no restricted() for now
113
+ {
114
+ bytes memory responseData = abi.encode(
115
+ SimpleResponse(
116
+ revertInCall,
117
+ revertUntil,
118
+ responseText));
119
+
120
+ _respond(requestId, responseData);
121
+
122
+ emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
123
+ }
124
+
125
+
126
+ function _respondSync(
127
+ RequestId requestId
128
+ )
129
+ internal
130
+ {
131
+ bytes memory responseData = abi.encode(ANSWER_SYNC);
132
+ _respond(requestId, responseData);
133
+
134
+ emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
135
+ }
136
+
137
+ }
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {Seconds} from "../../type/Timestamp.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ contract SimplePool is
14
+ BasicPool
15
+ {
16
+
17
+ constructor(
18
+ address registry,
19
+ NftId instanceNftId,
20
+ address token,
21
+ IAuthorization authorization,
22
+ address initialOwner
23
+ )
24
+ {
25
+ initialize(
26
+ registry,
27
+ instanceNftId,
28
+ token,
29
+ authorization,
30
+ initialOwner
31
+ );
32
+ }
33
+
34
+ function initialize(
35
+ address registry,
36
+ NftId instanceNftId,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ public
42
+ virtual
43
+ initializer()
44
+ {
45
+ _initializeBasicPool(
46
+ registry,
47
+ instanceNftId,
48
+ authorization,
49
+ token,
50
+ "SimplePool",
51
+ initialOwner);
52
+ }
53
+
54
+ function createBundle(
55
+ Fee memory fee,
56
+ uint256 initialAmount,
57
+ Seconds lifetime,
58
+ bytes calldata filter
59
+ )
60
+ external
61
+ virtual
62
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
63
+ {
64
+ address owner = msg.sender;
65
+ Amount netStakedAmount;
66
+ bundleNftId = _createBundle(
67
+ owner,
68
+ fee,
69
+ lifetime,
70
+ filter
71
+ );
72
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
73
+ netStakedAmountInt = netStakedAmount.toInt();
74
+ }
75
+
76
+ }
@@ -0,0 +1,351 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicProduct} from "../../product/BasicProduct.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
+ import {IOracleService} from "../../oracle/IOracleService.sol";
9
+ import {ORACLE} from "../../type/ObjectType.sol";
10
+ import {NftId} from "../../type/NftId.sol";
11
+ import {PayoutId} from "../../type/PayoutId.sol";
12
+ import {ReferralId} from "../../type/Referral.sol";
13
+ import {RequestId} from "../../type/RequestId.sol";
14
+ import {RiskId} from "../../type/RiskId.sol";
15
+ import {Seconds} from "../../type/Seconds.sol";
16
+ import {SimpleOracle} from "./SimpleOracle.sol";
17
+ import {StateId} from "../../type/StateId.sol";
18
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
19
+
20
+ uint64 constant SPECIAL_ROLE_INT = 11111;
21
+
22
+ contract SimpleProduct is
23
+ BasicProduct
24
+ {
25
+
26
+ event LogSimpleProductRequestAsyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
27
+ event LogSimpleProductRequestSyncFulfilled(RequestId requestId, string responseText, uint256 responseDataLength);
28
+
29
+ error ErrorSimpleProductRevertedWhileProcessingResponse(RequestId requestId);
30
+
31
+ IOracleService private _oracleService;
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftid,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token,
39
+ bool isInterceptor,
40
+ address pool,
41
+ address distribution
42
+ )
43
+ {
44
+ initialize(
45
+ registry,
46
+ instanceNftid,
47
+ authorization,
48
+ initialOwner,
49
+ "SimpleProduct",
50
+ token,
51
+ isInterceptor,
52
+ pool,
53
+ distribution);
54
+ }
55
+
56
+
57
+ function initialize(
58
+ address registry,
59
+ NftId instanceNftid,
60
+ IAuthorization authorization,
61
+ address initialOwner,
62
+ string memory name,
63
+ address token,
64
+ bool isInterceptor,
65
+ address pool,
66
+ address distribution
67
+ )
68
+ public
69
+ virtual
70
+ initializer()
71
+ {
72
+ _initializeBasicProduct(
73
+ registry,
74
+ instanceNftid,
75
+ authorization,
76
+ initialOwner,
77
+ name,
78
+ token,
79
+ isInterceptor,
80
+ pool,
81
+ distribution);
82
+
83
+ _oracleService = IOracleService(_getServiceAddress(ORACLE()));
84
+ }
85
+
86
+ function createRisk(
87
+ RiskId id,
88
+ bytes memory data
89
+ ) public {
90
+ _createRisk(
91
+ id,
92
+ data
93
+ );
94
+ }
95
+
96
+ function updateRisk(
97
+ RiskId id,
98
+ bytes memory data
99
+ ) public {
100
+ _updateRisk(
101
+ id,
102
+ data
103
+ );
104
+ }
105
+
106
+ function updateRiskState(
107
+ RiskId id,
108
+ StateId state
109
+ ) public {
110
+ _updateRiskState(
111
+ id,
112
+ state
113
+ );
114
+ }
115
+
116
+ function createApplication(
117
+ address applicationOwner,
118
+ RiskId riskId,
119
+ uint256 sumInsured,
120
+ Seconds lifetime,
121
+ bytes memory applicationData,
122
+ NftId bundleNftId,
123
+ ReferralId referralId
124
+ )
125
+ public
126
+ returns (NftId nftId)
127
+ {
128
+ Amount sumInsuredAmount = AmountLib.toAmount(sumInsured);
129
+ Amount premiumAmount = calculatePremium(
130
+ sumInsuredAmount,
131
+ riskId,
132
+ lifetime,
133
+ applicationData,
134
+ bundleNftId,
135
+ referralId);
136
+
137
+ return _createApplication(
138
+ applicationOwner,
139
+ riskId,
140
+ sumInsuredAmount,
141
+ premiumAmount,
142
+ lifetime,
143
+ bundleNftId,
144
+ referralId,
145
+ applicationData
146
+ );
147
+ }
148
+
149
+ function createPolicy(
150
+ NftId applicationNftId,
151
+ bool requirePremiumPayment,
152
+ Timestamp activateAt
153
+ ) public {
154
+ _createPolicy(applicationNftId, activateAt);
155
+ if (requirePremiumPayment == true) {
156
+ _collectPremium(applicationNftId, activateAt);
157
+ }
158
+ }
159
+
160
+ function decline(
161
+ NftId policyNftId
162
+ ) public {
163
+ _decline(policyNftId);
164
+ }
165
+
166
+ function expire(
167
+ NftId policyNftId,
168
+ Timestamp expireAt
169
+ )
170
+ public
171
+ returns (Timestamp)
172
+ {
173
+ return _expire(policyNftId, expireAt);
174
+ }
175
+
176
+ function collectPremium(
177
+ NftId policyNftId,
178
+ Timestamp activateAt
179
+ ) public {
180
+ _collectPremium(policyNftId, activateAt);
181
+ }
182
+
183
+ function activate(
184
+ NftId policyNftId,
185
+ Timestamp activateAt
186
+ ) public {
187
+ _activate(policyNftId, activateAt);
188
+ }
189
+
190
+ function close(
191
+ NftId policyNftId
192
+ ) public {
193
+ _close(policyNftId);
194
+ }
195
+
196
+ function submitClaim(
197
+ NftId policyNftId,
198
+ Amount claimAmount,
199
+ bytes memory submissionData
200
+ ) public returns (ClaimId) {
201
+ return _submitClaim(policyNftId, claimAmount, submissionData);
202
+ }
203
+
204
+ function confirmClaim(
205
+ NftId policyNftId,
206
+ ClaimId claimId,
207
+ Amount confirmedAmount,
208
+ bytes memory processData
209
+ ) public {
210
+ _confirmClaim(policyNftId, claimId, confirmedAmount, processData);
211
+ }
212
+
213
+ function declineClaim(
214
+ NftId policyNftId,
215
+ ClaimId claimId,
216
+ bytes memory processData
217
+ ) public {
218
+ _declineClaim(policyNftId, claimId, processData);
219
+ }
220
+
221
+ function closeClaim(
222
+ NftId policyNftId,
223
+ ClaimId claimId
224
+ ) public {
225
+ _closeClaim(policyNftId, claimId);
226
+ }
227
+
228
+ function createPayout(
229
+ NftId policyNftId,
230
+ ClaimId claimId,
231
+ Amount amount,
232
+ bytes memory data
233
+ ) public returns (PayoutId) {
234
+ return _createPayout(policyNftId, claimId, amount, data);
235
+ }
236
+
237
+ // TODO add test
238
+ function createPayoutForBeneficiary(
239
+ NftId policyNftId,
240
+ ClaimId claimId,
241
+ Amount amount,
242
+ address beneficiary,
243
+ bytes memory data
244
+ ) public returns (PayoutId) {
245
+ return _createPayoutForBeneficiary(policyNftId, claimId, amount, beneficiary, data);
246
+ }
247
+
248
+ function processPayout(
249
+ NftId policyNftId,
250
+ PayoutId payoutId
251
+ ) public {
252
+ _processPayout(policyNftId, payoutId);
253
+ }
254
+
255
+ function createOracleRequest(
256
+ NftId oracleNftId,
257
+ string memory requestText,
258
+ Timestamp expiryAt,
259
+ bool synchronous
260
+ )
261
+ public
262
+ // restricted()
263
+ returns (RequestId)
264
+ {
265
+ bytes memory requestData = abi.encode(SimpleOracle.SimpleRequest(
266
+ synchronous,
267
+ requestText));
268
+
269
+ if (synchronous) {
270
+ return _oracleService.request(
271
+ oracleNftId,
272
+ requestData,
273
+ expiryAt,
274
+ "fulfillOracleRequestSync");
275
+ } else {
276
+ return _oracleService.request(
277
+ oracleNftId,
278
+ requestData,
279
+ expiryAt,
280
+ "fulfillOracleRequestAsync");
281
+ }
282
+ }
283
+
284
+ function cancelOracleRequest(
285
+ RequestId requestId
286
+ )
287
+ public
288
+ // restricted() //
289
+ {
290
+ _oracleService.cancel(requestId);
291
+ }
292
+
293
+ function fulfillOracleRequestSync(
294
+ RequestId requestId,
295
+ bytes memory responseData
296
+ )
297
+ public
298
+ // restricted() // only oracle service
299
+ {
300
+ string memory responseText = abi.decode(responseData, (string));
301
+ emit LogSimpleProductRequestSyncFulfilled(requestId, responseText, bytes(responseText).length);
302
+ }
303
+
304
+ function fulfillOracleRequestAsync(
305
+ RequestId requestId,
306
+ bytes memory responseData
307
+ )
308
+ public
309
+ // restricted() // only oracle service
310
+ {
311
+ SimpleOracle.SimpleResponse memory response = abi.decode(
312
+ responseData, (SimpleOracle.SimpleResponse));
313
+
314
+ if (response.revertInCall && response.revertUntil >= TimestampLib.blockTimestamp()) {
315
+ revert ErrorSimpleProductRevertedWhileProcessingResponse(requestId);
316
+ }
317
+
318
+ emit LogSimpleProductRequestAsyncFulfilled(requestId, response.text, bytes(response.text).length);
319
+ }
320
+
321
+
322
+ function resend(
323
+ RequestId requestId
324
+ )
325
+ public
326
+ // restricted() //
327
+ {
328
+ _oracleService.resend(requestId);
329
+ }
330
+
331
+
332
+ function doSomethingSpecial()
333
+ public
334
+ restricted()
335
+ returns (bool)
336
+ {
337
+ return true;
338
+ }
339
+
340
+ function doWhenNotLocked()
341
+ public
342
+ restricted()
343
+ returns (bool)
344
+ {
345
+ return true;
346
+ }
347
+
348
+ function getOracleService() public view returns (IOracleService) {
349
+ return _oracleService;
350
+ }
351
+ }
@@ -4,39 +4,16 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
9
- import {PayoutId} from "../type/PayoutId.sol";
10
- import {NftId} from "../type/NftId.sol";
11
- import {StateId} from "../type/StateId.sol";
12
- import {ReferralId} from "../type/Referral.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {VersionPart} from "../type/Version.sol";
15
- import {Key32} from "../type/Key32.sol";
16
- import {RoleId} from "../type/RoleId.sol";
17
- import {Seconds} from "../type/Seconds.sol";
18
- import {UFixed} from "../type/UFixed.sol";
19
-
20
- import {IRegisterable} from "../shared/IRegisterable.sol";
21
-
22
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
-
24
- import {InstanceAdmin} from "./InstanceAdmin.sol";
25
7
  import {BundleSet} from "./BundleSet.sol";
8
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
26
9
  import {InstanceReader} from "./InstanceReader.sol";
27
10
  import {InstanceStore} from "./InstanceStore.sol";
28
-
29
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
-
31
- import {IAccess} from "./module/IAccess.sol";
32
-
33
- import {IBundleService} from "../pool/IBundleService.sol";
34
- import {IDistributionService} from "../distribution/IDistributionService.sol";
35
- import {IPolicyService} from "../product/IPolicyService.sol";
36
- import {IPoolService} from "../pool/IPoolService.sol";
37
- import {IProductService} from "../product/IProductService.sol";
38
- import {IPolicyService} from "../product/IPolicyService.sol";
39
- import {IBundleService} from "../pool/IBundleService.sol";
11
+ import {IRegisterable} from "../shared/IRegisterable.sol";
12
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
+ import {RoleId} from "../type/RoleId.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
16
+ import {VersionPart} from "../type/Version.sol";
40
17
 
41
18
 
42
19
  interface IInstance is
@@ -4,44 +4,19 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {RiskId} from "../type/RiskId.sol";
10
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
- import {RoleId} from "../type/RoleId.sol";
12
- import {ClaimId} from "../type/ClaimId.sol";
13
- import {ReferralId} from "../type/Referral.sol";
14
- import {PayoutId} from "../type/PayoutId.sol";
15
- import {DistributorType} from "../type/DistributorType.sol";
16
- import {Seconds} from "../type/Seconds.sol";
17
- import {UFixed} from "../type/UFixed.sol";
18
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
19
-
20
- import {Registerable} from "../shared/Registerable.sol";
21
- import {TokenHandler} from "../shared/TokenHandler.sol";
22
-
23
- import {IRegistry} from "../registry/IRegistry.sol";
24
-
7
+ import {BundleSet} from "./BundleSet.sol";
25
8
  import {IInstance} from "./IInstance.sol";
26
9
  import {IInstanceService} from "./IInstanceService.sol";
27
10
  import {InstanceReader} from "./InstanceReader.sol";
28
11
  import {InstanceAdmin} from "./InstanceAdmin.sol";
29
- import {BundleSet} from "./BundleSet.sol";
30
12
  import {InstanceStore} from "./InstanceStore.sol";
31
-
32
- import {KeyValueStore} from "../shared/KeyValueStore.sol";
33
-
34
- import {IBundle} from "./module/IBundle.sol";
35
- import {IComponents} from "./module/IComponents.sol";
36
- import {IDistribution} from "./module/IDistribution.sol";
37
- import {IPolicy} from "./module/IPolicy.sol";
38
- import {IRisk} from "./module/IRisk.sol";
39
-
40
- import {IDistributionService} from "../distribution/IDistributionService.sol";
41
- import {IPoolService} from "../pool/IPoolService.sol";
42
- import {IProductService} from "../product/IProductService.sol";
43
- import {IPolicyService} from "../product/IPolicyService.sol";
44
- import {IBundleService} from "../pool/IBundleService.sol";
13
+ import {INSTANCE} from "../type/ObjectType.sol";
14
+ import {IRegistry} from "../registry/IRegistry.sol";
15
+ import {Registerable} from "../shared/Registerable.sol";
16
+ import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
45
20
 
46
21
  contract Instance is
47
22
  IInstance,
@@ -86,7 +61,7 @@ contract Instance is
86
61
  __AccessManaged_init(_instanceAdmin.authority());
87
62
 
88
63
  // setup instance object info
89
- initializeRegisterable(
64
+ _initializeRegisterable(
90
65
  address(registry),
91
66
  registry.getNftId(),
92
67
  INSTANCE(),
@@ -109,7 +84,7 @@ contract Instance is
109
84
  INSTANCE(),
110
85
  getMajorVersion()));
111
86
 
112
- registerInterface(type(IInstance).interfaceId);
87
+ _registerInterface(type(IInstance).interfaceId);
113
88
  }
114
89
 
115
90
  //--- Staking ----------------------------------------------------------//