@etherisc/gif-next 0.0.2-8dd2f76-992 → 0.0.2-8e4a894-109

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 (411) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  2. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  8. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
  9. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  10. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
  11. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  13. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +309 -2023
  15. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
  17. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  18. package/artifacts/contracts/instance/Instance.sol/Instance.json +407 -2759
  19. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +71 -53
  21. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  23. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +343 -63
  25. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -265
  27. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -124
  29. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
  31. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  32. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  33. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  35. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  36. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
  38. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  50. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  52. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  54. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
  56. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  57. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
  58. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  59. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +270 -37
  60. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  61. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
  62. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  64. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  66. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  68. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  70. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
  72. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  74. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
  76. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
  78. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
  80. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  81. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -175
  82. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  83. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
  84. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
  86. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  88. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  90. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  92. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  94. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  95. package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
  96. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  98. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  106. package/artifacts/contracts/registry/Registry.sol/Registry.json +6 -6
  107. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
  115. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  117. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  118. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  119. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  120. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
  121. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
  123. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  124. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  125. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
  126. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  127. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  128. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  130. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  132. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  134. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
  136. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
  139. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  140. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  141. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  142. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
  143. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
  145. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  146. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  147. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  148. package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
  149. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  150. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  151. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  152. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  153. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  154. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  155. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  156. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  158. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  159. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  160. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  161. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  162. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  163. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  164. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  165. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  166. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  167. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  168. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  169. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  170. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  171. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  172. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  173. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  174. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  175. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  176. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  177. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  178. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  179. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  180. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  181. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  182. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  183. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  184. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  185. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  186. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  187. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  188. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  189. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  190. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  192. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  193. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  194. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  195. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  196. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  198. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  199. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  200. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  201. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  202. package/contracts/{components → distribution}/Distribution.sol +21 -16
  203. package/contracts/{instance/service → distribution}/DistributionService.sol +91 -178
  204. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
  205. package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
  206. package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
  207. package/contracts/instance/BundleManager.sol +8 -9
  208. package/contracts/instance/IInstance.sol +43 -64
  209. package/contracts/instance/IInstanceService.sol +18 -17
  210. package/contracts/instance/Instance.sol +116 -214
  211. package/contracts/instance/InstanceAccessManager.sol +38 -24
  212. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  213. package/contracts/instance/InstanceReader.sol +95 -18
  214. package/contracts/instance/InstanceService.sol +97 -284
  215. package/contracts/instance/InstanceServiceManager.sol +1 -1
  216. package/contracts/instance/InstanceStore.sol +211 -0
  217. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  218. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  219. package/contracts/instance/base/ILifecycle.sol +3 -3
  220. package/contracts/instance/base/KeyValueStore.sol +31 -43
  221. package/contracts/instance/base/Lifecycle.sol +16 -5
  222. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
  223. package/contracts/instance/module/IAccess.sol +2 -2
  224. package/contracts/instance/module/IBundle.sol +5 -5
  225. package/contracts/instance/module/IComponents.sol +8 -8
  226. package/contracts/instance/module/IDistribution.sol +7 -6
  227. package/contracts/instance/module/IPolicy.sol +19 -14
  228. package/contracts/instance/module/IRisk.sol +1 -1
  229. package/contracts/instance/module/ISetup.sol +4 -4
  230. package/contracts/instance/module/ITreasury.sol +2 -2
  231. package/contracts/{instance/service → pool}/BundleService.sol +101 -150
  232. package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
  233. package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
  234. package/contracts/{components → pool}/IPoolComponent.sol +14 -13
  235. package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
  236. package/contracts/{components → pool}/Pool.sol +20 -21
  237. package/contracts/{instance/service → pool}/PoolService.sol +153 -53
  238. package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
  239. package/contracts/product/ApplicationService.sol +186 -0
  240. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
  241. package/contracts/product/ClaimService.sol +437 -0
  242. package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
  243. package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
  244. package/contracts/product/IClaimService.sol +90 -0
  245. package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
  246. package/contracts/product/IPricingService.sol +37 -0
  247. package/contracts/{components → product}/IProductComponent.sol +11 -10
  248. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  249. package/contracts/{instance/service → product}/PolicyService.sol +152 -138
  250. package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
  251. package/contracts/product/PricingService.sol +275 -0
  252. package/contracts/product/PricingServiceManager.sol +51 -0
  253. package/contracts/{components → product}/Product.sol +156 -74
  254. package/contracts/{instance/service → product}/ProductService.sol +46 -46
  255. package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
  256. package/contracts/registry/IRegistry.sol +4 -4
  257. package/contracts/registry/IRegistryService.sol +4 -6
  258. package/contracts/registry/Registry.sol +3 -3
  259. package/contracts/registry/RegistryAccessManager.sol +1 -1
  260. package/contracts/registry/RegistryService.sol +23 -20
  261. package/contracts/registry/RegistryServiceManager.sol +0 -2
  262. package/contracts/registry/ReleaseManager.sol +5 -5
  263. package/contracts/registry/TokenRegistry.sol +2 -2
  264. package/contracts/{components → shared}/Component.sol +26 -8
  265. package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
  266. package/contracts/{components → shared}/IComponent.sol +19 -5
  267. package/contracts/shared/INftOwnable.sol +1 -1
  268. package/contracts/shared/IPolicyHolder.sol +24 -10
  269. package/contracts/shared/IRegistryLinked.sol +0 -1
  270. package/contracts/shared/IService.sol +3 -1
  271. package/contracts/shared/IVersionable.sol +1 -1
  272. package/contracts/shared/NftOwnable.sol +1 -3
  273. package/contracts/shared/PolicyHolder.sol +31 -18
  274. package/contracts/shared/ProxyManager.sol +3 -3
  275. package/contracts/shared/Registerable.sol +12 -11
  276. package/contracts/shared/RegistryLinked.sol +0 -5
  277. package/contracts/shared/Service.sol +3 -3
  278. package/contracts/shared/TokenHandler.sol +4 -2
  279. package/contracts/shared/Versionable.sol +1 -1
  280. package/contracts/staking/IStakingService.sol +102 -0
  281. package/contracts/staking/StakeingServiceManager.sol +37 -0
  282. package/contracts/staking/StakingService.sol +166 -0
  283. package/contracts/{types → type}/Amount.sol +49 -0
  284. package/contracts/{types → type}/ClaimId.sol +25 -2
  285. package/contracts/{types → type}/Fee.sol +7 -6
  286. package/contracts/{types → type}/NftIdSet.sol +1 -1
  287. package/contracts/{types → type}/ObjectType.sol +10 -5
  288. package/contracts/{types → type}/PayoutId.sol +33 -5
  289. package/contracts/{types → type}/StateId.sol +6 -2
  290. package/contracts/{types → type}/Timestamp.sol +5 -0
  291. package/package.json +1 -1
  292. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  293. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  294. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  295. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  296. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  297. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  298. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  299. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  300. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  301. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  302. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  303. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  304. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  305. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  306. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  307. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  308. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  309. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  310. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  311. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  312. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  314. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  315. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  316. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  317. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  318. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  319. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  320. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  321. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  322. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  323. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  325. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  326. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  327. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  328. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  329. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  330. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  331. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  332. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  333. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  334. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  335. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  336. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  337. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  338. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  339. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  340. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  341. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  342. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  343. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  344. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  345. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  346. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  347. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  348. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  349. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  350. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  351. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  352. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  353. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  354. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  355. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  356. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  357. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  358. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  359. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  360. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  361. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  362. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  363. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  364. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  365. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  366. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  367. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  368. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  369. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  370. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  371. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  372. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  373. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  374. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  375. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  376. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  377. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  378. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  379. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  380. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  381. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  382. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  383. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  384. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  385. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  386. package/contracts/instance/service/ApplicationService.sol +0 -350
  387. package/contracts/instance/service/ClaimService.sol +0 -151
  388. package/contracts/instance/service/IClaimService.sol +0 -61
  389. package/contracts/shared/ContractDeployerLib.sol +0 -72
  390. package/contracts/test/TestFee.sol +0 -25
  391. package/contracts/test/TestRegisterable.sol +0 -18
  392. package/contracts/test/TestRoleId.sol +0 -14
  393. package/contracts/test/TestService.sol +0 -25
  394. package/contracts/test/TestToken.sol +0 -26
  395. package/contracts/test/TestVersion.sol +0 -44
  396. package/contracts/test/TestVersionable.sol +0 -17
  397. package/contracts/test/Usdc.sol +0 -26
  398. package/contracts/types/ChainId.sol +0 -38
  399. package/contracts/types/NumberId.sol +0 -52
  400. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  401. /package/contracts/{types → type}/AddressSet.sol +0 -0
  402. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  403. /package/contracts/{types → type}/DistributorType.sol +0 -0
  404. /package/contracts/{types → type}/Key32.sol +0 -0
  405. /package/contracts/{types → type}/NftId.sol +0 -0
  406. /package/contracts/{types → type}/Referral.sol +0 -0
  407. /package/contracts/{types → type}/RiskId.sol +0 -0
  408. /package/contracts/{types → type}/RoleId.sol +0 -0
  409. /package/contracts/{types → type}/Seconds.sol +0 -0
  410. /package/contracts/{types → type}/UFixed.sol +0 -0
  411. /package/contracts/{types → type}/Version.sol +0 -0
