@etherisc/gif-next 0.0.2-00080dc-272

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 (441) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +495 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  4. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  6. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  8. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  10. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  12. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  14. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  16. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +665 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  18. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  19. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +4 -0
  20. package/artifacts/contracts/instance/Instance.sol/Instance.json +965 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  22. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  24. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  26. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  28. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  30. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  32. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  34. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  38. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  40. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  46. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.json +10 -0
  47. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  48. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  50. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  51. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.json +10 -0
  53. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  55. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  56. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  57. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
  59. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  61. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  62. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  63. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  64. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  65. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  66. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  67. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  68. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  69. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  70. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  71. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  72. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  73. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  74. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  75. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  76. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  77. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  78. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  79. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  80. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  81. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  82. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  83. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  84. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  85. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  86. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  87. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  88. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  89. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  90. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  91. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  92. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  93. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  94. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  95. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  96. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  97. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  99. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  100. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  101. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  102. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  103. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  104. package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
  105. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  106. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  107. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  109. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  110. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  111. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  113. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  114. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  115. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  116. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  117. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  119. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  120. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +784 -0
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +4 -0
  122. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +906 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  124. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  125. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  127. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  129. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +4 -0
  130. package/artifacts/contracts/registry/Registry.sol/Registry.json +1230 -0
  131. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  132. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  133. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  134. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  135. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  137. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  138. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
  139. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  140. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1234 -0
  141. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  142. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  143. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  144. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  146. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  147. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  148. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  149. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  150. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  151. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  152. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  155. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  156. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  157. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  158. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  159. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  160. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  162. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  166. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  168. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  169. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  170. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  171. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  172. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  173. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  174. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  176. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  178. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  180. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  182. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +110 -0
  185. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  186. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +131 -0
  187. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  188. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  189. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  190. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +181 -0
  191. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/IService.sol/IService.json +346 -0
  195. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  196. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  198. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  202. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
  203. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +156 -0
  205. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  206. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  208. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  210. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  211. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  213. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  215. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  217. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  218. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  219. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  221. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  222. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  223. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  224. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  285. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  297. package/contracts/distribution/Distribution.sol +261 -0
  298. package/contracts/distribution/DistributionService.sol +297 -0
  299. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  300. package/contracts/distribution/IDistributionComponent.sol +66 -0
  301. package/contracts/distribution/IDistributionService.sol +81 -0
  302. package/contracts/instance/BundleManager.sol +126 -0
  303. package/contracts/instance/IInstance.sol +87 -0
  304. package/contracts/instance/IInstanceService.sol +97 -0
  305. package/contracts/instance/Instance.sol +263 -0
  306. package/contracts/instance/InstanceAdmin.sol +331 -0
  307. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  308. package/contracts/instance/InstanceReader.sol +392 -0
  309. package/contracts/instance/InstanceService.sol +439 -0
  310. package/contracts/instance/InstanceServiceManager.sol +44 -0
  311. package/contracts/instance/InstanceStore.sol +272 -0
  312. package/contracts/instance/base/BalanceStore.sol +123 -0
  313. package/contracts/instance/base/Cloneable.sol +28 -0
  314. package/contracts/instance/base/ObjectCounter.sol +21 -0
  315. package/contracts/instance/base/ObjectLifecycle.sol +96 -0
  316. package/contracts/instance/base/ObjectManager.sol +80 -0
  317. package/contracts/instance/module/IAccess.sol +46 -0
  318. package/contracts/instance/module/IBundle.sol +20 -0
  319. package/contracts/instance/module/IComponents.sol +52 -0
  320. package/contracts/instance/module/IDistribution.sol +42 -0
  321. package/contracts/instance/module/IPolicy.sol +84 -0
  322. package/contracts/instance/module/IRisk.sol +11 -0
  323. package/contracts/mock/Dip.sol +26 -0
  324. package/contracts/oracle/IOracle.sol +20 -0
  325. package/contracts/oracle/IOracleComponent.sol +32 -0
  326. package/contracts/oracle/IOracleService.sol +65 -0
  327. package/contracts/oracle/Oracle.sol +145 -0
  328. package/contracts/oracle/OracleService.sol +278 -0
  329. package/contracts/oracle/OracleServiceManager.sol +42 -0
  330. package/contracts/pool/BundleService.sol +296 -0
  331. package/contracts/pool/BundleServiceManager.sol +42 -0
  332. package/contracts/pool/IBundleService.sol +106 -0
  333. package/contracts/pool/IPoolComponent.sol +112 -0
  334. package/contracts/pool/IPoolService.sol +150 -0
  335. package/contracts/pool/Pool.sol +299 -0
  336. package/contracts/pool/PoolService.sol +452 -0
  337. package/contracts/pool/PoolServiceManager.sol +42 -0
  338. package/contracts/product/ApplicationService.sol +254 -0
  339. package/contracts/product/ApplicationServiceManager.sol +38 -0
  340. package/contracts/product/ClaimService.sol +442 -0
  341. package/contracts/product/ClaimServiceManager.sol +38 -0
  342. package/contracts/product/IApplicationService.sol +62 -0
  343. package/contracts/product/IClaimService.sol +99 -0
  344. package/contracts/product/IPolicyService.sol +78 -0
  345. package/contracts/product/IPricingService.sol +39 -0
  346. package/contracts/product/IProductComponent.sol +42 -0
  347. package/contracts/product/IProductService.sol +33 -0
  348. package/contracts/product/PolicyService.sol +475 -0
  349. package/contracts/product/PolicyServiceManager.sol +42 -0
  350. package/contracts/product/PricingService.sol +300 -0
  351. package/contracts/product/PricingServiceManager.sol +42 -0
  352. package/contracts/product/Product.sol +377 -0
  353. package/contracts/product/ProductService.sol +124 -0
  354. package/contracts/product/ProductServiceManager.sol +42 -0
  355. package/contracts/registry/ChainNft.sol +217 -0
  356. package/contracts/registry/IRegistry.sol +124 -0
  357. package/contracts/registry/IRegistryService.sol +69 -0
  358. package/contracts/registry/IServiceAuthorization.sol +38 -0
  359. package/contracts/registry/ITransferInterceptor.sol +7 -0
  360. package/contracts/registry/Registry.sol +582 -0
  361. package/contracts/registry/RegistryAdmin.sol +333 -0
  362. package/contracts/registry/RegistryService.sol +266 -0
  363. package/contracts/registry/RegistryServiceManager.sol +53 -0
  364. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  365. package/contracts/registry/ReleaseManager.sol +523 -0
  366. package/contracts/registry/ServiceAuthorization.sol +90 -0
  367. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  368. package/contracts/registry/TokenRegistry.sol +315 -0
  369. package/contracts/shared/AccessAdmin.sol +759 -0
  370. package/contracts/shared/AccessManagerCustom.sol +741 -0
  371. package/contracts/shared/AccessManagerExtended.sol +481 -0
  372. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  373. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  374. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  375. package/contracts/shared/Component.sol +281 -0
  376. package/contracts/shared/ComponentService.sol +620 -0
  377. package/contracts/shared/ComponentServiceManager.sol +35 -0
  378. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  379. package/contracts/shared/ERC165.sol +27 -0
  380. package/contracts/shared/IAccessAdmin.sol +168 -0
  381. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  382. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  383. package/contracts/shared/IComponent.sol +70 -0
  384. package/contracts/shared/IComponentService.sol +102 -0
  385. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  386. package/contracts/shared/IKeyValueStore.sol +54 -0
  387. package/contracts/shared/ILifecycle.sol +29 -0
  388. package/contracts/shared/INftOwnable.sol +23 -0
  389. package/contracts/shared/IPolicyHolder.sol +45 -0
  390. package/contracts/shared/IRegisterable.sol +15 -0
  391. package/contracts/shared/IRegistryLinked.sol +11 -0
  392. package/contracts/shared/IService.sol +25 -0
  393. package/contracts/shared/IVersionable.sol +53 -0
  394. package/contracts/shared/InitializableCustom.sol +177 -0
  395. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  396. package/contracts/shared/KeyValueStore.sol +131 -0
  397. package/contracts/shared/Lifecycle.sol +71 -0
  398. package/contracts/shared/NftIdSetManager.sol +65 -0
  399. package/contracts/shared/NftOwnable.sol +107 -0
  400. package/contracts/shared/PolicyHolder.sol +102 -0
  401. package/contracts/shared/ProxyManager.sol +199 -0
  402. package/contracts/shared/Registerable.sol +75 -0
  403. package/contracts/shared/RegistryLinked.sol +43 -0
  404. package/contracts/shared/Service.sol +83 -0
  405. package/contracts/shared/TokenHandler.sol +58 -0
  406. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  407. package/contracts/shared/Versionable.sol +59 -0
  408. package/contracts/staking/IStaking.sol +168 -0
  409. package/contracts/staking/IStakingService.sol +153 -0
  410. package/contracts/staking/StakeManagerLib.sol +231 -0
  411. package/contracts/staking/Staking.sol +513 -0
  412. package/contracts/staking/StakingLifecycle.sol +24 -0
  413. package/contracts/staking/StakingManager.sol +54 -0
  414. package/contracts/staking/StakingReader.sol +187 -0
  415. package/contracts/staking/StakingService.sol +411 -0
  416. package/contracts/staking/StakingServiceManager.sol +44 -0
  417. package/contracts/staking/StakingStore.sol +615 -0
  418. package/contracts/staking/TargetManagerLib.sol +207 -0
  419. package/contracts/type/AddressSet.sol +58 -0
  420. package/contracts/type/Amount.sol +128 -0
  421. package/contracts/type/Blocknumber.sol +136 -0
  422. package/contracts/type/ClaimId.sol +75 -0
  423. package/contracts/type/DistributorType.sol +55 -0
  424. package/contracts/type/Fee.sol +66 -0
  425. package/contracts/type/Key32.sol +50 -0
  426. package/contracts/type/NftId.sol +78 -0
  427. package/contracts/type/NftIdSet.sol +62 -0
  428. package/contracts/type/ObjectType.sol +241 -0
  429. package/contracts/type/PayoutId.sol +82 -0
  430. package/contracts/type/Referral.sol +89 -0
  431. package/contracts/type/RequestId.sol +75 -0
  432. package/contracts/type/RiskId.sol +43 -0
  433. package/contracts/type/RoleId.sol +201 -0
  434. package/contracts/type/Seconds.sol +81 -0
  435. package/contracts/type/Selector.sol +102 -0
  436. package/contracts/type/StateId.sol +135 -0
  437. package/contracts/type/String.sol +53 -0
  438. package/contracts/type/Timestamp.sol +136 -0
  439. package/contracts/type/UFixed.sol +326 -0
  440. package/contracts/type/Version.sol +108 -0
  441. package/package.json +55 -0
