@etherisc/gif-next 0.0.2-edc084c-558 → 0.0.2-edd8f00-238

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 (582) hide show
  1. package/README.md +11 -3
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +254 -167
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +303 -2005
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2753
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +801 -389
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -221
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  49. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  50. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  51. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  58. package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  64. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  67. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  68. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  70. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  72. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
  73. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  74. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  76. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  80. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  84. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  87. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  90. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
  93. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  94. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  96. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
  97. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  98. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  100. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  104. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  107. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  108. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  110. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  112. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  114. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  118. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  120. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  130. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +783 -108
  134. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  136. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  138. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  140. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  142. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  144. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  152. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  153. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  154. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  156. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  158. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  160. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  162. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  168. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  170. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  172. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  174. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  176. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  178. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  180. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  182. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  186. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  188. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  190. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  192. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  194. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  196. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +156 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  198. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  208. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  209. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  210. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  212. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  214. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  276. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  287. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  288. package/contracts/{components → distribution}/Distribution.sol +47 -66
  289. package/contracts/distribution/DistributionService.sol +297 -0
  290. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  291. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  292. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  293. package/contracts/instance/BundleManager.sol +8 -9
  294. package/contracts/instance/IInstance.sol +55 -66
  295. package/contracts/instance/IInstanceService.sol +50 -25
  296. package/contracts/instance/Instance.sol +160 -224
  297. package/contracts/instance/InstanceAdmin.sol +331 -0
  298. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  299. package/contracts/instance/InstanceReader.sol +157 -56
  300. package/contracts/instance/InstanceService.sol +258 -314
  301. package/contracts/instance/InstanceServiceManager.sol +11 -21
  302. package/contracts/instance/InstanceStore.sol +272 -0
  303. package/contracts/instance/base/BalanceStore.sol +123 -0
  304. package/contracts/instance/base/Cloneable.sol +28 -0
  305. package/contracts/instance/base/ObjectCounter.sol +21 -0
  306. package/contracts/instance/base/ObjectLifecycle.sol +96 -0
  307. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
  308. package/contracts/instance/module/IAccess.sol +4 -12
  309. package/contracts/instance/module/IBundle.sol +6 -9
  310. package/contracts/instance/module/IComponents.sol +21 -10
  311. package/contracts/instance/module/IDistribution.sol +7 -6
  312. package/contracts/instance/module/IPolicy.sol +28 -16
  313. package/contracts/instance/module/IRisk.sol +1 -1
  314. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  315. package/contracts/oracle/IOracle.sol +20 -0
  316. package/contracts/oracle/IOracleComponent.sol +32 -0
  317. package/contracts/oracle/IOracleService.sol +65 -0
  318. package/contracts/oracle/Oracle.sol +145 -0
  319. package/contracts/oracle/OracleService.sol +278 -0
  320. package/contracts/oracle/OracleServiceManager.sol +42 -0
  321. package/contracts/pool/BundleService.sol +296 -0
  322. package/contracts/pool/BundleServiceManager.sol +42 -0
  323. package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
  324. package/contracts/{components → pool}/IPoolComponent.sol +17 -18
  325. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  326. package/contracts/{components → pool}/Pool.sol +54 -58
  327. package/contracts/pool/PoolService.sol +452 -0
  328. package/contracts/pool/PoolServiceManager.sol +42 -0
  329. package/contracts/product/ApplicationService.sol +254 -0
  330. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  331. package/contracts/product/ClaimService.sol +442 -0
  332. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  333. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  334. package/contracts/product/IClaimService.sol +99 -0
  335. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  336. package/contracts/product/IPricingService.sol +39 -0
  337. package/contracts/product/IProductComponent.sol +42 -0
  338. package/contracts/product/IProductService.sol +33 -0
  339. package/contracts/product/PolicyService.sol +475 -0
  340. package/contracts/product/PolicyServiceManager.sol +42 -0
  341. package/contracts/product/PricingService.sol +300 -0
  342. package/contracts/product/PricingServiceManager.sol +42 -0
  343. package/contracts/{components → product}/Product.sol +191 -107
  344. package/contracts/product/ProductService.sol +124 -0
  345. package/contracts/product/ProductServiceManager.sol +42 -0
  346. package/contracts/registry/ChainNft.sol +8 -1
  347. package/contracts/registry/IRegistry.sol +44 -21
  348. package/contracts/registry/IRegistryService.sol +37 -36
  349. package/contracts/registry/IServiceAuthorization.sol +38 -0
  350. package/contracts/registry/Registry.sol +198 -83
  351. package/contracts/registry/RegistryAdmin.sol +333 -0
  352. package/contracts/registry/RegistryService.sol +71 -87
  353. package/contracts/registry/RegistryServiceManager.sol +21 -30
  354. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  355. package/contracts/registry/ReleaseManager.sol +389 -190
  356. package/contracts/registry/ServiceAuthorization.sol +90 -0
  357. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  358. package/contracts/registry/TokenRegistry.sol +261 -62
  359. package/contracts/shared/AccessAdmin.sol +759 -0
  360. package/contracts/shared/AccessManagerCustom.sol +741 -0
  361. package/contracts/shared/AccessManagerExtended.sol +481 -0
  362. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  363. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  364. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  365. package/contracts/shared/Component.sol +281 -0
  366. package/contracts/shared/ComponentService.sol +620 -0
  367. package/contracts/shared/ComponentServiceManager.sol +35 -0
  368. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  369. package/contracts/shared/ERC165.sol +1 -1
  370. package/contracts/shared/IAccessAdmin.sol +168 -0
  371. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  372. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  373. package/contracts/{components → shared}/IComponent.sol +23 -29
  374. package/contracts/shared/IComponentService.sol +102 -0
  375. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  376. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  377. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  378. package/contracts/shared/INftOwnable.sol +2 -2
  379. package/contracts/shared/IPolicyHolder.sol +29 -10
  380. package/contracts/shared/IRegistryLinked.sol +0 -1
  381. package/contracts/shared/IService.sol +11 -2
  382. package/contracts/shared/IVersionable.sol +1 -1
  383. package/contracts/shared/InitializableCustom.sol +177 -0
  384. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  385. package/contracts/shared/KeyValueStore.sol +131 -0
  386. package/contracts/shared/Lifecycle.sol +71 -0
  387. package/contracts/shared/NftIdSetManager.sol +65 -0
  388. package/contracts/shared/NftOwnable.sol +3 -16
  389. package/contracts/shared/PolicyHolder.sol +40 -19
  390. package/contracts/shared/ProxyManager.sol +34 -4
  391. package/contracts/shared/Registerable.sol +13 -12
  392. package/contracts/shared/RegistryLinked.sol +0 -5
  393. package/contracts/shared/Service.sol +32 -21
  394. package/contracts/shared/TokenHandler.sol +27 -2
  395. package/contracts/shared/Versionable.sol +1 -1
  396. package/contracts/staking/IStaking.sol +168 -0
  397. package/contracts/staking/IStakingService.sol +153 -0
  398. package/contracts/staking/StakeManagerLib.sol +231 -0
  399. package/contracts/staking/Staking.sol +513 -0
  400. package/contracts/staking/StakingLifecycle.sol +24 -0
  401. package/contracts/staking/StakingManager.sol +54 -0
  402. package/contracts/staking/StakingReader.sol +187 -0
  403. package/contracts/staking/StakingService.sol +411 -0
  404. package/contracts/staking/StakingServiceManager.sol +44 -0
  405. package/contracts/staking/StakingStore.sol +615 -0
  406. package/contracts/staking/TargetManagerLib.sol +207 -0
  407. package/contracts/{types → type}/AddressSet.sol +1 -1
  408. package/contracts/type/Amount.sol +128 -0
  409. package/contracts/{types → type}/Blocknumber.sol +20 -3
  410. package/contracts/{types → type}/ClaimId.sol +25 -2
  411. package/contracts/{types → type}/Fee.sol +24 -22
  412. package/contracts/{types → type}/NftId.sol +14 -16
  413. package/contracts/{types → type}/NftIdSet.sol +2 -2
  414. package/contracts/type/ObjectType.sol +241 -0
  415. package/contracts/{types → type}/PayoutId.sol +33 -5
  416. package/contracts/{types → type}/Referral.sol +1 -1
  417. package/contracts/type/RequestId.sol +75 -0
  418. package/contracts/{types → type}/RiskId.sol +1 -1
  419. package/contracts/type/RoleId.sol +201 -0
  420. package/contracts/{types → type}/Seconds.sol +27 -0
  421. package/contracts/type/Selector.sol +102 -0
  422. package/contracts/{types → type}/StateId.sol +33 -4
  423. package/contracts/type/String.sol +53 -0
  424. package/contracts/{types → type}/Timestamp.sol +10 -1
  425. package/contracts/{types → type}/Version.sol +1 -1
  426. package/package.json +4 -3
  427. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  428. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  429. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  430. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  432. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  434. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  435. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  436. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  437. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  438. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  439. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  440. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  441. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  442. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  444. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  445. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  447. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  448. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  449. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  450. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  451. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  452. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  453. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  454. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  455. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  456. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  458. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  459. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  460. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  462. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  464. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  466. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  468. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  477. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  479. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  481. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  483. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  485. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  487. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  488. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  489. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  490. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  491. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  493. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  495. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  497. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  499. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  501. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  503. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  505. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  506. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  507. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  508. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  510. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  512. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  514. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  515. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  516. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  519. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  520. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  522. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  523. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  525. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  527. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  529. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  531. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  534. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  536. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  542. package/contracts/components/Component.sol +0 -253
  543. package/contracts/components/IProductComponent.sol +0 -40
  544. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  545. package/contracts/instance/Cloneable.sol +0 -51
  546. package/contracts/instance/InstanceAccessManager.sol +0 -527
  547. package/contracts/instance/base/ComponentService.sol +0 -121
  548. package/contracts/instance/base/KeyValueStore.sol +0 -180
  549. package/contracts/instance/base/Lifecycle.sol +0 -109
  550. package/contracts/instance/module/ISetup.sol +0 -33
  551. package/contracts/instance/module/ITreasury.sol +0 -23
  552. package/contracts/instance/service/ApplicationService.sol +0 -350
  553. package/contracts/instance/service/BundleService.sol +0 -431
  554. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  555. package/contracts/instance/service/ClaimService.sol +0 -151
  556. package/contracts/instance/service/DistributionService.sol +0 -435
  557. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  558. package/contracts/instance/service/IClaimService.sol +0 -61
  559. package/contracts/instance/service/IProductService.sol +0 -40
  560. package/contracts/instance/service/PolicyService.sol +0 -362
  561. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  562. package/contracts/instance/service/PoolService.sol +0 -303
  563. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  564. package/contracts/instance/service/ProductService.sol +0 -210
  565. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  566. package/contracts/registry/RegistryAccessManager.sol +0 -216
  567. package/contracts/shared/ContractDeployerLib.sol +0 -72
  568. package/contracts/test/TestFee.sol +0 -25
  569. package/contracts/test/TestRegisterable.sol +0 -18
  570. package/contracts/test/TestRoleId.sol +0 -14
  571. package/contracts/test/TestService.sol +0 -25
  572. package/contracts/test/TestVersion.sol +0 -44
  573. package/contracts/test/TestVersionable.sol +0 -17
  574. package/contracts/test/Usdc.sol +0 -26
  575. package/contracts/types/Amount.sol +0 -60
  576. package/contracts/types/ChainId.sol +0 -38
  577. package/contracts/types/NumberId.sol +0 -52
  578. package/contracts/types/ObjectType.sol +0 -157
  579. package/contracts/types/RoleId.sol +0 -97
  580. /package/contracts/{types → type}/DistributorType.sol +0 -0
  581. /package/contracts/{types → type}/Key32.sol +0 -0
  582. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,71 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType, COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