@@ -6,12 +6,38 @@ import {UFixed, UFixedLib} from "./UFixed.sol";
6
6
  type Amount is uint96;
7
7
 
8
8
  using {
9
+ addAmount as +,
10
+ subAmount as -,
11
+ eqAmount as ==,
12
+ ltAmount as <,
13
+ gtAmount as >,
14
+ AmountLib.eq,
9
15
  AmountLib.eqz,
10
16
  AmountLib.gtz,
11
17
  AmountLib.toInt,
18
+ AmountLib.add,
12
19
  AmountLib.toUFixed
13
20
  } for Amount global;
14
21
 
22
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
23
+ return AmountLib.add(a, b);
24
+ }
25
+
26
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
27
+ return AmountLib.sub(a, b);
28
+ }
29
+
30
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
31
+ return AmountLib.eq(a, b);
32
+ }
33
+
34
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
35
+ return AmountLib.lt(a, b);
36
+ }
37
+
38
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
39
+ return AmountLib.gt(a, b);
40
+ }
15
41
 
16
42
  library AmountLib {
17
43
 
@@ -40,11 +66,34 @@ library AmountLib {
40
66
  return Amount.unwrap(amount) == 0;
41
67
  }
42
68
 
69
+ /// @dev return true if amount1 equals amount2
70
+ function eq(Amount amount1, Amount amount2) public pure returns (bool) {
71
+ return Amount.unwrap(amount1) == Amount.unwrap(amount2);
72
+ }
73
+
74
+ /// @dev return true if amount a1 is smaller than a2
75
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
76
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
77
+ }
78
+
79
+ /// @dev return true if amount a1 is larger than a2
80
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
81
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
82
+ }
83
+
43
84
  /// @dev return true if amount is larger than 0
