@etherisc/gif-next 0.0.2-9682fee-392 → 0.0.2-96b5b72-170

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 (437) hide show
  1. package/README.md +6 -83
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +82 -14
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +156 -14
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +110 -283
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -2004
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +101 -52
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -2762
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +99 -62
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +366 -71
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +157 -211
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +45 -90
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +6 -6
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +234 -129
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +173 -21
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +83 -21
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1630 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +712 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +184 -100
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +211 -100
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +120 -166
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +163 -21
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +86 -28
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/{components → product}/Product.sol/Product.json +74 -22
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +48 -0
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +66 -37
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  110. package/artifacts/contracts/registry/Registry.sol/Registry.json +77 -16
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +20 -20
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +87 -53
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +95 -22
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  120. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  121. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  122. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  123. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  124. package/artifacts/contracts/shared/Component.sol/Component.json +723 -0
  125. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +114 -35
  127. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +177 -142
  130. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  131. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +647 -0
  132. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  133. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  134. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  136. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  138. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  139. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  140. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  141. package/artifacts/contracts/shared/IService.sol/IService.json +85 -27
  142. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  144. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +60 -8
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  146. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  154. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  155. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  156. package/artifacts/contracts/shared/Service.sol/Service.json +91 -28
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  162. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  163. package/artifacts/contracts/{components/IComponent.sol/IComponent.json → staking/IStaking.sol/IStaking.json} +123 -121
  164. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  165. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +545 -0
  166. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  167. package/artifacts/contracts/staking/Staking.sol/Staking.json +854 -0
  168. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  169. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +640 -0
  170. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  171. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +797 -0
  172. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +632 -0
  174. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  175. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  176. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  177. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  178. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  179. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  180. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  181. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  182. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  183. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  184. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  185. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  186. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  187. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  188. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  190. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  192. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  193. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  194. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  195. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  196. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  198. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  199. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  200. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  201. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  202. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  203. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  204. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  205. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  206. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  207. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  208. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  209. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  210. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  211. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  212. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  213. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  214. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  215. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  216. package/contracts/{components → distribution}/Distribution.sol +22 -17
  217. package/contracts/distribution/DistributionService.sol +349 -0
  218. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
  219. package/contracts/{components → distribution}/IDistributionComponent.sol +8 -8
  220. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -30
  221. package/contracts/instance/BundleManager.sol +8 -9
  222. package/contracts/instance/IInstance.sol +43 -64
  223. package/contracts/instance/IInstanceService.sol +18 -17
  224. package/contracts/instance/Instance.sol +116 -214
  225. package/contracts/instance/InstanceAccessManager.sol +49 -28
  226. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  227. package/contracts/instance/InstanceReader.sol +96 -18
  228. package/contracts/instance/InstanceService.sol +103 -290
  229. package/contracts/instance/InstanceServiceManager.sol +1 -1
  230. package/contracts/instance/InstanceStore.sol +211 -0
  231. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  232. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  233. package/contracts/instance/base/ILifecycle.sol +3 -3
  234. package/contracts/instance/base/KeyValueStore.sol +39 -45
  235. package/contracts/instance/base/Lifecycle.sol +17 -5
  236. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
  237. package/contracts/instance/module/IAccess.sol +4 -4
  238. package/contracts/instance/module/IBundle.sol +10 -8
  239. package/contracts/instance/module/IComponents.sol +11 -5
  240. package/contracts/instance/module/IDistribution.sol +7 -6
  241. package/contracts/instance/module/IPolicy.sol +22 -16
  242. package/contracts/instance/module/IRisk.sol +1 -1
  243. package/contracts/instance/module/ISetup.sol +4 -4
  244. package/contracts/instance/module/ITreasury.sol +2 -2
  245. package/contracts/pool/BundleService.sol +382 -0
  246. package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
  247. package/contracts/pool/IBundleService.sol +118 -0
  248. package/contracts/{components → pool}/IPoolComponent.sol +15 -14
  249. package/contracts/pool/IPoolService.sol +114 -0
  250. package/contracts/{components → pool}/Pool.sol +26 -23
  251. package/contracts/pool/PoolService.sol +403 -0
  252. package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
  253. package/contracts/product/ApplicationService.sol +186 -0
  254. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
  255. package/contracts/product/ClaimService.sol +442 -0
  256. package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
  257. package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
  258. package/contracts/product/IClaimService.sol +93 -0
  259. package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
  260. package/contracts/product/IPricingService.sol +37 -0
  261. package/contracts/{components → product}/IProductComponent.sol +12 -11
  262. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  263. package/contracts/product/PolicyService.sol +376 -0
  264. package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
  265. package/contracts/product/PricingService.sol +275 -0
  266. package/contracts/product/PricingServiceManager.sol +51 -0
  267. package/contracts/{components → product}/Product.sol +161 -75
  268. package/contracts/product/ProductService.sol +210 -0
  269. package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
  270. package/contracts/registry/ChainNft.sol +7 -1
  271. package/contracts/registry/IRegistry.sol +15 -6
  272. package/contracts/registry/IRegistryService.sol +10 -8
  273. package/contracts/registry/Registry.sol +45 -7
  274. package/contracts/registry/RegistryAccessManager.sol +6 -15
  275. package/contracts/registry/RegistryService.sol +52 -31
  276. package/contracts/registry/RegistryServiceManager.sol +0 -2
  277. package/contracts/registry/ReleaseManager.sol +78 -40
  278. package/contracts/registry/TokenRegistry.sol +2 -2
  279. package/contracts/shared/Component.sol +177 -0
  280. package/contracts/shared/ComponentService.sol +150 -0
  281. package/contracts/shared/IComponent.sol +58 -0
  282. package/contracts/{components/IComponent.sol → shared/IInstanceLinkedComponent.sol} +9 -31
  283. package/contracts/shared/INftOwnable.sol +1 -1
  284. package/contracts/shared/IPolicyHolder.sol +24 -10
  285. package/contracts/shared/IRegistryLinked.sol +0 -1
  286. package/contracts/shared/IService.sol +6 -6
  287. package/contracts/shared/IVersionable.sol +1 -1
  288. package/contracts/{components/Component.sol → shared/InstanceLinkedComponent.sol} +35 -15
  289. package/contracts/shared/NftOwnable.sol +1 -3
  290. package/contracts/shared/PolicyHolder.sol +31 -18
  291. package/contracts/shared/ProxyManager.sol +3 -3
  292. package/contracts/shared/Registerable.sol +12 -11
  293. package/contracts/shared/RegistryLinked.sol +0 -5
  294. package/contracts/shared/Service.sol +23 -9
  295. package/contracts/shared/TokenHandler.sol +27 -2
  296. package/contracts/shared/Versionable.sol +1 -1
  297. package/contracts/staking/IStaking.sol +30 -0
  298. package/contracts/staking/IStakingService.sol +105 -0
  299. package/contracts/staking/Staking.sol +65 -0
  300. package/contracts/staking/StakingManager.sol +46 -0
  301. package/contracts/staking/StakingService.sol +204 -0
  302. package/contracts/staking/StakingServiceManager.sol +41 -0
  303. package/contracts/type/Amount.sol +109 -0
  304. package/contracts/{types → type}/ClaimId.sol +25 -2
  305. package/contracts/{types → type}/Fee.sol +16 -8
  306. package/contracts/{types → type}/NftIdSet.sol +1 -1
  307. package/contracts/{types → type}/ObjectType.sol +14 -5
  308. package/contracts/{types → type}/PayoutId.sol +33 -5
  309. package/contracts/{types → type}/RoleId.sol +44 -9
  310. package/contracts/{types → type}/StateId.sol +6 -2
  311. package/contracts/{types → type}/Timestamp.sol +5 -0
  312. package/package.json +1 -1
  313. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  314. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  315. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  316. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  317. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  318. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  319. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  320. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  321. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  322. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  323. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  324. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  325. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  326. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  327. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  328. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  329. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  330. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  331. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  332. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  333. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  334. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  335. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  336. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  337. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  338. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  339. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  340. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  341. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  342. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  343. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  344. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  345. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  346. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  347. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  348. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  349. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  350. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  351. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  352. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  353. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  354. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  355. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  356. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  357. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  358. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  359. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  360. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  361. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  362. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  363. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  364. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  365. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  366. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  367. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  368. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  369. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  370. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  371. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  372. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  373. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  374. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  375. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  376. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  377. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  378. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  379. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  380. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  381. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  382. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  383. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  384. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  385. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  386. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  387. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  388. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  389. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  390. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  391. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  392. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  393. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  394. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  395. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  396. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  397. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  398. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  399. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  400. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  401. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  402. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  403. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  404. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  405. package/contracts/instance/base/ComponentService.sol +0 -134
  406. package/contracts/instance/service/ApplicationService.sol +0 -350
  407. package/contracts/instance/service/BundleService.sol +0 -336
  408. package/contracts/instance/service/ClaimService.sol +0 -151
  409. package/contracts/instance/service/DistributionService.sol +0 -467
  410. package/contracts/instance/service/IBundleService.sol +0 -62
  411. package/contracts/instance/service/IClaimService.sol +0 -61
  412. package/contracts/instance/service/IPoolService.sol +0 -35
  413. package/contracts/instance/service/PolicyService.sol +0 -403
  414. package/contracts/instance/service/PoolService.sol +0 -220
  415. package/contracts/instance/service/ProductService.sol +0 -241
  416. package/contracts/shared/ContractDeployerLib.sol +0 -72
  417. package/contracts/test/TestFee.sol +0 -25
  418. package/contracts/test/TestRegisterable.sol +0 -18
  419. package/contracts/test/TestRoleId.sol +0 -14
  420. package/contracts/test/TestService.sol +0 -25
  421. package/contracts/test/TestToken.sol +0 -26
  422. package/contracts/test/TestVersion.sol +0 -44
  423. package/contracts/test/TestVersionable.sol +0 -17
  424. package/contracts/test/Usdc.sol +0 -26
  425. package/contracts/types/ChainId.sol +0 -38
  426. package/contracts/types/NumberId.sol +0 -52
  427. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  428. /package/contracts/{types → type}/AddressSet.sol +0 -0
  429. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  430. /package/contracts/{types → type}/DistributorType.sol +0 -0
  431. /package/contracts/{types → type}/Key32.sol +0 -0
  432. /package/contracts/{types → type}/NftId.sol +0 -0
  433. /package/contracts/{types → type}/Referral.sol +0 -0
  434. /package/contracts/{types → type}/RiskId.sol +0 -0
  435. /package/contracts/{types → type}/Seconds.sol +0 -0
  436. /package/contracts/{types → type}/UFixed.sol +0 -0
  437. /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,241 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IComponent} from "../../components/IComponent.sol";