@@ -0,0 +1,392 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {Fee, FeeLib} from "../type/Fee.sol";
10
+ import {Key32} from "../type/Key32.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {ObjectType, COMPONENT, DISTRIBUTOR, DISTRIBUTION, INSTANCE, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
13
+ import {PayoutId} from "../type/PayoutId.sol";
14
+ import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
15
+ import {RequestId} from "../type/RequestId.sol";
16
+ import {RiskId} from "../type/RiskId.sol";
17
+ import {RoleId} from "../type/RoleId.sol";
18
+ import {StateId} from "../type/StateId.sol";
19
+ import {UFixed, MathLib, UFixedLib} from "../type/UFixed.sol";
20
+ import {Version} from "../type/Version.sol";
21
+
22
+ import {IRegistry} from "../registry/IRegistry.sol";
23
+ import {IBundle} from "../instance/module/IBundle.sol";
24
+ import {IComponents} from "../instance/module/IComponents.sol";
25
+ import {IDistribution} from "../instance/module/IDistribution.sol";
26
+ import {IInstance} from "./IInstance.sol";
27
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
28
+ import {IOracle} from "../oracle/IOracle.sol";
29
+ import {IPolicy} from "../instance/module/IPolicy.sol";
30
+ import {IRisk} from "../instance/module/IRisk.sol";
31
+ import {TimestampLib} from "../type/Timestamp.sol";
32
+
33
+ import {InstanceStore} from "./InstanceStore.sol";
34
+
35
+
36
+ contract InstanceReader {
37
+
38
+ error ErrorInstanceReaderAlreadyInitialized();
39
+ error ErrorInstanceReaderInstanceAddressZero();
40
+
41
+ bool private _initialized;
42
+
43
+ IInstance internal _instance;
44
+ InstanceStore internal _store;
45
+
46
+ function initialize(address instance) public {
47
+ if(_initialized) {
48
+ revert ErrorInstanceReaderAlreadyInitialized();
49
+ }
50
+
51
+ if(instance == address(0)) {
52
+ revert ErrorInstanceReaderInstanceAddressZero();
53
+ }
54
+
55
+ _instance = IInstance(instance);
56
+ _store = _instance.getInstanceStore();
57
+
58
+ _initialized = true;
59
+ }
60
+
61
+
62
+ // module specific functions
63
+
64
+ function getPolicyInfo(NftId policyNftId)
65
+ public
66
+ view
67
+ returns (IPolicy.PolicyInfo memory info)
68
+ {
69
+ bytes memory data = _store.getData(toPolicyKey(policyNftId));
70
+ if (data.length > 0) {
71
+ return abi.decode(data, (IPolicy.PolicyInfo));
72
+ }
73
+ }
74
+
75
+ function getPolicyState(NftId policyNftId)
76
+ public
77
+ view
78
+ returns (StateId state)
79
+ {
80
+ return _store.getState(toPolicyKey(policyNftId));
81
+ }
82
+
83
+ /// @dev returns true iff policy may be closed
84
+ /// a policy can be closed all conditions below are met
85
+ /// - policy exists
86
+ /// - has been activated
87
+ /// - is not yet closed
88
+ /// - has no open claims
89
+ /// - claim amount matches sum insured amount or is expired
90
+ function policyIsCloseable(NftId policyNftId)
91
+ public
92
+ view
93
+ returns (bool isCloseable)
94
+ {
95
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
96
+
97
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
98
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
99
+ if (info.closedAt.gtz()) { return false; } // not closeable: already closed
100
+ if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
101
+
102
+ // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
103
+ if (info.claimAmount == info.sumInsuredAmount) { return true; }
104
+
105
+ // not closeable: not yet expired
106
+ if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
107
+
108
+ // all conditionsl to close the policy are met
109
+ return true;
110
+ }
111
+
112
+ function getClaimInfo(NftId policyNftId, ClaimId claimId)
113
+ public
114
+ view
115
+ returns (IPolicy.ClaimInfo memory info)
116
+ {
117
+ bytes memory data = _store.getData(claimId.toKey32(policyNftId));
118
+ if (data.length > 0) {
119
+ return abi.decode(data, (IPolicy.ClaimInfo));
120
+ }
121
+ }
122
+
123
+ function getClaimState(NftId policyNftId, ClaimId claimId)
124
+ public
125
+ view
126
+ returns (StateId state)
127
+ {
128
+ return _store.getState(claimId.toKey32(policyNftId));
129
+ }
130
+
131
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
132
+ public
133
+ view
134
+ returns (IPolicy.PayoutInfo memory info)
135
+ {
136
+ bytes memory data = _store.getData(payoutId.toKey32(policyNftId));
137
+ if (data.length > 0) {
138
+ return abi.decode(data, (IPolicy.PayoutInfo));
139
+ }
140
+ }
141
+
142
+ function getPayoutState(NftId policyNftId, PayoutId payoutId)
143
+ public
144
+ view
145
+ returns (StateId state)
146
+ {
147
+ return _store.getState(payoutId.toKey32(policyNftId));
148
+ }
149
+
150
+ function getRiskInfo(RiskId riskId)
151
+ public
152
+ view
153
+ returns (IRisk.RiskInfo memory info)
154
+ {
155
+ bytes memory data = _store.getData(riskId.toKey32());
156
+ if (data.length > 0) {
157
+ return abi.decode(data, (IRisk.RiskInfo));
158
+ }
159
+ }
160
+
161
+ function getTokenHandler(NftId componentNftId)
162
+ public
163
+ view
164
+ returns (address tokenHandler)
165
+ {
166
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
167
+
168
+ if (data.length > 0) {
169
+ IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
170
+ return address(info.tokenHandler);
171
+ }
172
+ }
173
+
174
+ function getBundleInfo(NftId bundleNftId)
175
+ public
176
+ view
177
+ returns (IBundle.BundleInfo memory info)
178
+ {
179
+ bytes memory data = _store.getData(toBundleKey(bundleNftId));
180
+ if (data.length > 0) {
181
+ return abi.decode(data, (IBundle.BundleInfo));
182
+ }
183
+ }
184
+
185
+ function getDistributorTypeInfo(DistributorType distributorType)
186
+ public
187
+ view
188
+ returns (IDistribution.DistributorTypeInfo memory info)
189
+ {
190
+ bytes memory data = _store.getData(distributorType.toKey32());
191
+ if (data.length > 0) {
192
+ return abi.decode(data, (IDistribution.DistributorTypeInfo));
193
+ }
194
+ }
195
+
196
+ function getDistributorInfo(NftId distributorNftId)
197
+ public
198
+ view
199
+ returns (IDistribution.DistributorInfo memory info)
200
+ {
201
+ bytes memory data = _store.getData(toDistributorKey(distributorNftId));
202
+ if (data.length > 0) {
203
+ return abi.decode(data, (IDistribution.DistributorInfo));
204
+ }
205
+ }
206
+
207
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
208
+ return _store.getBalanceAmount(targetNftId);
209
+ }
210
+
211
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
212
+ return _store.getLockedAmount(targetNftId);
213
+ }
214
+
215
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
216
+ return _store.getFeeAmount(targetNftId);
217
+ }
218
+
219
+ function getComponentInfo(NftId componentNftId)
220
+ public
221
+ view
222
+ returns (IComponents.ComponentInfo memory info)
223
+ {
224
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
225
+ if (data.length > 0) {
226
+ return abi.decode(data, (IComponents.ComponentInfo));
227
+ }
228
+ }
229
+
230
+ function getProductInfo(NftId productNftId)
231
+ public
232
+ view
233
+ returns (IComponents.ProductInfo memory info)
234
+ {
235
+ bytes memory data = _store.getData(toProductKey(productNftId));
236
+ if (data.length > 0) {
237
+ return abi.decode(data, (IComponents.ProductInfo));
238
+ }
239
+ }
240
+
241
+ function getPoolInfo(NftId poolNftId)
242
+ public
243
+ view
244
+ returns (IComponents.PoolInfo memory info)
245
+ {
246
+ bytes memory data = _store.getData(toPoolKey(poolNftId));
247
+ if (data.length > 0) {
248
+ return abi.decode(data, (IComponents.PoolInfo));
249
+ }
250
+ }
251
+
252
+ function getReferralInfo(ReferralId referralId)
253
+ public
254
+ view
255
+ returns (IDistribution.ReferralInfo memory info)
256
+ {
257
+ bytes memory data = _store.getData(referralId.toKey32());
258
+ if (data.length > 0) {
259
+ return abi.decode(data, (IDistribution.ReferralInfo));
260
+ }
261
+ }
262
+
263
+ function getRequestInfo(RequestId requestId)
264
+ public
265
+ view
266
+ returns (IOracle.RequestInfo memory requestInfo)
267
+ {
268
+ bytes memory data = _store.getData(requestId.toKey32());
269
+ if (data.length > 0) {
270
+ return abi.decode(data, (IOracle.RequestInfo));
271
+ }
272
+ }
273
+
274
+ function getMetadata(Key32 key)
275
+ public
276
+ view
277
+ returns (IKeyValueStore.Metadata memory metadata)
278
+ {
279
+ return _store.getMetadata(key);
280
+ }
281
+
282
+ function getState(Key32 key)
283
+ public
284
+ view
285
+ returns (StateId state)
286
+ {
287
+ return _store.getMetadata(key).state;
288
+ }
289
+
290
+
291
+ function toReferralId(
292
+ NftId distributionNftId,
293
+ string memory referralCode
294
+ )
295
+ public
296
+ pure
297
+ returns (ReferralId referralId)
298
+ {
299
+ return ReferralLib.toReferralId(
300
+ distributionNftId,
301
+ referralCode);
302
+ }
303
+
304
+
305
+ function getDiscountPercentage(ReferralId referralId)
306
+ public
307
+ view
308
+ returns (
309
+ UFixed discountPercentage,
310
+ ReferralStatus status
311
+ )
312
+ {
313
+ IDistribution.ReferralInfo memory info = getReferralInfo(
314
+ referralId);
315
+
316
+ if (info.expiryAt.eqz()) {
317
+ return (
318
+ UFixedLib.zero(),
319
+ REFERRAL_ERROR_UNKNOWN());
320
+ }
321
+
322
+ if (info.expiryAt < TimestampLib.blockTimestamp()) {
323
+ return (
324
+ UFixedLib.zero(),
325
+ REFERRAL_ERROR_EXPIRED());
326
+ }
327
+
328
+ if (info.usedReferrals >= info.maxReferrals) {
329
+ return (
330
+ UFixedLib.zero(),
331
+ REFERRAL_ERROR_EXHAUSTED());
332
+ }
333
+
334
+ return (
335
+ info.discountPercentage,
336
+ REFERRAL_OK()
337
+ );
338
+ }
339
+
340
+
341
+ function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
342
+ (isMember, ) = _instance.getInstanceAccessManager().hasRole(
343
+ roleId.toInt(), account);
344
+ }
345
+
346
+
347
+ function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
348
+ return policyNftId.toKey32(POLICY());
349
+ }
350
+
351
+
352
+ function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
353
+ return distributorNftId.toKey32(DISTRIBUTOR());
354
+ }
355
+
356
+ function toBundleKey(NftId poolNftId) public pure returns (Key32) {
357
+ return poolNftId.toKey32(BUNDLE());
358
+ }
359
+
360
+ function toComponentKey(NftId componentNftId) public pure returns (Key32) {
361
+ return componentNftId.toKey32(COMPONENT());
362
+ }
363
+
364
+ function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
365
+ return distributionNftId.toKey32(DISTRIBUTION());
366
+ }
367
+
368
+ function toPoolKey(NftId poolNftId) public pure returns (Key32) {
369
+ return poolNftId.toKey32(POOL());
370
+ }
371
+
372
+ function toProductKey(NftId productNftId) public pure returns (Key32) {
373
+ return productNftId.toKey32(PRODUCT());
374
+ }
375
+
376
+ // low level function
377
+ function getInstance() external view returns (IInstance instance) {
378
+ return _instance;
379
+ }
380
+
381
+ function getInstanceStore() external view returns (IKeyValueStore store) {
382
+ return _store;
383
+ }
384
+
385
+ function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
386
+ return UFixedLib.toUFixed(value, exp);
387
+ }
388
+
389
+ function toInt(UFixed value) public pure returns (uint256) {
390
+ return UFixedLib.toInt(value);
391
+ }
392
+ }