44
85
  function gtz(Amount amount) public pure returns (bool) {
45
86
  return Amount.unwrap(amount) > 0;
46
87
  }
47
88
 
89
+ function add(Amount a1, Amount a2) public pure returns (Amount) {
90
+ return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
91
+ }
92
+
93
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
94
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
95
+ }
96
+
48
97
  function toInt(Amount amount) public pure returns (uint256) {
49
98
  return uint256(uint96(Amount.unwrap(amount)));
50
99
  }
@@ -4,13 +4,18 @@ pragma solidity ^0.8.20;
4
4
  // uint16 allows for 65'535 claims per policy
5
5
  type ClaimId is uint16;
6
6
 
7
+ import {CLAIM} from "./ObjectType.sol";
8
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
9
+ import {NftId} from "./NftId.sol";
10
+
7
11
  // type bindings
8
12
  using {
9
13
  eqClaimId as ==,
10
14
  neClaimId as !=,
11
15
  ClaimIdLib.eqz,
12
16
  ClaimIdLib.gtz,
13
- ClaimIdLib.toInt
17
+ ClaimIdLib.toInt,
18
+ ClaimIdLib.toKey32
14
19
  } for ClaimId global;
15
20
 
16
21
 
@@ -25,10 +30,14 @@ function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
25
30
 
26
31
  // library functions that operate on user defined type
