@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-ceed5e3-261

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 (573) hide show
  1. package/README.md +15 -84
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +322 -252
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +249 -174
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +271 -83
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -116
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +299 -2118
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +319 -59
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +433 -2856
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +642 -327
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +416 -242
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +132 -67
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +283 -213
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +480 -213
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +527 -284
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +129 -90
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +271 -134
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +408 -219
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/{components → product}/Product.sol/Product.json +433 -282
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +188 -19
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -77
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  120. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +430 -34
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -98
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +769 -98
  132. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  138. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -114
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  195. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  201. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  203. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  205. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  207. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Service.sol/Service.json +104 -22
  209. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  211. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  213. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  214. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  216. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  218. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  220. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  222. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  224. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +597 -0
  226. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  228. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  230. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  232. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  233. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  234. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  236. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  238. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  240. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  242. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  244. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  246. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  248. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  250. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  252. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  254. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  256. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  258. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  260. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  262. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  264. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  266. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  272. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  274. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  276. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  277. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  278. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  280. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  282. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  284. package/contracts/{components → distribution}/Distribution.sol +49 -75
  285. package/contracts/distribution/DistributionService.sol +297 -0
  286. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  287. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -37
  288. package/contracts/{instance/service → distribution}/IDistributionService.sol +25 -25
  289. package/contracts/instance/BundleManager.sol +15 -14
  290. package/contracts/instance/IInstance.sol +60 -65
  291. package/contracts/instance/IInstanceService.sol +59 -21
  292. package/contracts/instance/Instance.sol +175 -203
  293. package/contracts/instance/InstanceAdmin.sol +331 -0
  294. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  295. package/contracts/instance/InstanceReader.sol +159 -60
  296. package/contracts/instance/InstanceService.sol +296 -333
  297. package/contracts/instance/InstanceServiceManager.sol +11 -21
  298. package/contracts/instance/InstanceStore.sol +269 -0
  299. package/contracts/instance/base/BalanceStore.sol +123 -0
  300. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  301. package/contracts/instance/base/ObjectCounter.sol +21 -0
  302. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
  303. package/contracts/instance/module/IAccess.sol +19 -20
  304. package/contracts/instance/module/IBundle.sol +8 -8
  305. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -20
  306. package/contracts/instance/module/IDistribution.sol +7 -5
  307. package/contracts/instance/module/IPolicy.sol +53 -16
  308. package/contracts/instance/module/IRisk.sol +1 -1
  309. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  310. package/contracts/oracle/IOracle.sol +20 -0
  311. package/contracts/oracle/IOracleComponent.sol +32 -0
  312. package/contracts/oracle/IOracleService.sol +65 -0
  313. package/contracts/oracle/Oracle.sol +145 -0
  314. package/contracts/oracle/OracleService.sol +278 -0
  315. package/contracts/oracle/OracleServiceManager.sol +42 -0
  316. package/contracts/pool/BundleService.sol +296 -0
  317. package/contracts/pool/BundleServiceManager.sol +42 -0
  318. package/contracts/pool/IBundleService.sol +106 -0
  319. package/contracts/pool/IPoolComponent.sol +112 -0
  320. package/contracts/pool/IPoolService.sol +150 -0
  321. package/contracts/pool/Pool.sol +299 -0
  322. package/contracts/pool/PoolService.sol +452 -0
  323. package/contracts/pool/PoolServiceManager.sol +42 -0
  324. package/contracts/product/ApplicationService.sol +254 -0
  325. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  326. package/contracts/product/ClaimService.sol +442 -0
  327. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  328. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  329. package/contracts/product/IClaimService.sol +99 -0
  330. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  331. package/contracts/product/IPricingService.sol +39 -0
  332. package/contracts/product/IProductComponent.sol +42 -0
  333. package/contracts/product/IProductService.sol +33 -0
  334. package/contracts/product/PolicyService.sol +475 -0
  335. package/contracts/product/PolicyServiceManager.sol +42 -0
  336. package/contracts/product/PricingService.sol +300 -0
  337. package/contracts/product/PricingServiceManager.sol +42 -0
  338. package/contracts/product/Product.sol +377 -0
  339. package/contracts/product/ProductService.sol +124 -0
  340. package/contracts/product/ProductServiceManager.sol +42 -0
  341. package/contracts/registry/ChainNft.sol +16 -1
  342. package/contracts/registry/IRegistry.sol +46 -21
  343. package/contracts/registry/IRegistryService.sol +39 -37
  344. package/contracts/registry/IServiceAuthorization.sol +35 -0
  345. package/contracts/registry/ITransferInterceptor.sol +1 -0
  346. package/contracts/registry/Registry.sol +215 -97
  347. package/contracts/registry/RegistryAdmin.sol +333 -0
  348. package/contracts/registry/RegistryService.sol +73 -90
  349. package/contracts/registry/RegistryServiceManager.sol +21 -30
  350. package/contracts/registry/ReleaseManager.sol +400 -195
  351. package/contracts/registry/ServiceAuthorization.sol +86 -0
  352. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  353. package/contracts/registry/TokenRegistry.sol +261 -62
  354. package/contracts/shared/AccessAdmin.sol +759 -0
  355. package/contracts/shared/AccessManagerCustom.sol +741 -0
  356. package/contracts/shared/AccessManagerExtended.sol +481 -0
  357. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  358. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  359. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  360. package/contracts/shared/Component.sol +281 -0
  361. package/contracts/shared/ComponentService.sol +617 -0
  362. package/contracts/shared/ComponentServiceManager.sol +35 -0
  363. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  364. package/contracts/shared/ERC165.sol +1 -1
  365. package/contracts/shared/IAccessAdmin.sol +168 -0
  366. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  367. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  368. package/contracts/shared/IComponent.sol +70 -0
  369. package/contracts/shared/IComponentService.sol +102 -0
  370. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  371. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  372. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  373. package/contracts/shared/INftOwnable.sol +2 -2
  374. package/contracts/shared/IPolicyHolder.sol +29 -10
  375. package/contracts/shared/IRegistryLinked.sol +0 -1
  376. package/contracts/shared/IService.sol +14 -7
  377. package/contracts/shared/IVersionable.sol +1 -1
  378. package/contracts/shared/InitializableCustom.sol +177 -0
  379. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  380. package/contracts/shared/KeyValueStore.sol +127 -0
  381. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  382. package/contracts/shared/NftIdSetManager.sol +65 -0
  383. package/contracts/shared/NftOwnable.sol +3 -16
  384. package/contracts/shared/PolicyHolder.sol +40 -19
  385. package/contracts/shared/ProxyManager.sol +34 -4
  386. package/contracts/shared/Registerable.sol +15 -14
  387. package/contracts/shared/RegistryLinked.sol +0 -5
  388. package/contracts/shared/Service.sol +47 -22
  389. package/contracts/shared/TokenHandler.sol +37 -6
  390. package/contracts/shared/Versionable.sol +1 -1
  391. package/contracts/staking/IStaking.sol +168 -0
  392. package/contracts/staking/IStakingService.sol +153 -0
  393. package/contracts/staking/StakeManagerLib.sol +231 -0
  394. package/contracts/staking/Staking.sol +513 -0
  395. package/contracts/staking/StakingManager.sol +54 -0
  396. package/contracts/staking/StakingReader.sol +187 -0
  397. package/contracts/staking/StakingService.sol +411 -0
  398. package/contracts/staking/StakingServiceManager.sol +44 -0
  399. package/contracts/staking/StakingStore.sol +613 -0
  400. package/contracts/staking/TargetManagerLib.sol +207 -0
  401. package/contracts/{types → type}/AddressSet.sol +1 -1
  402. package/contracts/type/Amount.sol +128 -0
  403. package/contracts/{types → type}/Blocknumber.sol +21 -3
  404. package/contracts/{types → type}/ClaimId.sol +25 -2
  405. package/contracts/{types → type}/Fee.sol +33 -23
  406. package/contracts/{types → type}/NftId.sol +21 -15
  407. package/contracts/{types → type}/NftIdSet.sol +2 -2
  408. package/contracts/type/ObjectType.sol +241 -0
  409. package/contracts/{types → type}/PayoutId.sol +33 -5
  410. package/contracts/{types → type}/Referral.sol +5 -1
  411. package/contracts/type/RequestId.sol +75 -0
  412. package/contracts/{types → type}/RiskId.sol +1 -1
  413. package/contracts/type/RoleId.sol +201 -0
  414. package/contracts/type/Seconds.sol +81 -0
  415. package/contracts/type/Selector.sol +102 -0
  416. package/contracts/{types → type}/StateId.sol +34 -4
  417. package/contracts/type/String.sol +53 -0
  418. package/contracts/{types → type}/Timestamp.sol +23 -14
  419. package/contracts/{types → type}/UFixed.sol +1 -0
  420. package/contracts/{types → type}/Version.sol +2 -1
  421. package/package.json +4 -3
  422. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  423. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  424. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  425. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  426. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  427. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  428. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  429. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  430. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  431. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  432. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  433. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  434. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  435. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  437. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  438. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  439. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  440. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  441. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  442. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  443. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  444. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -869
  446. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  447. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  448. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
  450. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  451. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  452. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  453. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  454. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  455. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  456. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1254
  458. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -753
  460. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  462. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  464. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -347
  468. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1120
  471. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  473. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  475. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  477. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  479. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  481. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  482. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  483. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  484. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  485. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  486. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  487. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  488. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  489. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  490. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  491. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  493. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  495. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  497. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  499. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  500. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  501. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  502. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  504. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  506. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  508. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  511. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  512. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  514. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  515. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  517. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  519. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  521. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  523. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  526. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  529. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  533. package/contracts/components/Component.sol +0 -241
  534. package/contracts/components/IComponent.sol +0 -54
  535. package/contracts/components/IPoolComponent.sol +0 -87
  536. package/contracts/components/IProductComponent.sol +0 -39
  537. package/contracts/components/Pool.sol +0 -254
  538. package/contracts/components/Product.sol +0 -285
  539. package/contracts/instance/InstanceAccessManager.sol +0 -297
  540. package/contracts/instance/base/ComponentService.sol +0 -134
  541. package/contracts/instance/base/KeyValueStore.sol +0 -172
  542. package/contracts/instance/module/ITreasury.sol +0 -23
  543. package/contracts/instance/service/ApplicationService.sol +0 -268
  544. package/contracts/instance/service/BundleService.sol +0 -298
  545. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  546. package/contracts/instance/service/ClaimService.sol +0 -151
  547. package/contracts/instance/service/DistributionService.sol +0 -366
  548. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  549. package/contracts/instance/service/IBundleService.sol +0 -54
  550. package/contracts/instance/service/IClaimService.sol +0 -61
  551. package/contracts/instance/service/IPoolService.sol +0 -20
  552. package/contracts/instance/service/IProductService.sol +0 -40
  553. package/contracts/instance/service/PolicyService.sol +0 -476
  554. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  555. package/contracts/instance/service/PoolService.sol +0 -109
  556. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  557. package/contracts/instance/service/ProductService.sol +0 -233
  558. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  559. package/contracts/registry/RegistryAccessManager.sol +0 -216
  560. package/contracts/shared/ContractDeployerLib.sol +0 -72
  561. package/contracts/test/TestFee.sol +0 -25
  562. package/contracts/test/TestRegisterable.sol +0 -18
  563. package/contracts/test/TestRoleId.sol +0 -14
  564. package/contracts/test/TestService.sol +0 -25
  565. package/contracts/test/TestVersion.sol +0 -44
  566. package/contracts/test/TestVersionable.sol +0 -17
  567. package/contracts/test/Usdc.sol +0 -26
  568. package/contracts/types/ChainId.sol +0 -38
  569. package/contracts/types/NumberId.sol +0 -52
  570. package/contracts/types/ObjectType.sol +0 -156
  571. package/contracts/types/RoleId.sol +0 -90
  572. /package/contracts/{types → type}/DistributorType.sol +0 -0
  573. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,38 +3,43 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {Fee} from "../../types/Fee.sol";