8
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
9
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
10
- import {IInstance} from "../IInstance.sol";
11
- import {IPolicy} from "../module/IPolicy.sol";
12
- import {IRisk} from "../module/IRisk.sol";
13
- import {IBundle} from "../module/IBundle.sol";
14
- import {IProductService} from "./IProductService.sol";
15
- import {ITreasury} from "../module/ITreasury.sol";
16
- import {ISetup} from "../module/ISetup.sol";
17
-
18
- import {TokenHandler} from "../../shared/TokenHandler.sol";
19
-
20
- import {IVersionable} from "../../shared/IVersionable.sol";
21
- import {Versionable} from "../../shared/Versionable.sol";
22
-
23
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
24
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
25
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
26
- import {ObjectType, PRODUCT, POOL, POLICY} from "../../types/ObjectType.sol";
27
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE} from "../../types/StateId.sol";
28
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
29
- import {Fee, FeeLib} from "../../types/Fee.sol";
30
- import {ReferralId} from "../../types/Referral.sol";
31
- import {RiskId} from "../../types/RiskId.sol";
32
- import {StateId} from "../../types/StateId.sol";
33
- import {Version, VersionLib} from "../../types/Version.sol";
34
- import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
35
-
36
- import {IService} from "../../shared/IService.sol";
37
- import {Service} from "../../shared/Service.sol";
38
- import {ComponentService} from "../base/ComponentService.sol";
39
- import {IProductService} from "./IProductService.sol";
40
- import {InstanceReader} from "../InstanceReader.sol";
41
- import {IPoolService} from "./PoolService.sol";
42
-
43
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
44
- contract ProductService is ComponentService, IProductService {
45
- using NftIdLib for NftId;
46
-
47
- IPoolService internal _poolService;
48
-
49
- event LogProductServiceSender(address sender);
50
-
51
- function _initialize(
52
- address owner,
53
- bytes memory data
54
- )
55
- internal
56
- initializer
57
- virtual override
58
- {
59
- address registryAddress;
60
- address initialOwner;
61
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
62
-
63
- initializeService(registryAddress, owner);
64
-
65
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getMajorVersion()));
66
-
67
- registerInterface(type(IProductService).interfaceId);
68
- }
69
-
70
-
71
- function register(address productAddress)
72
- external
73
- returns(NftId productNftId)
74
- {
75
- (
76
- IComponent component,
77
- address owner,
78
- IInstance instance,
79
- NftId instanceNftId
80
- ) = _checkComponentForRegistration(
81
- productAddress,
82
- PRODUCT(),
83
- PRODUCT_OWNER_ROLE());
84
-
85
- IProductComponent product = IProductComponent(productAddress);
86
- IRegistry.ObjectInfo memory productInfo = getRegistryService().registerProduct(product, owner);
87
- productNftId = productInfo.nftId;
88
- _createProductSetup(
89
- instance,
90
- product,
91
- productNftId);
92
- }
93
-
94
-
95
- function _createProductSetup(
96
- IInstance instance,
97
- IProductComponent product,
98
- NftId productNftId
99
- )
100
- internal
101
- returns (string memory name)
102
- {
103
- // wire distribution and pool components to product component
104
- ISetup.ProductSetupInfo memory setup = product.getSetupInfo();
105
- IComponent distribution = IComponent(getRegistry().getObjectInfo(setup.distributionNftId).objectAddress);
106
- IComponent pool = IComponent(getRegistry().getObjectInfo(setup.poolNftId).objectAddress);
107
-
108
- distribution.setProductNftId(productNftId);
109
- pool.setProductNftId(productNftId);
110
- product.setProductNftId(productNftId);
111
- product.linkToRegisteredNftId();
112
-
113
- // create product setup in instance
114
- instance.createProductSetup(productNftId, product.getSetupInfo());
115
-
116
- bytes4[][] memory selectors = new bytes4[][](1);
117
- selectors[0] = new bytes4[](1);
118
- selectors[0][0] = IProductComponent.setFees.selector;
119
-
120
- RoleId[] memory roles = new RoleId[](1);
121
- roles[0] = PRODUCT_OWNER_ROLE();
122
-
123
- // create target for instane access manager
124
- getInstanceService().createGifTarget(
125
- getRegistry().getNftId(address(instance)),
126
- address(product),
127
- product.getName(),
128
- selectors,
129
- roles);
130
- }
131
-
132
- function getDomain() public pure override(IService, Service) returns(ObjectType) {
133
- return PRODUCT();
134
- }
135
-
136
-
137
- function _decodeAndVerifyProductData(bytes memory data)
138
- internal
139
- returns(string memory name, ISetup.ProductSetupInfo memory setup)
140
- {
141
- (name, setup) = abi.decode(
142
- data,
143
- (string, ISetup.ProductSetupInfo)
144
- );
145
-
146
- // TODO add checks
147
- // if(wallet == address(0)) {
148
- // revert WalletIsZero();
149
- // }
150
-
151
- // IRegistry.ObjectInfo memory tokenInfo = getRegistry().getObjectInfo(address(info.token));
152
-
153
- // if(tokenInfo.objectType != TOKEN()) {
154
- // revert InvalidToken();
155
- // }
156
-
157
- // IRegistry.ObjectInfo memory poolInfo = getRegistry().getObjectInfo(info.poolNftId);
158
-
159
- // if(poolInfo.objectType != POOL()) {
160
- // revert InvalidPool();
161
- // }
162
-
163
- // if(poolInfo.parentNftId != instanceNftId) {
164
- // revert InvalidPoolsInstance();
165
- // }
166
- // // TODO pool have the same token
167
- // //ITreasury.PoolSetup memory poolSetup = instance.getPoolSetup(info.poolNftId);
168
- // //require(tokenInfo.objectAddress == address(poolSetup.token), "ERROR:COS-018:PRODUCT_POOL_TOKEN_MISMATCH");
169
- // // TODO pool is not linked
170
-
171
- // IRegistry.ObjectInfo memory distributionInfo = getRegistry().getObjectInfo(info.distributionNftId);
172
-
173
- // if(distributionInfo.objectType != DISTRIBUTION()) {
174
- // revert InvalidDistribution();
175
- // }
176
-
177
- // if(distributionInfo.parentNftId != instanceNftId) {
178
- // revert InvalidDistributionsInstance();
179
- // }
180
- // // TODO distribution have the same token
181
- // // TODO distribution is not linked
182
- }
183
-
184
- function setFees(
185
- Fee memory productFee,
186
- Fee memory processingFee
187
- )
188
- external
189
- {
190
- // TODO check args
191
-
192
- (
193
- IRegistry.ObjectInfo memory productInfo,
194
- IInstance instance
195
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
196
-
197
- InstanceReader instanceReader = instance.getInstanceReader();
198
- NftId productNftId = productInfo.nftId;
199
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
200
-
201
- productSetupInfo.productFee = productFee;
202
- productSetupInfo.processingFee = processingFee;
203
-
204
- instance.updateProductSetup(productNftId, productSetupInfo, KEEP_STATE());
205
- }
206
-
207
- function createRisk(
208
- RiskId riskId,
209
- bytes memory data
210
- ) external override {
211
- (
212
- IRegistry.ObjectInfo memory productInfo,
213
- IInstance instance
214
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
215
- NftId productNftId = productInfo.nftId;
216
- IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
217
- instance.createRisk(
218
- riskId,
219
- riskInfo
220
- );
221
- }
222
-
223
- function updateRisk(
224
- RiskId riskId,
225
- bytes memory data
226
- ) external {
227
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
228
- InstanceReader instanceReader = instance.getInstanceReader();
229
- IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
230
- riskInfo.data = data;
231
- instance.updateRisk(riskId, riskInfo, KEEP_STATE());
232
- }
233
-
234
- function updateRiskState(
235
- RiskId riskId,
236
- StateId state
237
- ) external {
238
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
239
- instance.updateRiskState(riskId, state);
240
- }
241
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- library ContractDeployerLib {
5
-
6
- event LogContractDeployed(address contractAddress);
7
-
8
- error ErrorCreationCodeHashMismatch(bytes32 expectedHash, bytes32 actualHash);
9
-
10
- /// @dev deploys a new contract using the provided creation code
11
- function deploy(
12
- bytes memory creationCode,
13
- bytes32 expectedCreationCodeHash
14
- )
15
- public
16
- returns (address contractAdress)
17
- {
18
- // check against expected hash, if provided
19
- if (expectedCreationCodeHash != bytes32(0)) {
20
- bytes32 creationCodeHash = getHash(creationCode);
21
- if (creationCodeHash != expectedCreationCodeHash) {
22
- revert ErrorCreationCodeHashMismatch(expectedCreationCodeHash, creationCodeHash);
23
- }
24
- }
25
-
26
- // solhint-disable no-inline-assembly
27
- assembly {
28
- contractAdress := create(0, add(creationCode, 0x20), mload(creationCode))
29
-
30
- if iszero(extcodesize(contractAdress)) {
31
- revert(0, 0)
32
- }
33
- }
34
- // solhint enable
35
-
36
- emit LogContractDeployed(contractAdress);
37
- }
38
-
39
- /// @dev gets the creation code for the new contract
40
- // for terminology see eg https://www.rareskills.io/post/ethereum-contract-creation-code
41
- function getCreationCode(
42
- bytes memory byteCodeWithInitCode, // what you get with type(<Contract>).creationCode
43
- bytes memory encodedConstructorArguments // what you get with
44
- )
45
- public
46
- pure
47
- returns (bytes memory creationCode)
48
- {
49
- return abi.encodePacked(byteCodeWithInitCode, encodedConstructorArguments);
50
- }
51
-
52
-
53
- function matchesWithHash(
54
- bytes memory creationCode,
55
- bytes32 expectedHash
56
- )
57
- public
58
- pure
59
- returns (bool isMatching)
60
- {
61
- return getHash(creationCode) == expectedHash;
62
- }
63
-
64
-
65
- function getHash(bytes memory creationCode)
66
- public
67
- pure
68
- returns (bytes32 hash)
69
- {
70
- return keccak256(creationCode);
71
- }
72
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {UFixed, UFixedLib} from "../types/UFixed.sol";
5
- import {Fee, FeeLib} from "../types/Fee.sol";
6
-
7
- contract TestFee {
8
-
9
- function createFee(
10
- uint256 fractionalValue,
11
- int8 exponent,
12
- uint256 fixedValue
13
- )
14
- external
15
- pure
16
- returns(Fee memory fee)
17
- {
18
- return FeeLib.toFee(UFixedLib.toUFixed(fractionalValue, exponent), fixedValue);
19
- }
20
-
21
- function getZeroFee() external pure returns(Fee memory fee) {
22
- return FeeLib.zeroFee();
23
- }
24
-
25
- }
@@ -1,18 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {ObjectType, TOKEN} from "../../contracts/types/ObjectType.sol";
6
- import {IRegistry} from "../../contracts/registry/IRegistry.sol";
7
- import {Registerable} from "../../contracts/shared/Registerable.sol";
8
-
9
- contract TestRegisterable is Registerable {
10
-
11
- constructor(address registry, NftId registryNftId, ObjectType objectType, bool isInterceptor, address initialOwner)
12
- //Registerable(registry, registryNftId)
13
- // solhint-disable-next-line no-empty-blocks
14
- {
15
- bytes memory data = "";
16
- initializeRegisterable(registry, registryNftId, objectType, isInterceptor, initialOwner, data);
17
- }
18
- }
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {RoleId, RoleIdLib, PRODUCT_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE_NAME, POOL_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
5
-
6
- contract TestRoleId {
7
- function getRole(uint256 roleNum) external pure returns (RoleId) { return RoleIdLib.toRoleId(roleNum); }
8
-
9
- function getProductOwnerRoleName() external pure returns (string memory) { return PRODUCT_OWNER_ROLE_NAME(); }
10
- function getProductOwnerRole() external pure returns (RoleId) { return PRODUCT_OWNER_ROLE(); }
11
-
12
- function getPoolOwnerRoleName() external pure returns (string memory) { return POOL_OWNER_ROLE_NAME(); }
13
- function getPoolOwnerRole() external pure returns (RoleId) { return POOL_OWNER_ROLE(); }
14
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ObjectType, PRODUCT} from "../../contracts/types/ObjectType.sol";
5
- import {NftId} from "../../contracts/types/NftId.sol";
6
- import {Version, VersionLib} from "../../contracts/types/Version.sol";
7
- import {Service} from "../../contracts/shared/Service.sol";
8
-
9
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
10
- import {Versionable} from "../../contracts/shared/Versionable.sol";
11
-
12
- contract TestService is Service {
13
-
14
- string public constant NAME = "TestService";
15
-
16
- constructor(address registry, NftId registryNftId, address initialOwner)
17
- // solhint-disable-next-line no-empty-blocks
18
- {
19
- initializeService(registry, initialOwner);
20
- }
21
-
22
- function getDomain() public pure override returns(ObjectType) {
23
- return PRODUCT();
24
- }
25
- }
@@ -1,26 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
-
6
- contract TestUsdc is ERC20 {
7
-
8
- // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - Test";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
12
- uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
- // decimals == 18 (openzeppelin erc20 default)
14
- constructor()
15
- ERC20(NAME, SYMBOL)
16
- {
17
- _mint(
18
- _msgSender(),
19
- INITIAL_SUPPLY
20
- );
21
- }
22
-
23
- function decimals() public pure override returns(uint8) {
24
- return DECIMALS;
25
- }
26
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Version, VersionPart, VersionLib} from "../types/Version.sol";
5
-
6
- contract TestVersion {
7
-
8
- function createVersion(uint major, uint minor, uint patch) external pure returns(Version) {
9
- return VersionLib.toVersion(major, minor, patch);
10
- }
11
-
12
- function createVersionPart(uint versionPart) external pure returns(VersionPart) {
13
- return VersionLib.toVersionPart(uint8(versionPart));
14
- }
15
-
16
- function getVersionParts(Version version)
17
- external
18
- pure
19
- returns(
20
- VersionPart major,
21
- VersionPart minor,
22
- VersionPart patch
23
- )
24
- {
25
- return version.toVersionParts();
26
- }
27
-
28
- function getMajorPart(Version version) external pure returns(VersionPart major) {
29
- return version.toMajorPart();
30
- }
31
-
32
- function getZeroVersion() external pure returns(Version) {
33
- return VersionLib.zeroVersion();
34
- }
35
-
36
- function isSameVersion(Version a, Version b) external pure returns(bool) {
37
- return a == b;
38
- }
39
-
40
- function isLargerVersion(Version a, Version b) external pure returns(bool) {
41
- return a > b;
42
- }
43
-
44
- }
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Version, VersionLib} from "../../contracts/types/Version.sol";
5
- import {Versionable} from "../../contracts/shared/Versionable.sol";
6
-
7
- contract TestVersionable is Versionable {
8
-
9
- function getVersion()
10
- public
11
- pure
12
- virtual override
13
- returns(Version)
14
- {
15
- return VersionLib.toVersion(3,0,0);
16
- }
17
- }
@@ -1,26 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
-
6
- contract USDC is ERC20 {
7
-
8
- // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
12
- uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
- // decimals == 18 (openzeppelin erc20 default)
14
- constructor()
15
- ERC20(NAME, SYMBOL)
16
- {
17
- _mint(
18
- _msgSender(),
19
- INITIAL_SUPPLY
20
- );
21
- }
22
-
23
- function decimals() public pure override returns(uint8) {
24
- return DECIMALS;
25
- }
26
- }
@@ -1,38 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /// @dev bytes5 (uint40) allows for chain ids up to 13 digits
5
- type ChainId is bytes5;
6
-
7
- // type bindings
8
- using {eqChainId as ==, neChainId as !=, ChainIdLib.toInt} for ChainId global;
9
-
10
- // general pure free functions
11
- /// @dev Converts the uint256 to a ChainId.
12
- function toChainId(uint256 chainId) pure returns (ChainId) {
13
- return ChainId.wrap(bytes5(uint40(chainId)));
14
- }
15
-
16
- /// @dev Return the ChainId for the chain the contract is deployed to
17
- function thisChainId() view returns (ChainId) {
18
- return toChainId(block.chainid);
19
- }
20
-
21
- // pure free functions for operators
22
- /// @dev Returns true if the values are equal (==).
23
- function eqChainId(ChainId a, ChainId b) pure returns (bool isSame) {
24
- return ChainId.unwrap(a) == ChainId.unwrap(b);
25
- }
26
-
27
- /// @dev Returns true if the values are not equal (!=).
28
- function neChainId(ChainId a, ChainId b) pure returns (bool isDifferent) {
29
- return ChainId.unwrap(a) != ChainId.unwrap(b);
30
- }
31
-
32
- // library functions that operate on user defined type
33
- library ChainIdLib {
34
- /// @dev Converts the ChainId to a uint256.
35
- function toInt(ChainId chainId) internal pure returns (uint256) {
36
- return uint256(uint40(ChainId.unwrap(chainId)));
37
- }
38
- }
@@ -1,52 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- // uint32 allows for 4'294'967'296 individual items
5
- type NumberId is uint32;
6
-
7
- // type bindings
8
- using {
9
- eqNumberId as ==,
10
- neNumberId as !=,
11
- NumberIdLib.eqz,
12
- NumberIdLib.gtz,
13
- NumberIdLib.toInt
14
- } for NumberId global;
15
-
16
-
17
- // pure free functions for operators
18
- function eqNumberId(NumberId a, NumberId b) pure returns (bool isSame) {
19
- return NumberId.unwrap(a) == NumberId.unwrap(b);
20
- }
21
-
22
- function neNumberId(NumberId a, NumberId b) pure returns (bool isDifferent) {
23
- return NumberId.unwrap(a) != NumberId.unwrap(b);
24
- }
25
-
26
- // library functions that operate on user defined type
27
- library NumberIdLib {
28
- /// @dev Converts the NumberId to a uint.
29
- function zero() public pure returns (NumberId) {
30
- return NumberId.wrap(0);
31
- }
32
-
33
- /// @dev Converts an uint into a NumberId.
34
- function toNumberId(uint256 a) public pure returns (NumberId) {
35
- return NumberId.wrap(uint32(a));
36
- }
37
-
38
- /// @dev Converts the NumberId to a uint.
39
- function toInt(NumberId a) public pure returns (uint32) {
40
- return uint32(NumberId.unwrap(a));
41
- }
42
-
43
- /// @dev Returns true if the value is non-zero (> 0).
44
- function gtz(NumberId a) public pure returns (bool) {
45
- return NumberId.unwrap(a) > 0;
46
- }
47
-
48
- /// @dev Returns true if the value is zero (== 0).
49
- function eqz(NumberId a) public pure returns (bool) {
50
- return NumberId.unwrap(a) == 0;
51
- }
52
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes