@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f677999-878

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 (442) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +79 -67
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +231 -186
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +57 -51
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +119 -73
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +257 -190
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +150 -56
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +315 -150
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +351 -198
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -26
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  157. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +157 -130
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +102 -81
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +33 -19
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  179. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  181. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  192. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  202. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
  222. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  228. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  231. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  246. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  252. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  254. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
  256. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  258. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  260. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  262. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  264. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  266. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  268. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
  270. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
  272. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  274. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  275. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  276. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  277. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  286. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  287. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  288. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  290. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  292. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  294. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  296. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  298. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  300. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  302. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  304. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  323. package/contracts/accounting/AccountingService.sol +262 -0
  324. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  325. package/contracts/accounting/IAccountingService.sol +45 -0
  326. package/contracts/authorization/AccessAdmin.sol +156 -82
  327. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  328. package/contracts/authorization/Authorization.sol +277 -229
  329. package/contracts/authorization/IAccessAdmin.sol +13 -7
  330. package/contracts/authorization/IAuthorization.sol +15 -1
  331. package/contracts/distribution/BasicDistribution.sol +11 -9
  332. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  333. package/contracts/distribution/Distribution.sol +37 -32
  334. package/contracts/distribution/DistributionService.sol +59 -33
  335. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  336. package/contracts/distribution/IDistributionService.sol +16 -13
  337. package/contracts/examples/fire/FirePool.sol +6 -2
  338. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  339. package/contracts/examples/fire/FireProduct.sol +9 -3
  340. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  341. package/contracts/examples/unpermissioned/SimpleDistribution.sol +29 -9
  342. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  343. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  344. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  345. package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -4
  346. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  347. package/contracts/instance/BundleSet.sol +4 -4
  348. package/contracts/instance/IInstance.sol +6 -7
  349. package/contracts/instance/IInstanceService.sol +2 -0
  350. package/contracts/instance/Instance.sol +19 -11
  351. package/contracts/instance/InstanceAdmin.sol +213 -64
  352. package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
  353. package/contracts/instance/InstanceReader.sol +91 -35
  354. package/contracts/instance/InstanceService.sol +43 -31
  355. package/contracts/instance/InstanceServiceManager.sol +1 -1
  356. package/contracts/instance/InstanceStore.sol +13 -2
  357. package/contracts/instance/RiskSet.sol +11 -12
  358. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  359. package/contracts/instance/base/ObjectSet.sol +7 -8
  360. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  361. package/contracts/instance/module/IComponents.sol +3 -2
  362. package/contracts/instance/module/IDistribution.sol +5 -2
  363. package/contracts/instance/module/IRisk.sol +2 -0
  364. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  365. package/contracts/oracle/Oracle.sol +1 -1
  366. package/contracts/oracle/OracleService.sol +16 -15
  367. package/contracts/oracle/OracleServiceManager.sol +1 -1
  368. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  369. package/contracts/pool/BundleService.sol +35 -63
  370. package/contracts/pool/BundleServiceManager.sol +1 -1
  371. package/contracts/pool/IBundleService.sol +13 -20
  372. package/contracts/pool/IPoolService.sol +50 -38
  373. package/contracts/pool/Pool.sol +9 -9
  374. package/contracts/pool/PoolLib.sol +216 -0
  375. package/contracts/pool/PoolService.sol +307 -162
  376. package/contracts/pool/PoolServiceManager.sol +1 -1
  377. package/contracts/product/ApplicationService.sol +3 -3
  378. package/contracts/product/ApplicationServiceManager.sol +1 -1
  379. package/contracts/product/BasicProduct.sol +2 -0
  380. package/contracts/product/BasicProductAuthorization.sol +24 -10
  381. package/contracts/product/ClaimService.sol +157 -139
  382. package/contracts/product/ClaimServiceManager.sol +1 -1
  383. package/contracts/product/IClaimService.sol +14 -2
  384. package/contracts/product/IPolicyService.sol +11 -6
  385. package/contracts/product/IProductComponent.sol +4 -1
  386. package/contracts/product/IRiskService.sol +5 -8
  387. package/contracts/product/PolicyService.sol +95 -146
  388. package/contracts/product/PolicyServiceLib.sol +65 -0
  389. package/contracts/product/PolicyServiceManager.sol +1 -1
  390. package/contracts/product/PricingService.sol +23 -19
  391. package/contracts/product/PricingServiceManager.sol +3 -3
  392. package/contracts/product/Product.sol +55 -13
  393. package/contracts/product/RiskService.sol +66 -29
  394. package/contracts/product/RiskServiceManager.sol +1 -1
  395. package/contracts/registry/IRegistry.sol +8 -15
  396. package/contracts/registry/IRelease.sol +26 -0
  397. package/contracts/registry/Registry.sol +7 -2
  398. package/contracts/registry/RegistryAdmin.sol +129 -226
  399. package/contracts/registry/RegistryService.sol +3 -3
  400. package/contracts/registry/RegistryServiceManager.sol +1 -1
  401. package/contracts/registry/ReleaseAdmin.sol +245 -0
  402. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  403. package/contracts/registry/ReleaseRegistry.sol +124 -99
  404. package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
  405. package/contracts/registry/TokenRegistry.sol +6 -8
  406. package/contracts/shared/Component.sol +32 -27
  407. package/contracts/shared/ComponentService.sol +89 -266
  408. package/contracts/shared/ComponentServiceManager.sol +1 -1
  409. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  410. package/contracts/shared/ContractLib.sol +32 -3
  411. package/contracts/shared/IComponent.sol +3 -9
  412. package/contracts/shared/IComponentService.sol +1 -23
  413. package/contracts/shared/IRegisterable.sol +15 -4
  414. package/contracts/shared/IService.sol +3 -5
  415. package/contracts/shared/InstanceLinkedComponent.sol +3 -3
  416. package/contracts/shared/NftOwnable.sol +4 -4
  417. package/contracts/shared/PolicyHolder.sol +1 -1
  418. package/contracts/shared/Registerable.sol +45 -19
  419. package/contracts/shared/RegistryLinked.sol +1 -1
  420. package/contracts/shared/Service.sol +8 -27
  421. package/contracts/shared/TokenHandler.sol +40 -88
  422. package/contracts/staking/IStaking.sol +0 -8
  423. package/contracts/staking/IStakingService.sol +8 -0
  424. package/contracts/staking/StakeManagerLib.sol +1 -1
  425. package/contracts/staking/Staking.sol +34 -13
  426. package/contracts/staking/StakingReader.sol +1 -1
  427. package/contracts/staking/StakingService.sol +32 -42
  428. package/contracts/staking/StakingServiceManager.sol +5 -4
  429. package/contracts/type/ObjectType.sol +46 -21
  430. package/contracts/type/RiskId.sol +9 -3
  431. package/contracts/type/RoleId.sol +24 -4
  432. package/contracts/type/Selector.sol +5 -0
  433. package/contracts/type/Timestamp.sol +0 -5
  434. package/contracts/type/Version.sol +15 -5
  435. package/contracts/upgradeability/ProxyManager.sol +1 -1
  436. package/package.json +2 -2
  437. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  438. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  439. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  440. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  441. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  442. package/contracts/instance/module/IAccess.sol +0 -46
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
6
6
  import {Amount} from "../../type/Amount.sol";
7
7
  import {Fee} from "../../type/Fee.sol";
8
8
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
9
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
10
  import {UFixed} from "../../type/UFixed.sol";
12
11
 
@@ -28,6 +27,9 @@ interface IComponents {
28
27
  NftId poolNftId; // mandatory
29
28
  NftId distributionNftId; // 0..1 (optional)
30
29
  NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
31
33
  Fee productFee; // product fee on net premium
32
34
  Fee processingFee; // product fee on payout amounts
33
35
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -37,7 +39,6 @@ interface IComponents {
37
39
  Fee performanceFee; // pool fee on profits from capital investors
38
40
  }
39
41
 
40
-
41
42
  struct PoolInfo {
42
43
  Amount maxBalanceAmount; // max balance amount allowed for pool
43
44
  bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Amount} from "../../type/Amount.sol";
5
5
  import {DistributorType} from "../../type/DistributorType.sol";
6
6
  import {NftId} from "../../type/NftId.sol";
7
+ import {Seconds} from "../../type/Seconds.sol";
7
8
  import {Timestamp} from "../../type/Timestamp.sol";
8
9
  import {UFixed} from "../../type/UFixed.sol";
9
10
 
@@ -11,11 +12,12 @@ interface IDistribution {
11
12
 
12
13
  struct DistributorTypeInfo {
13
14
  string name;
15
+ NftId distributionNftId;
14
16
  UFixed minDiscountPercentage;
15
17
  UFixed maxDiscountPercentage;
16
18
  UFixed commissionPercentage;
17
19
  uint32 maxReferralCount;
18
- uint32 maxReferralLifetime;
20
+ Seconds maxReferralLifetime;
19
21
  bool allowSelfReferrals;
20
22
  bool allowRenewals;
21
23
  bytes data;
@@ -28,7 +30,8 @@ interface IDistribution {
28
30
  uint32 numPoliciesSold;
29
31
  }
30
32
 
31
- struct ReferralInfo {
33
+ struct ReferralInfo {
34
+ NftId distributionNftId;
32
35
  NftId distributorNftId;
33
36
  string referralCode;
34
37
  UFixed discountPercentage;
@@ -2,11 +2,13 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
7
8
 
8
9
  struct RiskInfo {
9
10
  NftId productNftId;
11
+ Timestamp createdAt;
10
12
  bytes data;
11
13
  }
12
14
  }
@@ -15,18 +15,9 @@ contract BasicOracleAuthorization
15
15
  {
16
16
 
17
17
  constructor(string memory componentName)
18
- Authorization(componentName)
18
+ Authorization(componentName, ORACLE())
19
19
  {}
20
20
 
21
- function _setupTargets()
22
- internal
23
- virtual override
24
- {
25
- // basic component target
26
- _addComponentTargetWithRole(ORACLE());
27
- }
28
-
29
-
30
21
  function _setupTargetAuthorizations()
31
22
  internal
32
23
  virtual override
@@ -34,12 +25,12 @@ contract BasicOracleAuthorization
34
25
  IAccess.FunctionInfo[] storage functions;
35
26
 
36
27
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
28
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
38
29
  _authorize(functions, IOracle.request.selector, "request");
39
30
  _authorize(functions, IOracle.cancel.selector, "cancel");
40
31
 
41
32
  // authorize public role (open access to any account, only allows to lock target)
42
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
33
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
43
34
  _authorize(functions, BasicOracle.respond.selector, "respond");
44
35
  }
45
36
  }
@@ -69,7 +69,7 @@ abstract contract Oracle is
69
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
70
  onlyOwner()
71
71
  restricted()
72
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
73
73
  {
74
74
  revert ErrorOracleNotImplemented("withdrawFees");
75
75
  }
@@ -32,11 +32,11 @@ contract OracleService is
32
32
  initializer()
33
33
  {
34
34
  (
35
- address registryAddress,
36
- address authority
35
+ address authority,
36
+ address registry
37
37
  ) = abi.decode(data, (address, address));
38
38
 
39
- _initializeService(registryAddress, authority, owner);
39
+ __Service_init(authority, registry, owner);
40
40
  _registerInterface(type(IOracleService).interfaceId);
41
41
  }
42
42
 
@@ -52,11 +52,10 @@ contract OracleService is
52
52
  onlyNftOfType(oracleNftId, ORACLE())
53
53
  returns (RequestId requestId)
54
54
  {
55
- // IRegistry registry = getRegistry();
56
-
55
+ // checks
57
56
  // get and check active caller
58
57
  (
59
- IRegistry.ObjectInfo memory info,
58
+ IRegistry.ObjectInfo memory requesterInfo,
60
59
  address instance
61
60
  ) = ContractLib.getAndVerifyAnyComponent(
62
61
  getRegistry(), msg.sender, true);
@@ -65,8 +64,9 @@ contract OracleService is
65
64
  NftId requesterNftId,
66
65
  IOracleComponent oracle
67
66
  ) = _checkRequestParams(
68
- getRegistry(), oracleNftId, info, expiryAt, callbackMethodName);
67
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
69
68
 
69
+ // effects
70
70
  {
71
71
  // create request info
72
72
  IOracle.RequestInfo memory request = IOracle.RequestInfo({
@@ -84,14 +84,15 @@ contract OracleService is
84
84
  requestId = IInstance(instance).getInstanceStore().createRequest(request);
85
85
  }
86
86
 
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
88
+
89
+ // interactions
87
90
  // callback to oracle component
88
91
  oracle.request(
89
92
  requestId,
90
93
  requesterNftId,
91
94
  requestData,
92
95
  expiryAt);
93
-
94
- emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
95
96
  }
96
97
 
97
98
 
@@ -220,7 +221,7 @@ contract OracleService is
220
221
  function _checkRequestParams(
221
222
  IRegistry registry,
222
223
  NftId oracleNftId,
223
- IRegistry.ObjectInfo memory info,
224
+ IRegistry.ObjectInfo memory requesterInfo,
224
225
  Timestamp expiryAt,
225
226
  string memory callbackMethodName
226
227
  )
@@ -237,17 +238,17 @@ contract OracleService is
237
238
  registry, oracleNftId, true);
238
239
 
239
240
  // obtain return values
240
- requesterNftId = info.nftId;
241
+ requesterNftId = requesterInfo.nftId;
241
242
  oracle = IOracleComponent(oracleInfo.objectAddress);
242
243
 
243
244
  // check that requester and oracle share same product cluster
244
- if (info.objectType == PRODUCT()) {
245
+ if (requesterInfo.objectType == PRODUCT()) {
245
246
  if (oracleInfo.parentNftId != requesterNftId) {
246
- revert ErrorOracleServiceProductMismatch(info.objectType, requesterNftId, oracleInfo.parentNftId);
247
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
247
248
  }
248
249
  } else {
249
- if (oracleInfo.parentNftId != info.parentNftId) {
250
- revert ErrorOracleServiceProductMismatch(info.objectType, info.parentNftId, oracleInfo.parentNftId);
250
+ if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
251
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
251
252
  }
252
253
  }
253
254
 
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  OracleService svc = new OracleService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -1,14 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Authorization} from "../authorization/Authorization.sol";
5
- import {BasicPool} from "./BasicPool.sol";
6
4
  import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
6
  import {IPoolComponent} from "./IPoolComponent.sol";
9
- import {POOL} from "../type/ObjectType.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {BasicPool} from "./BasicPool.sol";
10
+ import {COMPONENT, POOL} from "../type/ObjectType.sol";
10
11
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
12
  import {RoleId} from "../type/RoleId.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
12
14
 
13
15
 
14
16
  contract BasicPoolAuthorization
@@ -16,23 +18,30 @@ contract BasicPoolAuthorization
16
18
  {
17
19
 
18
20
  constructor(string memory poolName)
19
- Authorization(poolName)
21
+ Authorization(poolName, POOL())
20
22
  {}
21
23
 
22
24
  function _setupServiceTargets()
23
25
  internal
24
26
  virtual override
25
27
  {
28
+ _addServiceTargetWithRole(COMPONENT());
26
29
  _addServiceTargetWithRole(POOL());
27
30
  }
28
31
 
29
- function _setupTargets()
30
- internal
31
- virtual override
32
- {
33
- _addComponentTargetWithRole(POOL()); // basic pool target
34
- }
32
+ function _setupTokenHandlerAuthorizations() internal virtual override {
33
+ // authorize token handler functions for component service role
34
+ IAccess.FunctionInfo[] storage functions;
35
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
36
+ _authorize(functions, TokenHandler.approve.selector, "approve");
37
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
38
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
35
39
 
40
+ // authorize token handler functions for pool service role
41
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
42
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
43
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
44
+ }
36
45
 
37
46
  function _setupTargetAuthorizations()
38
47
  internal
@@ -41,7 +50,7 @@ contract BasicPoolAuthorization
41
50
  IAccess.FunctionInfo[] storage functions;
42
51
 
43
52
  // authorize public role (open access to any account, only allows to lock target)
44
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
53
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
45
54
  _authorize(functions, BasicPool.stake.selector, "stake");
46
55
  _authorize(functions, BasicPool.unstake.selector, "unstake");
47
56
  _authorize(functions, BasicPool.extend.selector, "extend");
@@ -57,11 +66,10 @@ contract BasicPoolAuthorization
57
66
  _authorize(functions, BasicPool.extend.selector, "extend");
58
67
 
59
68
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
60
-
61
69
  _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
62
70
 
63
71
  // authorize pool service
64
- functions = _authorizeForTarget(getTargetName(), getServiceRole(POOL()));
72
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
65
73
  _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
66
74
  }
67
75
  }
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
4
5
  import {IBundle} from "../instance/module/IBundle.sol";
5
6
  import {IBundleService} from "./IBundleService.sol";
6
7
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -9,7 +10,6 @@ import {IRegistry} from "../registry/IRegistry.sol";
9
10
  import {IRegistryService} from "../registry/IRegistryService.sol";
10
11
  import {IInstance} from "../instance/IInstance.sol";
11
12
  import {InstanceStore} from "../instance/InstanceStore.sol";
12
- import {IPolicy} from "../instance/module/IPolicy.sol";
13
13
 
14
14
  import {Amount, AmountLib} from "../type/Amount.sol";
15
15
  import {BundleSet} from "../instance/BundleSet.sol";
@@ -17,7 +17,7 @@ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol
17
17
  import {Fee} from "../type/Fee.sol";
18
18
  import {InstanceReader} from "../instance/InstanceReader.sol";
19
19
  import {NftId, NftIdLib} from "../type/NftId.sol";
20
- import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
20
+ import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
21
21
  import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
22
22
  import {Seconds} from "../type/Seconds.sol";
23
23
  import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
@@ -33,6 +33,7 @@ contract BundleService is
33
33
 
34
34
  address private _registryAddress;
35
35
  IRegistryService private _registryService;
36
+ IAccountingService private _accountingService;
36
37
  IComponentService private _componentService;
37
38
 
38
39
  function _initialize(
@@ -44,13 +45,14 @@ contract BundleService is
44
45
  initializer()
45
46
  {
46
47
  (
47
- address registryAddress,
48
- address authority
48
+ address authority,
49
+ address registry
49
50
  ) = abi.decode(data, (address, address));
50
51
 
51
- _initializeService(registryAddress, authority, owner);
52
+ __Service_init(authority, registry, owner);
52
53
 
53
54
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
55
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
54
56
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
55
57
 
56
58
  _registerInterface(type(IBundleService).interfaceId);
@@ -142,6 +144,7 @@ contract BundleService is
142
144
  virtual
143
145
  restricted()
144
146
  {
147
+ // checks
145
148
  _checkNftType(policyNftId, POLICY());
146
149
  _checkNftType(bundleNftId, BUNDLE());
147
150
 
@@ -173,6 +176,7 @@ contract BundleService is
173
176
  }
174
177
  }
175
178
 
179
+ // effects
176
180
  // updated locked amount
177
181
  instanceStore.increaseLocked(bundleNftId, collateralAmount);
178
182
  }
@@ -183,6 +187,7 @@ contract BundleService is
183
187
  virtual
184
188
  restricted()
185
189
  {
190
+ // checks
186
191
  _checkNftType(bundleNftId, BUNDLE());
187
192
 
188
193
  (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
@@ -190,6 +195,7 @@ contract BundleService is
190
195
  // udpate bundle state
191
196
  instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
192
197
 
198
+ // effects
193
199
  // update set of active bundles
194
200
  BundleSet bundleManager = instance.getBundleSet();
195
201
  bundleManager.lock(bundleNftId);
@@ -203,10 +209,12 @@ contract BundleService is
203
209
  virtual
204
210
  restricted()
205
211
  {
212
+ // checks
206
213
  _checkNftType(bundleNftId, BUNDLE());
207
214
 
208
215
  (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
209
216
 
217
+ // effects
210
218
  // udpate bundle state
211
219
  instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
212
220
 
@@ -227,6 +235,7 @@ contract BundleService is
227
235
  restricted()
228
236
  returns (Amount unstakedAmount, Amount feeAmount)
229
237
  {
238
+ // checks
230
239
  _checkNftType(bundleNftId, BUNDLE());
231
240
 
232
241
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -238,6 +247,7 @@ contract BundleService is
238
247
  revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
239
248
  }
240
249
 
250
+ // effects
241
251
  {
242
252
  // update bundle state
243
253
  InstanceStore instanceStore = instance.getInstanceStore();
@@ -248,13 +258,14 @@ contract BundleService is
248
258
  Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
249
259
  feeAmount = instanceReader.getFeeAmount(bundleNftId);
250
260
  unstakedAmount = balanceAmountWithFees - feeAmount;
251
- _componentService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
261
+ _accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
252
262
  }
253
263
  }
254
264
 
255
265
  /// @inheritdoc IBundleService
256
266
  function stake(
257
- IInstance instance,
267
+ InstanceReader instanceReader,
268
+ InstanceStore instanceStore,
258
269
  NftId bundleNftId,
259
270
  Amount amount
260
271
  )
@@ -262,10 +273,11 @@ contract BundleService is
262
273
  virtual
263
274
  restricted()
264
275
  {
276
+ // checks
265
277
  _checkNftType(bundleNftId, BUNDLE());
266
278
 
267
- IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
268
- StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
279
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
280
+ StateId bundleState = instanceReader.getBundleState(bundleNftId);
269
281
 
270
282
  if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
271
283
  || bundleInfo.expiredAt < TimestampLib.blockTimestamp()
@@ -273,8 +285,9 @@ contract BundleService is
273
285
  revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
274
286
  }
275
287
 
276
- _componentService.increaseBundleBalance(
277
- instance.getInstanceStore(),
288
+ // effects
289
+ _accountingService.increaseBundleBalance(
290
+ instanceStore,
278
291
  bundleNftId,
279
292
  amount,
280
293
  AmountLib.zero());
@@ -282,7 +295,7 @@ contract BundleService is
282
295
 
283
296
  /// @inheritdoc IBundleService
284
297
  function unstake(
285
- IInstance instance,
298
+ InstanceStore instanceStore,
286
299
  NftId bundleNftId,
287
300
  Amount amount
288
301
  )
@@ -291,9 +304,9 @@ contract BundleService is
291
304
  restricted()
292
305
  returns (Amount unstakedAmount)
293
306
  {
307
+ // checks
294
308
  _checkNftType(bundleNftId, BUNDLE());
295
309
 
296
- InstanceStore instanceStore = instance.getInstanceStore();
297
310
  (
298
311
  Amount balanceAmount,
299
312
  Amount lockedAmount,
@@ -313,7 +326,8 @@ contract BundleService is
313
326
  revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
314
327
  }
315
328
 
316
- _componentService.decreaseBundleBalance(
329
+ // effects
330
+ _accountingService.decreaseBundleBalance(
317
331
  instanceStore,
318
332
  bundleNftId,
319
333
  unstakedAmount,
@@ -327,6 +341,7 @@ contract BundleService is
327
341
  restricted()
328
342
  returns (Timestamp extendedExpiredAt)
329
343
  {
344
+ // checks
330
345
  _checkNftType(bundleNftId, BUNDLE());
331
346
 
332
347
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
@@ -347,17 +362,18 @@ contract BundleService is
347
362
  revert ErrorBundleServiceExtensionLifetimeIsZero();
348
363
  }
349
364
 
365
+ // effects
350
366
  bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
351
- instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
367
+ extendedExpiredAt = bundleInfo.expiredAt;
352
368
 
353
- emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
369
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
354
370
 
355
- return bundleInfo.expiredAt;
371
+ emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
356
372
  }
357
373
 
358
374
 
359
375
  function releaseCollateral(
360
- IInstance instance,
376
+ InstanceStore instanceStore,
361
377
  NftId policyNftId,
362
378
  NftId bundleNftId,
363
379
  Amount collateralAmount
@@ -369,54 +385,10 @@ contract BundleService is
369
385
  _checkNftType(policyNftId, POLICY());
370
386
  _checkNftType(bundleNftId, BUNDLE());
371
387
 
372
- instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
388
+ instanceStore.decreaseLocked(bundleNftId, collateralAmount);
373
389
  }
374
390
 
375
391
 
376
- /// @inheritdoc IBundleService
377
- function withdrawBundleFees(NftId bundleNftId, Amount amount)
378
- public
379
- virtual
380
- restricted()
381
- returns (Amount withdrawnAmount)
382
- {
383
- _checkNftType(bundleNftId, BUNDLE());
384
-
385
- (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
386
- InstanceReader reader = instance.getInstanceReader();
387
-
388
- IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
389
- address poolWallet = poolInfo.tokenHandler.getWallet();
390
-
391
- // IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
392
-
393
- // determine withdrawn amount
394
- withdrawnAmount = amount;
395
- if (withdrawnAmount.gte(AmountLib.max())) {
396
- withdrawnAmount = reader.getFeeAmount(bundleNftId);
397
- } else {
398
- if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
399
- revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
400
- }
401
- }
402
-
403
- // decrease fee counters by withdrawnAmount
404
- {
405
- InstanceStore store = instance.getInstanceStore();
406
- // decrease fee amount of the bundle
407
- _componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
408
- // decrease pool balance
409
- _componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
410
- }
411
-
412
- // transfer amount to bundle owner
413
- {
414
- address owner = getRegistry().ownerOf(bundleNftId);
415
- emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
416
- poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
417
- }
418
- }
419
-
420
392
  function _getDomain() internal pure override returns(ObjectType) {
421
393
  return BUNDLE();
422
394
  }
@@ -17,7 +17,7 @@ contract BundleServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  BundleService svc = new BundleService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -1,12 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IService} from "../shared/IService.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+
4
7
  import {Amount} from "../type/Amount.sol";
5
8
  import {NftId} from "../type/NftId.sol";
6
9
  import {Fee} from "../type/Fee.sol";
7
- import {IService} from "../shared/IService.sol";
8
- import {IBundle} from "../instance/module/IBundle.sol";
9
- import {IInstance} from "../instance/IInstance.sol";
10
+ import {InstanceReader} from "../instance/InstanceReader.sol";
11
+ import {InstanceStore} from "../instance/InstanceStore.sol";
10
12
  import {Seconds} from "../type/Seconds.sol";
11
13
  import {StateId} from "../type/StateId.sol";
12
14
  import {Timestamp} from "../type/Timestamp.sol";
@@ -26,14 +28,11 @@ interface IBundleService is IService {
26
28
  error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
27
29
 
28
30
  error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
29
-
30
- error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
31
31
 
32
32
  error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
33
33
 
34
34
  error ErrorBundleServiceExtensionLifetimeIsZero();
35
35
 
36
- event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
37
36
  event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
38
37
 
39
38
  /// @dev Create a new bundle for the specified attributes.
@@ -49,15 +48,16 @@ interface IBundleService is IService {
49
48
 
50
49
  /// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
51
50
  /// may only be called by the pool service
52
- function stake(IInstance instance, NftId bundleNftId, Amount amount) external;
51
+ function stake(
52
+ InstanceReader instanceReader,
53
+ InstanceStore instanceStore,
54
+ NftId bundleNftId,
55
+ Amount amount
56
+ ) external;
53
57
 
54
58
  /// @dev decrease bundle stakes by the specified amount
55
59
  /// may only be called by the pool service
56
- /// @param instance the instance relevant for the bundle
57
- /// @param bundleNftId the bundle nft id
58
- /// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
59
- /// @return unstakedAmount the effective unstaked amount
60
- function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
60
+ function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
61
61
 
62
62
  /// @dev extend the lifetime of the bundle by the specified time in seconds
63
63
  function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
@@ -107,16 +107,9 @@ interface IBundleService is IService {
107
107
  /// @dev releases the specified collateral in the bundle
108
108
  /// may only be called by pool service
109
109
  function releaseCollateral(
110
- IInstance instance,
110
+ InstanceStore instanceStore,
111
111
  NftId policyNftId,
112
112
  NftId bundleNftId,
113
113
  Amount collateralAmount
114
114
  ) external;
115
-
116
- // FIXME: move to pool service
117
- /// @dev Withdraw bundle feeds for the given bundle
118
- /// @param bundleNftId the bundle Nft Id
119
- /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
120
- /// @return withdrawnAmount the effective withdrawn amount
121
- function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
122
115
  }