7
- import {NftId} from "../../types/NftId.sol";
8
- import {UFixed} from "../../types/UFixed.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {NftId} from "../../type/NftId.sol";
9
+ import {RoleId} from "../../type/RoleId.sol";
9
10
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
10
12
 
11
- interface ISetup {
12
- struct ProductSetupInfo {
13
+ interface IComponents {
14
+
15
+ struct ComponentInfo {
16
+ string name; // component name (needs to be unique per instance)
17
+ NftId productNftId;
13
18
  IERC20Metadata token;
14
19
  TokenHandler tokenHandler;
20
+ address wallet;
21
+ bytes data; // will hold component type specific additional info (eg encoded pool info)
22
+ }
23
+
24
+
25
+ struct ProductInfo {
15
26
  NftId distributionNftId;
16
27
  NftId poolNftId;
17
- Fee distributionFee; // default distribution fee (no referral id)
18
28
  Fee productFee; // product fee on net premium
19
- Fee processingFee; // product fee on payout amounts
29
+ Fee processingFee; // product fee on payout amounts
30
+ Fee distributionFee; // distribution fee for sales that do not include commissions
31
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
20
32
  Fee poolFee; // pool fee on net premium
21
33
  Fee stakingFee; // pool fee on staked capital from investor
22
34
  Fee performanceFee; // pool fee on profits from capital investors
23
- bool isIntercepting; // intercepts nft transfers (for products)
24
- address wallet;
25
35
  }
26
36
 
27
- struct DistributionSetupInfo {
28
- NftId productNftId;
29
- TokenHandler tokenHandler;
30
- Fee distributionFee; // default distribution fee (no referral id)
31
- address wallet;
32
- // TODO: add sum of distibution owner fees (excl commissions from distributors)
33
- }
34
37
 
35
- struct PoolSetupInfo {
36
- NftId productNftId;
37
- TokenHandler tokenHandler;
38
+ struct PoolInfo {
39
+ NftId productNftId; // the nft of the product this pool is linked to
40
+ RoleId bundleOwnerRole; // the required role for bundle owners
41
+ // TODO maxCapitalAmount -> maxBalanceAmount
42
+ Amount maxCapitalAmount; // max capital amount allowed for pool
38
43
  bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
39
44
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
40
45
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
@@ -43,6 +48,5 @@ interface ISetup {
43
48
  Fee poolFee; // pool fee on net premium
44
49
  Fee stakingFee; // pool fee on staked capital from investor
45
50
  Fee performanceFee; // pool fee on profits from capital investors
46
- address wallet;
47
51
  }
48
52
  }
@@ -1,10 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {DistributorType} from "../../types/DistributorType.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Timestamp} from "../../types/Timestamp.sol";
7
- import {UFixed} from "../../types/UFixed.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {DistributorType} from "../../type/DistributorType.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {Timestamp} from "../../type/Timestamp.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
8
9
 
9
10
  interface IDistribution {
10
11
 
@@ -24,7 +25,8 @@ interface IDistribution {
24
25
  DistributorType distributorType;
25
26
  bool active;
26
27
  bytes data;
27
- // TODO: track commission, number of sold policies, etc.
28
+ Amount commissionAmount;
29
+ uint32 numPoliciesSold;
28
30
  }
29
31
 
30
32
  struct ReferralInfo {
@@ -1,29 +1,63 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
5
- import {ClaimId} from "../../types/ClaimId.sol";
6
- import {ReferralId} from "../../types/Referral.sol";
7
- import {RiskId} from "../../types/RiskId.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {ReferralId} from "../../type/Referral.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+ import {Seconds} from "../../type/Seconds.sol";
10
+ import {Timestamp} from "../../type/Timestamp.sol";
9
11
 
10
12
  interface IPolicy {
11
13
 
14
+ struct Premium {
15
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
21
+ // this is the net premium calculated by the product
22
+ uint256 netPremiumAmount;
23
+ // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
+ uint256 fullPremiumAmount;
25
+ // premium = fullPremium - discount
26
+ uint256 premiumAmount;
27
+ uint256 productFeeFixAmount;
28
+ uint256 poolFeeFixAmount;
29
+ uint256 bundleFeeFixAmount;
30
+ uint256 distributionFeeFixAmount;
31
+ uint256 productFeeVarAmount;
32
+ uint256 poolFeeVarAmount;
33
+ uint256 bundleFeeVarAmount;
34
+ uint256 distributionFeeVarAmount;
35
+ uint256 distributionOwnerFeeFixAmount;
36
+ // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
+ uint256 distributionOwnerFeeVarAmount;
38
+ // this value is based on distributor type referenced in the referral
39
+ uint256 commissionAmount;
40
+ // this is based on referral used
41
+ uint256 discountAmount;
42
+ }
43
+
12
44
  /// @dev policy data for the full policy lifecycle
13
45
  struct PolicyInfo {
14
46
  NftId productNftId;
15
47
  NftId bundleNftId;
16
48
  ReferralId referralId;
17
49
  RiskId riskId;
18
- uint256 sumInsuredAmount;
19
- uint256 premiumAmount;
20
- uint256 premiumPaidAmount;
21
- uint256 lifetime;
50
+ Amount sumInsuredAmount;
51
+ Amount premiumAmount; // expected premium at application time
52
+ Amount premiumPaidAmount; // actual paid premium
53
+ Seconds lifetime;
54
+ // policy application data, no changes after applying for a policy
22
55
  bytes applicationData;
23
- bytes policyData;
56
+ bytes processData;
24
57
  uint16 claimsCount;
25
58
  uint16 openClaimsCount;
26
- uint256 payoutAmount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
27
61
  Timestamp activatedAt; // time of underwriting
28
62
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
29
63
  Timestamp closedAt; // no locked capital (or declinedAt)
@@ -31,16 +65,19 @@ interface IPolicy {
31
65
 
32
66
  // claimId neeeds to be encoded policyNftId:claimId combination
33
67
  struct ClaimInfo {
34
- uint256 claimAmount;
35
- uint256 paidAmount;
36
- bytes data;
37
- Timestamp closedAt; // payoment of confirmed claim amount (or declinedAt)
68
+ Amount claimAmount;
69
+ Amount paidAmount;
70
+ uint8 payoutsCount;
71
+ uint8 openPayoutsCount;
72
+ bytes submissionData; // claim submission data, no changes after submitting the claim
73
+ bytes processData; // data that may include information supporting confirm or decline
74
+ Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
38
75
  }
39
76
 
40
77
  // claimId neeeds to be encoded policyNftId:claimId combination
41
78
  struct PayoutInfo {
42
79
  ClaimId claimId;
43
- uint256 amount;
80
+ Amount amount;
44
81
  bytes data;
45
82
  Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
46
83
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
4
+ import {NftId} from "../../type/NftId.sol";
5
5
 
6
6
  interface IRisk {
7
7
  struct RiskInfo {
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
- contract TestUsdc is ERC20 {
6
+ contract Dip is ERC20 {
7
7
 
8
8
  // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - Test";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
12
  uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
13
  // decimals == 18 (openzeppelin erc20 default)
14
14
  constructor()
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {Timestamp} from "../type/Timestamp.sol";
6
+
7
+
8
+ interface IOracle {
9
+
10
+ struct RequestInfo {
11
+ NftId requesterNftId; // originator of the request
12
+ string callbackMethodName; // callback function of the requestor to call to provide response data
13
+ NftId oracleNftId; // responsible oracle component
14
+ bytes requestData;
15
+ bytes responseData;
16
+ Timestamp respondedAt; // response timestamp
17
+ Timestamp expiredAt; // expiry timestamp
18
+ bool isCancelled;
19
+ }
20
+ }
@@ -0,0 +1,32 @@
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
+
15
+ /// @dev callback method for requesting some data from the oracle
16
+ function request(
17
+ RequestId requestId,
18
+ NftId requesterNftId,
19
+ bytes calldata requestData,
20
+ Timestamp expiryAt
21
+ ) external;
22
+
23
+
24
+ /// @dev callback method for cancelling the specified oracle request
25
+ function cancel(
26
+ RequestId requestId
27
+ ) external;
28
+
29
+
30
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
31
+ function isVerifying() external view returns (bool verifying);
32
+ }
@@ -0,0 +1,65 @@
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 {RequestId} from "../type/RequestId.sol";
7
+ import {StateId} from "../type/StateId.sol";
8
+ import {Timestamp} from "../type/Timestamp.sol";
9
+
10
+
11
+ interface IOracleService is IService {
12
+
13
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
14
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
15
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
16
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
17
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
+
19
+ // create request
20
+ error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
+ error ErrorOracleServiceCallbackMethodNameEmpty();
23
+
24
+ // respond
25
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
26
+
27
+ // get request info
28
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
29
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
30
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
31
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
32
+
33
+ /// @dev send an oracle request to the specified oracle component.
34
+ /// the function returns the id of the newly created request.
35
+ /// permissioned: only registered components may send requests to oracles.
36
+ function request(
37
+ NftId oracleNftId,
38
+ bytes calldata requestData,
39
+ Timestamp expiryAt,
40
+ string calldata callbackMethodName
41
+ ) external returns (RequestId requestId);
42
+
43
+ /// @dev respond to oracle request by oracle compnent.
44
+ /// the response data is amende in the request info stored with the instance.
45
+ /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
46
+ /// or to FAILED when calling the requester is not succesful.
47
+ /// the function returns true iff the state changes to FULFILLED.
48
+ /// permissioned: only the oracle component linked to the request id may call this method
49
+ function respond(
50
+ RequestId requestId,
51
+ bytes calldata responseData
52
+ ) external returns (bool success);
53
+
54
+ /// @dev re send a failed response to the requester.
55
+ /// only requests in state FAILED may be re sent.
56
+ /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
57
+ /// permissioned: only the requester may resend a request
58
+ function resend(RequestId requestId) external;
59
+
60
+ /// @dev notify the oracle component that the specified request has become invalid.
61
+ /// only requests in state ACTIVE may be cancelled.
62
+ /// permissioned: only the requester may cancel a request
63
+ function cancel(RequestId requestId) external;
64
+
65
+ }
@@ -0,0 +1,145 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
+ import {IOracleService} from "./IOracleService.sol";
6
+ import {NftId, NftIdLib} from "../type/NftId.sol";
7
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
8
+ import {IComponentService} from "../shared/IComponentService.sol";
9
+ import {IOracleComponent} from "./IOracleComponent.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {InstanceReader} from "../instance/InstanceReader.sol";
12
+ import {RequestId} from "../type/RequestId.sol";
13
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
14
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
16
+
17
+
18
+ abstract contract Oracle is
19
+ InstanceLinkedComponent,
20
+ IOracleComponent
21
+ {
22
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Oracle")) - 1)) & ~bytes32(uint256(0xff));
23
+ bytes32 public constant ORACLE_STORAGE_LOCATION_V1 = 0xaab7c0ea03d290e56d6c060e0733d3ebcbe647f7694616a2ec52738a64b2f900;
24
+
25
+ struct OracleStorage {
26
+ IComponentService _componentService;
27
+ IOracleService _oracleService;
28
+ }
29
+
30
+
31
+ function initializeOracle(
32
+ address registry,
33
+ NftId instanceNftId,
34
+ address initialOwner,
35
+ string memory name,
36
+ address token,
37
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
38
+ bytes memory componentData // component specifidc data
39
+ )
40
+ public
41
+ virtual
42
+ onlyInitializing()
43
+ {
44
+ initializeInstanceLinkedComponent(registry, instanceNftId, name, token, ORACLE(), true, initialOwner, registryData, componentData);
45
+
46
+ OracleStorage storage $ = _getOracleStorage();
47
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
48
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
49
+
50
+ registerInterface(type(IOracleComponent).interfaceId);
51
+ }
52
+
53
+
54
+ function register()
55
+ external
56
+ virtual
57
+ onlyOwner()
58
+ {
59
+ _getOracleStorage()._componentService.registerOracle();
60
+ }
61
+
62
+
63
+ function isVerifying()
64
+ external
65
+ virtual
66
+ view
67
+ returns (bool verifying)
68
+ {
69
+ return false;
70
+ }
71
+
72
+
73
+ function request(
74
+ RequestId requestId,
75
+ NftId requesterId,
76
+ bytes calldata requestData,
77
+ Timestamp expiryAt
78
+ )
79
+ external
80
+ virtual
81
+ // restricted() // TODO enable: only oracle service
82
+ {
83
+ _request(requestId, requesterId, requestData, expiryAt);
84
+ }
85
+
86
+
87
+ function cancel(
88
+ RequestId requestId
89
+ )
90
+ external
91
+ virtual
92
+ // restricted() // TODO enable: only oracle service
93
+ {
94
+ _cancel(requestId);
95
+ }
96
+
97
+
98
+ /// @dev internal function for handling requests.
99
+ /// empty implementation.
100
+ /// overwrite this function to implement use case specific handling
101
+ /// for oracle calls.
102
+ function _request(
103
+ RequestId requestId,
104
+ NftId requesterId,
105
+ bytes calldata requestData,
106
+ Timestamp expiryAt
107
+ )
108
+ internal
109
+ virtual
110
+ {
111
+ }
112
+
113
+
114
+ /// @dev internal function for cancelling requests.
115
+ /// empty implementation.
116
+ /// overwrite this function to implement use case specific cancelling
117
+ function _cancel(
118
+ RequestId requestId
119
+ )
120
+ internal
121
+ virtual
122
+ {
123
+ }
124
+
125
+
126
+ /// @dev internal function for handling oracle responses.
127
+ /// use this function in use case specific external/public functions
128
+ /// to handle use case specific response handling.
129
+ function _respond(
130
+ RequestId requestId,
131
+ bytes memory responseData
132
+ )
133
+ internal
134
+ virtual
135
+ {
136
+ _getOracleStorage()._oracleService.respond(
137
+ requestId, responseData);
138
+ }
139
+
140
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
141
+ assembly {
142
+ $.slot := ORACLE_STORAGE_LOCATION_V1
143
+ }
144
+ }
145
+ }