27
32
  library ClaimIdLib {
28
- /// @dev Converts the ClaimId to a uint.
33
+ /// @dev claim id min value (0), use only for non-initialized values
29
34
  function zero() public pure returns (ClaimId) {
30
35
  return ClaimId.wrap(0);
31
36
  }
37
+ /// @dev claim id max value (2**16-1), use only for non-initialized values
38
+ function max() public pure returns (ClaimId) {
39
+ return ClaimId.wrap(type(uint16).max);
40
+ }
32
41
 
33
42
  /// @dev Converts an uint into a ClaimId.
34
43
  function toClaimId(uint256 a) public pure returns (ClaimId) {
@@ -40,6 +49,20 @@ library ClaimIdLib {
40
49
  return uint16(ClaimId.unwrap(a));
41
50
  }
42
51
 
52
+ /// @dev Converts the ClaimId and NftId to a Key32.
53
+ function toKey32(ClaimId claimId, NftId policyNftId) public pure returns (Key32) {
54
+ return Key32Lib.toKey32(CLAIM(), toKeyId(claimId, policyNftId));
55
+ }
56
+
57
+ /// @dev Converts the ClaimId and NftId to a Key32.
58
+ function toKeyId(ClaimId claimId, NftId policyNftId) public pure returns (KeyId) {
59
+ return KeyId.wrap(
60
+ bytes31(
61
+ bytes14(
62
+ uint112(
63
+ NftId.unwrap(policyNftId) << 16 + ClaimId.unwrap(claimId)))));
64
+ }
65
+
43
66
  /// @dev Returns true if the value is non-zero (> 0).
44
67
  function gtz(ClaimId a) public pure returns (bool) {
45
68
  return ClaimId.unwrap(a) > 0;
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.19;
3
3
 
4
+ import {Amount, AmountLib} from "./Amount.sol";
4
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
6
 
6
7
  struct Fee {
@@ -12,21 +13,21 @@ library FeeLib {
12
13
 
13
14
  function calculateFee(
14
15
  Fee memory fee,
15
- uint256 amount
16
+ Amount amount
16
17
  )
17
18
  public
18
19
  pure
19
20
  returns (
20
- uint256 feeAmount,
21
- uint256 netAmount
21
+ Amount feeAmount,
22
+ Amount netAmount
22
23
  )
23
24
  {
24
25
  netAmount = amount;
25
26
  if(gtz(fee)) {
26
27
  UFixed fractionalAmount =
27
- UFixedLib.toUFixed(amount) * fee.fractionalFee;
28
- feeAmount = fractionalAmount.toInt() + fee.fixedFee;
29
- netAmount -= feeAmount;
28
+ amount.toUFixed() * fee.fractionalFee;
29
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
30
+ netAmount = netAmount - feeAmount;
30
31
  }
31
32
  }
32
33
 
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.19;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
4
+ import {NftId} from "../type/NftId.sol";
5
5
 
6
6
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
7
  library LibNftIdSet {
@@ -8,6 +8,7 @@ using {
8
8
  eqObjectType as ==,
9
9
  neObjectType as !=,
10
10
  ObjectTypeLib.toInt,
11
+ ObjectTypeLib.eqz,
11
12
  ObjectTypeLib.gtz
12
13
  } for ObjectType global;
13
14
 
@@ -86,6 +87,10 @@ function POOL() pure returns (ObjectType) {
86
87
  return toObjectType(140);
87
88
  }
88
89
 
90
+ function BUNDLE() pure returns (ObjectType) {
91
+ return toObjectType(220);
92
+ }
93
+
89
94
  function RISK() pure returns (ObjectType) {
90
95
  return toObjectType(200);
91
96
  }
@@ -102,12 +107,12 @@ function CLAIM() pure returns (ObjectType) {
102
107
  return toObjectType(212);
103
108
  }
104
109
 
105
- function BUNDLE() pure returns (ObjectType) {
106
- return toObjectType(220);
110
+ function PAYOUT() pure returns (ObjectType) {
111
+ return toObjectType(213);
107
112
  }
108
113
 
109
- function PAYOUT() pure returns (ObjectType) {
110
- return toObjectType(212);
114
+ function PRICE() pure returns (ObjectType) {
115
+ return toObjectType(230);
111
116
  }
112
117
 
113
118
  /// @dev Converts the uint8 to a ObjectType.
@@ -154,4 +159,4 @@ library ObjectTypeLib {
154
159
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
155
160
  return eqObjectType(a, b);
156
161
  }
157
- }
162
+ }
@@ -4,13 +4,21 @@ pragma solidity ^0.8.20;
4
4
  // uint24 allows for 65'535 claims with 255 payouts each per policy
5
5
  type PayoutId is uint24;
6
6
 
7
+ import {ClaimId} from "./ClaimId.sol";
8
+ import {PAYOUT} from "./ObjectType.sol";
9
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
10
+ import {NftId} from "./NftId.sol";
11
+
7
12
  // type bindings
8
13
  using {
9
14
  eqPayoutId as ==,
10
15
  nePayoutId as !=,
11
16
  PayoutIdLib.eqz,
12
17
  PayoutIdLib.gtz,
13
- PayoutIdLib.toInt
18
+ PayoutIdLib.toInt,
19
+ PayoutIdLib.toClaimId,
20
+ PayoutIdLib.toPayoutNo,
21
+ PayoutIdLib.toKey32
14
22
  } for PayoutId global;
15
23
 
16
24
 
@@ -23,8 +31,6 @@ function nePayoutId(PayoutId a, PayoutId b) pure returns (bool isDifferent) {
23
31
  return PayoutId.unwrap(a) != PayoutId.unwrap(b);
24
32
  }
25
33
 
26
- // TODO come up with a way to code claim id into payout id
27
- // eg payoutId.getClaimId(), payoutId.getPayoutNo()
28
34
  // library functions that operate on user defined type
29
35
  library PayoutIdLib {
30
36
  /// @dev Converts the PayoutId to a uint.
@@ -33,8 +39,16 @@ library PayoutIdLib {
33
39
  }
34
40
 
35
41
  /// @dev Converts an uint into a PayoutId.
36
- function toPayoutId(uint256 a) public pure returns (PayoutId) {
37
- return PayoutId.wrap(uint24(a));
42
+ function toPayoutId(ClaimId claimId, uint8 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((ClaimId.unwrap(claimId) << 8) + payoutNo);
44
+ }
45
+
46
+ function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 8));
48
+ }
49
+
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint8) {
51
+ return uint8(PayoutId.unwrap(payoutId) & 255);
38
52
  }
39
53
 
40
54
  /// @dev Converts the PayoutId to a uint.
@@ -51,4 +65,18 @@ library PayoutIdLib {
51
65
  function eqz(PayoutId a) public pure returns (bool) {
52
66
  return PayoutId.unwrap(a) == 0;
53
67
  }
68
+
69
+ /// @dev Converts the PayoutId and NftId to a Key32.
70
+ function toKey32(PayoutId payoutId, NftId policyNftId) public pure returns (Key32) {
71
+ return Key32Lib.toKey32(PAYOUT(), toKeyId(payoutId, policyNftId));
72
+ }
73
+
74
+ /// @dev Converts the PayoutId and NftId to a Key32.
75
+ function toKeyId(PayoutId payoutId, NftId policyNftId) public pure returns (KeyId) {
76
+ return KeyId.wrap(
77
+ bytes31(
78
+ bytes15(
79
+ uint120(
80
+ (NftId.unwrap(policyNftId) << 24) + PayoutId.unwrap(payoutId)))));
81
+ }
54
82
  }
@@ -26,14 +26,18 @@ function DECLINED() pure returns (StateId) {
26
26
  return toStateId(30);
27
27
  }
28
28
 
29
- function UNDERWRITTEN() pure returns (StateId) {
29
+ function COLLATERALIZED() pure returns (StateId) {
30
30
  return toStateId(40);
31
31
  }
32
32
 
33
- function CONFIRMED() pure returns (StateId) {
33
+ function SUBMITTED() pure returns (StateId) {
34
34
  return toStateId(50);
35
35
  }
36
36
 
37
+ function CONFIRMED() pure returns (StateId) {
38
+ return toStateId(51);
39
+ }
40
+
37
41
  function EXPECTED() pure returns (StateId) {
38
42
  return toStateId(60);
39
43
  }
@@ -60,6 +60,11 @@ function zeroTimestamp() pure returns (Timestamp) {
60
60
  }
61
61
 
62
62
  library TimestampLib {
63
+
64
+ function zero() public pure returns (Timestamp) {
65
+ return toTimestamp(0);
66
+ }
67
+
63
68
  function blockTimestamp() public view returns (Timestamp) {
64
69
  return Timestamp.wrap(uint40(block.timestamp));
65
70
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-8dd2f76-992",
3
+ "version": "0.0.2-8e4a894-109",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/a217c5bb40d255ef67cb8b4d687de7f1.json"
4
- }