8
+ import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
9
+ import {ILifecycle} from "./ILifecycle.sol";
10
+
11
+ abstract contract Lifecycle is
12
+ Initializable,
13
+ ILifecycle
14
+ {
15
+ // TODO make private
16
+ mapping(ObjectType objectType => StateId initialState)
17
+ internal _initialState;
18
+
19
+ mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
20
+ internal _isValidTransition;
21
+
22
+ //function _initializeLifecycle() internal virtual;
23
+
24
+ function hasLifecycle(
25
+ ObjectType objectType
26
+ )
27
+ public
28
+ view
29
+ override
30
+ returns (bool)
31
+ {
32
+ return _initialState[objectType].gtz();
33
+ }
34
+
35
+ function getInitialState(
36
+ ObjectType objectType
37
+ )
38
+ public
39
+ view
40
+ returns (StateId)
41
+ {
42
+ return _initialState[objectType];
43
+ }
44
+
45
+ function checkTransition(
46
+ ObjectType objectType,
47
+ StateId fromId,
48
+ StateId toId
49
+ )
50
+ public
51
+ view
52
+ {
53
+ // revert if no life cycle support
54
+ if (_initialState[objectType].eqz()) {
55
+ revert ErrorNoLifecycle(objectType);
56
+ }
57
+
58
+ // enforce valid state transition
59
+ if (!_isValidTransition[objectType][fromId][toId]) {
60
+ revert ErrorInvalidStateTransition(objectType, fromId, toId);
61
+ }
62
+ }
63
+
64
+ function isValidTransition(
65
+ ObjectType objectType,
66
+ StateId fromId,
67
+ StateId toId
68
+ ) public view returns (bool) {
69
+ return _isValidTransition[objectType][fromId][toId];
70
+ }
71
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+
7
+ contract NftIdSetManager {
8
+
9
+ error ErrorNftIdSetManagerNotOwner(address owner, address sender);
10
+ error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
11
+ error ErrorNftIdSetManagerNftIdInvalid(NftId objectNftId);
12
+ error ErrorNftIdSetManagerAlreadyAdded(NftId objectNftId);
13
+
14
+ LibNftIdSet.Set private _allObjects;
15
+ LibNftIdSet.Set private _activeObjects;
16
+ address private _owner;
17
+
18
+ modifier onlyOwner() {
19
+ if(msg.sender != _owner) {
20
+ revert ErrorNftIdSetManagerNotOwner(_owner, msg.sender);
21
+ }
22
+ _;
23
+ }
24
+
25
+ constructor() {
26
+ _owner = msg.sender;
27
+ }
28
+
29
+ function add(NftId objectNftId) external onlyOwner {
30
+ LibNftIdSet.add(_allObjects, objectNftId);
31
+ LibNftIdSet.add(_activeObjects, objectNftId);
32
+ }
33
+
34
+ function activate(NftId componentNftId, NftId objectNftId) external onlyOwner {
35
+ LibNftIdSet.add(_activeObjects, objectNftId);
36
+ }
37
+
38
+ function deactivate(NftId componentNftId, NftId objectNftId) external onlyOwner {
39
+ LibNftIdSet.remove(_activeObjects, objectNftId);
40
+ }
41
+
42
+ function nftIds() external view returns (uint256 ids) {
43
+ return LibNftIdSet.size(_allObjects);
44
+ }
45
+
46
+ function getNftId(uint256 idx) external view returns (NftId) {
47
+ return LibNftIdSet.getElementAt(_allObjects, idx);
48
+ }
49
+
50
+ function exists(NftId objectNftId) external view returns (bool) {
51
+ return LibNftIdSet.contains(_allObjects, objectNftId);
52
+ }
53
+
54
+ function activeNftIds() external view returns (uint256 ids) {
55
+ return LibNftIdSet.size(_activeObjects);
56
+ }
57
+
58
+ function getActiveNftId(uint256 idx) external view returns (NftId) {
59
+ return LibNftIdSet.getElementAt(_activeObjects, idx);
60
+ }
61
+
62
+ function isActive(NftId objectNftId) external view returns (bool) {
63
+ return LibNftIdSet.contains(_activeObjects, objectNftId);
64
+ }
65
+ }
@@ -1,11 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- // import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
-
6
4
  import {ERC165} from "./ERC165.sol";
7
5
  import {INftOwnable} from "./INftOwnable.sol";
8
- import {NftId} from "../types/NftId.sol";
6
+ import {NftId} from "../type/NftId.sol";
9
7
  import {RegistryLinked} from "./RegistryLinked.sol";
10
8
 
11
9
  contract NftOwnable is
@@ -58,20 +56,9 @@ contract NftOwnable is
58
56
  function linkToRegisteredNftId()
59
57
  public
60
58
  virtual
59
+ returns (NftId nftId)
61
60
  {
62
- NftOwnableStorage storage $ = _getNftOwnableStorage();
63
-
64
- if ($._nftId.gtz()) {
65
- revert ErrorNftOwnableAlreadyLinked($._nftId);
66
- }
67
-
68
- address contractAddress = address(this);
69
-
70
- if (!getRegistry().isRegistered(contractAddress)) {
71
- revert ErrorNftOwnableContractNotRegistered(contractAddress);
72
- }
73
-
74
- $._nftId = getRegistry().getNftId(contractAddress);
61
+ return _linkToNftOwnable(address(this));
75
62
  }
76
63
 
77
64
  function getNftId() public view virtual override returns (NftId) {
@@ -5,50 +5,69 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
6
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
7
7
 
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
8
10
  import {ERC165} from "./ERC165.sol";
9
11
  import {IPolicyHolder} from "./IPolicyHolder.sol";
10
- import {IRegistry} from "../registry/IRegistry.sol";
11
- import {NftId} from "../types/NftId.sol";
12
- import {NumberId} from "../types/NumberId.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
13
14
  import {RegistryLinked} from "./RegistryLinked.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
14
16
 
15
17
  /// @dev template implementation for IPolicyHolder
16
18
  contract PolicyHolder is
17
19
  ERC165,
18
- RegistryLinked,
20
+ RegistryLinked, // TODO need upgradeable version
19
21
  IPolicyHolder
20
22
  {
21
23
  // keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
22
24
  // TODO fix address
23
25
  bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
24
26
 
25
- // TODO uncomment/fix/refactor
26
27
  struct PolicyHolderStorage {
27
- // mapping(NftId policyId => mapping(NumberId claimId => address beneficiary)) private _claimBeneficiary;
28
- // mapping(NftId policyId => address beneficiary) private _beneficiary;
29
- bool dummy;
28
+ mapping(NftId policyId => mapping(PayoutId payoutId => address beneficiary)) _beneficiary;
29
+ address _beneficiaryDefault;
30
30
  }
31
31
 
32
32
  function initializePolicyHolder(
33
- address registryAddress
33
+ address registryAddress,
34
+ address beneficiaryDefault
34
35
  )
35
36
  public
36
37
  virtual
37
38
  onlyInitializing()
38
39
  {
39
40
  initializeRegistryLinked(registryAddress);
41
+
42
+ _getPolicyHolderStorage()._beneficiaryDefault = beneficiaryDefault;
43
+
44
+ registerInterface(type(IPolicyHolder).interfaceId);
40
45
  }
41
46
 
42
47
  /// @dev empty default implementation
43
- function policyCreatedCallback(NftId policyNftId) external virtual { }
48
+ function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external { }
49
+
50
+ /// @dev empty default implementation
51
+ function policyActivated(NftId policyNftId) external {}
52
+
53
+ /// @dev empty default implementation
54
+ function policyExpired(NftId policyNftId) external {}
55
+
56
+ /// @dev empty default implementation
57
+ function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
44
58
 
45
59
  /// @dev empty default implementation
46
- function payoutExecutedCallback(NftId policyNftId, NumberId payoutId, address beneficiary, uint256 amount) external virtual { }
60
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external {}
61
+
62
+ /// @dev returns payout specific beneficiary
63
+ /// when no such beneficiary is defined the policy specific beneficiary is returned
64
+ function getBeneficiary(NftId policyNftId, PayoutId payoutId) external virtual view returns (address beneficiary) {
65
+ beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId];
47
66
 
48
- /// @dev determines beneficiary address that will be used in payouts targeting this contract
49
- /// returned address will override GIF default where the policy nft holder is treated as beneficiary
50
- function getBeneficiary(NftId policyId, NumberId claimId) external virtual view returns (address beneficiary) {
51
- // TODO add implementation
67
+ // fallback to claim independent beneficiary
68
+ if(beneficiary == address(0) && payoutId.gtz()) {
69
+ beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][PayoutIdLib.zero()];
70
+ }
52
71
  }
53
72
 
54
73
  //--- IERC165 functions ---------------//
@@ -65,12 +84,14 @@ contract PolicyHolder is
65
84
  return IERC721Receiver.onERC721Received.selector;
66
85
  }
67
86
 
68
- function _setBeneficiary(address beneficiary) internal {
69
-
87
+ /// @dev sets policy specific beneficiary (used when no payout specific beneficiary is defined)
88
+ function _setBeneficiary(NftId policyNftId, address beneficiary) internal {
89
+ _setBeneficiary(policyNftId, PayoutIdLib.zero(), beneficiary);
70
90
  }
71
91
 
72
- function _setBeneficiary(NftId policyId, address beneficiary) internal {
73
-
92
+ /// @dev sets policy and claim specific beneficiary
93
+ function _setBeneficiary(NftId policyNftId, PayoutId payoutId, address beneficiary) internal {
94
+ _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId] = beneficiary;
74
95
  }
75
96
 
76
97
  function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
@@ -3,14 +3,15 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
5
5
 
6
- import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
6
+ import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
7
7
  import {IVersionable} from "./IVersionable.sol";
8
8
  import {NftOwnable} from "./NftOwnable.sol";
9
9
  import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
10
10
  import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
11
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
11
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
12
  import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
- import {Version, VersionLib} from "../types/Version.sol";
13
+ import {Version, VersionLib} from "../type/Version.sol";
14
+ import {NftId} from "../type/NftId.sol";
14
15
 
15
16
  /// @dev manages proxy deployments for upgradable contracs of type IVersionable
16
17
  contract ProxyManager is
@@ -79,6 +80,31 @@ contract ProxyManager is
79
80
  emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
80
81
  }
81
82
 
83
+ function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
84
+ public
85
+ virtual
86
+ onlyOwner()
87
+ returns (IVersionable versionable)
88
+ {
89
+ if (_versions.length > 0) {
90
+ revert ErrorProxyManagerAlreadyDeployed();
91
+ }
92
+
93
+ address currentProxyOwner = getOwner();
94
+ address initialProxyAdminOwner = address(this);
95
+
96
+ _proxy = new UpgradableProxyWithAdmin{salt: salt}(
97
+ initialImplementation,
98
+ initialProxyAdminOwner,
99
+ getDeployData(currentProxyOwner, initializationData)
100
+ );
101
+
102
+ versionable = IVersionable(address(_proxy));
103
+ _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
104
+
105
+ emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
106
+ }
107
+
82
108
  /// @dev upgrade existing contract
83
109
  function upgrade(address newImplementation, bytes memory upgradeData)
84
110
  public
@@ -106,6 +132,10 @@ contract ProxyManager is
106
132
 
107
133
  }
108
134
 
135
+ function linkToProxy() public returns (NftId) {
136
+ return _linkToNftOwnable(address(_proxy));
137
+ }
138
+
109
139
  function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
110
140
  return abi.encodeWithSelector(
111
141
  IVersionable.initializeVersionable.selector,
@@ -119,7 +149,7 @@ contract ProxyManager is
119
149
  upgradeData);
120
150
  }
121
151
 
122
- function getProxy() public returns (UpgradableProxyWithAdmin) {
152
+ function getProxy() public view returns (UpgradableProxyWithAdmin) {
123
153
  return _proxy;
124
154
  }
125
155
 
@@ -3,13 +3,12 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {NftId, zeroNftId} from "../types/NftId.sol";
6
+ import {NftId, NftIdLib} from "../type/NftId.sol";
7
7
  import {NftOwnable} from "../shared/NftOwnable.sol";
8
- import {ObjectType} from "../types/ObjectType.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
9
 
10
10
  import {IRegistry} from "../registry/IRegistry.sol";
11
11
  import {IRegisterable} from "./IRegisterable.sol";
12
- import {Versionable} from "./Versionable.sol";
13
12
 
14
13
  contract Registerable is
15
14
  NftOwnable,
@@ -25,12 +24,6 @@ contract Registerable is
25
24
  bytes _data;
26
25
  }
27
26
 
28
- function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
29
- assembly {
30
- $.slot := REGISTERABLE_LOCATION_V1
31
- }
32
- }
33
-
34
27
  function initializeRegisterable(
35
28
  address registryAddress,
36
29
  NftId parentNftId,
@@ -47,7 +40,11 @@ contract Registerable is
47
40
  initialOwner,
48
41
  registryAddress);
49
42
 
50
- RegisterableStorage storage $ = _getRegisterableStorage();
43
+ RegisterableStorage storage $;
44
+ assembly {
45
+ $.slot := REGISTERABLE_LOCATION_V1
46
+ }
47
+
51
48
  $._parentNftId = parentNftId;
52
49
  $._objectType = objectType;
53
50
  $._isInterceptor = isInterceptor;
@@ -61,9 +58,13 @@ contract Registerable is
61
58
  virtual
62
59
  returns (IRegistry.ObjectInfo memory info)
63
60
  {
64
- RegisterableStorage memory $ = _getRegisterableStorage();
61
+ RegisterableStorage storage $;
62
+ assembly {
63
+ $.slot := REGISTERABLE_LOCATION_V1
64
+ }
65
+
65
66
  info = IRegistry.ObjectInfo(
66
- zeroNftId(),
67
+ NftIdLib.zero(),
67
68
  $._parentNftId,
68
69
  $._objectType,
69
70
  $._isInterceptor,
@@ -40,9 +40,4 @@ contract RegistryLinked is
40
40
  function getRegistry() public view returns (IRegistry) {
41
41
  return _registry;
42
42
  }
43
-
44
-
45
- function getRegistryAddress() public view returns (address) {
46
- return address(_registry);
47
- }
48
43
  }
@@ -1,20 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
6
 
7
- import {ObjectType, REGISTRY, SERVICE} from "../types/ObjectType.sol";
8
- import {NftId, zeroNftId} from "../types/NftId.sol";
9
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
10
-
11
- import {Versionable} from "./Versionable.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
12
8
  import {IService} from "./IService.sol";
13
9
  import {IVersionable} from "./IVersionable.sol";
14
- import {Versionable} from "./Versionable.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
15
12
  import {Registerable} from "./Registerable.sol";
16
-
17
- import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
+ import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
15
+ import {Versionable} from "./Versionable.sol";
18
16
 
19
17
 
20
18
  /// @dev service base contract
@@ -27,15 +25,6 @@ abstract contract Service is
27
25
 
28
26
  uint8 private constant GIF_MAJOR_VERSION = 3;
29
27
 
30
- // from Versionable
31
- function getVersion()
32
- public
33
- pure
34
- virtual override (IVersionable, Versionable)
35
- returns(Version)
36
- {
37
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
38
- }
39
28
 
40
29
  function initializeService(
41
30
  address registry,
@@ -58,9 +47,7 @@ abstract contract Service is
58
47
  if(authority != address(0)) {
59
48
  __AccessManaged_init(authority);
60
49
  } else {
61
- address registryServiceAddress = getRegistry().getServiceAddress(
62
- REGISTRY(),
63
- VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
50
+ address registryServiceAddress = _getServiceAddress(REGISTRY());
64
51
 
65
52
  // copy authority from already registered registry services
66
53
  __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
@@ -69,4 +56,28 @@ abstract contract Service is
69
56
  registerInterface(type(IAccessManaged).interfaceId);
70
57
  registerInterface(type(IService).interfaceId);
71
58
  }
59
+
60
+ function getDomain() external virtual pure returns(ObjectType serviceDomain) {
61
+ return _getDomain();
62
+ }
63
+
64
+ function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
65
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
66
+ }
67
+
68
+ // from Versionable
69
+ function getVersion()
70
+ public
71
+ pure
72
+ virtual override (IVersionable, Versionable)
73
+ returns(Version)
74
+ {
75
+ return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
76
+ }
77
+
78
+ function _getDomain() internal virtual pure returns (ObjectType);
79
+
80
+ function _getServiceAddress(ObjectType domain) internal view returns (address) {
81
+ return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
82
+ }
72
83
  }
@@ -4,7 +4,10 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
6
 
7
+ import {Amount} from "../type/Amount.sol";
8
+
7
9
  /// @dev token specific transfer helper
10
+ /// a default token contract is provided via contract constructor
8
11
  /// relies internally on oz SafeERC20.safeTransferFrom
9
12
  contract TokenHandler {
10
13
  IERC20Metadata private _token;
@@ -13,16 +16,38 @@ contract TokenHandler {
13
16
  _token = IERC20Metadata(token);
14
17
  }
15
18
 
19
+ /// @dev transfer amount default tokens
16
20
  function transfer(
17
21
  address from,
18
22
  address to,
19
- uint256 amount
23
+ Amount amount
24
+ )
25
+ external
26
+ {
27
+ SafeERC20.safeTransferFrom(
28
+ _token,
29
+ from,
30
+ to,
31
+ amount.toInt());
32
+ }
33
+
34
+ /// @dev transfer amount of the specified token
35
+ function safeTransferFrom(
36
+ address token,
37
+ address from,
38
+ address to,
39
+ Amount amount
20
40
  )
21
41
  external
22
42
  {
23
- SafeERC20.safeTransferFrom(_token, from, to, amount);
43
+ SafeERC20.safeTransferFrom(
44
+ IERC20Metadata(token),
45
+ from,
46
+ to,
47
+ amount.toInt());
24
48
  }
25
49
 
50
+ /// @dev returns the default token defined for this TokenHandler
26
51
  function getToken()
27
52
  external
28
53
  view
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
6
  import {IVersionable} from "./IVersionable.sol";
7
- import {Version, VersionLib} from "../types/Version.sol";
7
+ import {Version, VersionLib} from "../type/Version.sol";
8
8
 
9
9
 
10
10
  abstract contract Versionable is