@etherisc/gif-next 0.0.2-8a352ce → 0.0.2-8bdd2eb-413

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 (503) hide show
  1. package/README.md +360 -8
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +294 -514
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +490 -585
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +190 -0
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.json +387 -0
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +703 -76
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +1008 -125
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +468 -0
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +115 -0
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  163. package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → shared/IRegisterable.sol/IRegisterable.json} +98 -79
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IService.sol/IService.json +333 -0
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  200. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  218. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  219. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  220. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  222. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  224. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  226. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  228. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  230. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  234. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  236. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +92 -0
  238. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  240. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  242. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  248. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  258. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  260. package/contracts/distribution/Distribution.sol +261 -0
  261. package/contracts/distribution/DistributionService.sol +298 -0
  262. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  263. package/contracts/distribution/IDistributionComponent.sol +66 -0
  264. package/contracts/distribution/IDistributionService.sol +81 -0
  265. package/contracts/instance/BundleManager.sol +126 -0
  266. package/contracts/instance/IInstance.sol +74 -15
  267. package/contracts/instance/IInstanceService.sol +81 -0
  268. package/contracts/instance/Instance.sol +216 -45
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +365 -0
  272. package/contracts/instance/InstanceService.sol +362 -0
  273. package/contracts/instance/InstanceServiceManager.sol +44 -0
  274. package/contracts/instance/InstanceStore.sol +260 -0
  275. package/contracts/instance/base/BalanceStore.sol +118 -0
  276. package/contracts/instance/base/Cloneable.sol +51 -0
  277. package/contracts/instance/base/ObjectManager.sol +82 -0
  278. package/contracts/instance/module/IAccess.sol +46 -0
  279. package/contracts/instance/module/IBundle.sol +20 -0
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +42 -0
  282. package/contracts/instance/module/IPolicy.sol +84 -0
  283. package/contracts/instance/module/IRisk.sol +11 -0
  284. package/contracts/mock/Dip.sol +26 -0
  285. package/contracts/pool/BundleService.sol +296 -0
  286. package/contracts/pool/BundleServiceManager.sol +42 -0
  287. package/contracts/pool/IBundleService.sol +106 -0
  288. package/contracts/pool/IPoolComponent.sol +112 -0
  289. package/contracts/pool/IPoolService.sol +150 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +453 -0
  292. package/contracts/pool/PoolServiceManager.sol +42 -0
  293. package/contracts/product/ApplicationService.sol +254 -0
  294. package/contracts/product/ApplicationServiceManager.sol +38 -0
  295. package/contracts/product/ClaimService.sol +442 -0
  296. package/contracts/product/ClaimServiceManager.sol +38 -0
  297. package/contracts/product/IApplicationService.sol +62 -0
  298. package/contracts/product/IClaimService.sol +93 -0
  299. package/contracts/product/IPolicyService.sol +78 -0
  300. package/contracts/product/IPricingService.sol +39 -0
  301. package/contracts/product/IProductComponent.sol +42 -0
  302. package/contracts/product/IProductService.sol +33 -0
  303. package/contracts/product/PolicyService.sol +475 -0
  304. package/contracts/product/PolicyServiceManager.sol +42 -0
  305. package/contracts/product/PricingService.sol +301 -0
  306. package/contracts/product/PricingServiceManager.sol +42 -0
  307. package/contracts/product/Product.sol +377 -0
  308. package/contracts/product/ProductService.sol +124 -0
  309. package/contracts/product/ProductServiceManager.sol +42 -0
  310. package/contracts/registry/ChainNft.sol +152 -108
  311. package/contracts/registry/IRegistry.sol +103 -49
  312. package/contracts/registry/IRegistryService.sol +69 -0
  313. package/contracts/registry/ITransferInterceptor.sol +7 -0
  314. package/contracts/registry/Registry.sol +513 -119
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +266 -0
  317. package/contracts/registry/RegistryServiceManager.sol +58 -0
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +315 -0
  321. package/contracts/shared/AccessManagerCustom.sol +736 -0
  322. package/contracts/shared/AccessManagerExtended.sol +470 -0
  323. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  324. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  325. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  326. package/contracts/shared/Component.sol +278 -0
  327. package/contracts/shared/ComponentService.sol +596 -0
  328. package/contracts/shared/ComponentServiceManager.sol +35 -0
  329. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  330. package/contracts/shared/ERC165.sol +27 -0
  331. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  332. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  333. package/contracts/shared/IComponent.sol +70 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/shared/IKeyValueStore.sol +53 -0
  337. package/contracts/shared/ILifecycle.sol +30 -0
  338. package/contracts/shared/INftOwnable.sol +23 -0
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +15 -0
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +53 -0
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +127 -0
  347. package/contracts/shared/Lifecycle.sol +121 -0
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +107 -0
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +199 -0
  352. package/contracts/shared/Registerable.sol +75 -0
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +58 -0
  356. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  357. package/contracts/shared/Versionable.sol +59 -0
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +149 -0
  360. package/contracts/staking/StakeManagerLib.sol +179 -0
  361. package/contracts/staking/Staking.sol +551 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +406 -0
  365. package/contracts/staking/StakingServiceManager.sol +45 -0
  366. package/contracts/staking/StakingStore.sol +572 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/type/AddressSet.sol +58 -0
  369. package/contracts/type/Amount.sol +128 -0
  370. package/contracts/type/Blocknumber.sol +136 -0
  371. package/contracts/type/ClaimId.sol +75 -0
  372. package/contracts/type/DistributorType.sol +55 -0
  373. package/contracts/type/Fee.sol +66 -0
  374. package/contracts/type/Key32.sol +50 -0
  375. package/contracts/type/NftId.sol +78 -0
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/type/ObjectType.sol +169 -0
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/type/Referral.sol +89 -0
  380. package/contracts/type/RiskId.sol +43 -0
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +81 -0
  383. package/contracts/type/StateId.sol +123 -0
  384. package/contracts/type/Timestamp.sol +132 -0
  385. package/contracts/type/UFixed.sol +326 -0
  386. package/contracts/type/Version.sol +108 -0
  387. package/package.json +21 -6
  388. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  389. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  390. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  391. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  392. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  393. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  394. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  395. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  396. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  397. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  398. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  399. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  400. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  402. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  403. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  404. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  405. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  406. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  408. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  410. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  412. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  414. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  416. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  418. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  420. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  422. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  424. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  426. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  427. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  428. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  429. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  430. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  431. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  432. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  433. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  434. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  435. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  436. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  437. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  438. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  439. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  440. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  441. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  443. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  444. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  445. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  446. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  447. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  448. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  449. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  450. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  451. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  452. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  453. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  454. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  455. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  456. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  458. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  459. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  460. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  462. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  463. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  464. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  465. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  466. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  467. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  468. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  469. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  470. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  471. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  472. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  474. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  476. package/contracts/components/Component.sol +0 -62
  477. package/contracts/components/IPool.sol +0 -9
  478. package/contracts/components/IProduct.sol +0 -12
  479. package/contracts/components/Pool.sol +0 -29
  480. package/contracts/components/Product.sol +0 -66
  481. package/contracts/experiment/errors/Require.sol +0 -33
  482. package/contracts/experiment/errors/Revert.sol +0 -39
  483. package/contracts/experiment/inheritance/A.sol +0 -56
  484. package/contracts/experiment/inheritance/B.sol +0 -23
  485. package/contracts/experiment/inheritance/C.sol +0 -28
  486. package/contracts/experiment/inheritance/IA.sol +0 -18
  487. package/contracts/experiment/inheritance/IB.sol +0 -9
  488. package/contracts/experiment/inheritance/IC.sol +0 -11
  489. package/contracts/experiment/types/TypeA.sol +0 -42
  490. package/contracts/experiment/types/TypeB.sol +0 -24
  491. package/contracts/instance/access/Access.sol +0 -218
  492. package/contracts/instance/access/IAccess.sol +0 -83
  493. package/contracts/instance/component/ComponentModule.sol +0 -248
  494. package/contracts/instance/component/IComponent.sol +0 -95
  495. package/contracts/instance/policy/IPolicy.sol +0 -66
  496. package/contracts/instance/policy/PolicyModule.sol +0 -107
  497. package/contracts/instance/pool/IPoolModule.sol +0 -41
  498. package/contracts/instance/pool/PoolModule.sol +0 -86
  499. package/contracts/instance/product/IProductService.sol +0 -46
  500. package/contracts/instance/product/ProductService.sol +0 -108
  501. package/contracts/registry/IChainNft.sol +0 -18
  502. package/contracts/types/ChainId.sol +0 -30
  503. package/contracts/types/NftId.sol +0 -35
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "./Amount.sol";
5
+ import {UFixed, UFixedLib} from "./UFixed.sol";
6
+
7
+ struct Fee {
8
+ UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
10
+ uint256 fixedFee;
11
+ }
12
+
13
+ library FeeLib {
14
+
15
+ /// @dev Return a zero fee struct (0, 0)
16
+ function zero() public pure returns (Fee memory fee) {
17
+ return Fee(UFixed.wrap(0), 0);
18
+ }
19
+
20
+ /// @dev Converts the uint256 to a fee struct.
21
+ function toFee(
22
+ UFixed fractionalFee,
23
+ uint256 fixedFee
24
+ ) public pure returns (Fee memory fee) {
25
+ return Fee(fractionalFee, fixedFee);
26
+ }
27
+
28
+ /// @dev Calculates fee and net amounts for the provided parameters
29
+ function calculateFee(
30
+ Fee memory fee,
31
+ Amount amount
32
+ )
33
+ public
34
+ pure
35
+ returns (
36
+ Amount feeAmount,
37
+ Amount netAmount
38
+ )
39
+ {
40
+ netAmount = amount;
41
+ if(gtz(fee)) {
42
+ UFixed fractionalAmount =
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
45
+ netAmount = netAmount - feeAmount;
46
+ }
47
+ }
48
+
49
+ /// @dev Return the percent fee struct (x%, 0)
50
+ function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
51
+ return Fee(UFixedLib.toUFixed(percent, -2), 0);
52
+ }
53
+
54
+ // pure free functions for operators
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
56
+ return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
57
+ }
58
+
59
+ function gtz(Fee memory fee) public pure returns (bool) {
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
61
+ }
62
+
63
+ function eqz(Fee memory fee) public pure returns (bool) {
64
+ return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
65
+ }
66
+ }
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ObjectType} from "./ObjectType.sol";
5
+
6
+ type Key32 is bytes32;
7
+ type KeyId is bytes31;
8
+
9
+ // type bindings
10
+ using {
11
+ eqKey32 as ==,
12
+ neKey32 as !=,
13
+ Key32Lib.toKeyId,
14
+ Key32Lib.toObjectType
15
+ } for Key32 global;
16
+
17
+ // @dev Returns true iff keys are identical
18
+ function eqKey32(Key32 a, Key32 b) pure returns (bool isSame) {
19
+ return Key32.unwrap(a) == Key32.unwrap(b);
20
+ }
21
+
22
+ // @dev Returns true iff keys are different
23
+ function neKey32(Key32 a, Key32 b) pure returns (bool isDifferent) {
24
+ return Key32.unwrap(a) != Key32.unwrap(b);
25
+ }
26
+
27
+ library Key32Lib {
28
+
29
+ uint8 public constant TYPE_SHIFT = 31 * 8;
30
+ uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
31
+ bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
32
+ bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
33
+
34
+ function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
35
+ uint256 uintObjectType = ObjectType.unwrap(objectType);
36
+ uint256 uintId = uint248(KeyId.unwrap(id));
37
+ uint256 uintKey = (uintObjectType << TYPE_SHIFT) + uintId;
38
+ return Key32.wrap(bytes32(uintKey));
39
+ }
40
+
41
+ function toObjectType(Key32 key) public pure returns (ObjectType objectType) {
42
+ bytes32 key32 = Key32.unwrap(key);
43
+ objectType = ObjectType.wrap(uint8(uint256(key32 & TYPE_MASK) >> TYPE_SHIFT));
44
+ }
45
+
46
+ function toKeyId(Key32 key) public pure returns (KeyId id) {
47
+ bytes32 key32 = Key32.unwrap(key);
48
+ id = KeyId.wrap(bytes31((key32 & ID_MASK) << ID_SHIFT));
49
+ }
50
+ }
@@ -0,0 +1,78 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {ObjectType} from "./ObjectType.sol";
6
+
7
+ // uint96 allows for chain ids up to 13 digits
8
+ type NftId is uint96;
9
+
10
+ // type bindings
11
+ using {
12
+ eqNftId as ==,
13
+ neNftId as !=,
14
+ NftIdLib.toInt,
15
+ NftIdLib.gtz,
16
+ NftIdLib.eqz,
17
+ NftIdLib.toKeyId,
18
+ NftIdLib.toKey32
19
+ } for NftId global;
20
+
21
+ // pure free functions for operators
22
+ function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
23
+ return NftIdLib.eq(a, b);
24
+ }
25
+
26
+ function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
27
+ return NftIdLib.ne(a, b);
28
+ }
29
+
30
+ // library functions that operate on user defined type
31
+ library NftIdLib {
32
+
33
+ /// @dev the zero nft id
34
+ /// is never a valid nft id and implies a non-initialized value
35
+ function zero() public pure returns (NftId) {
36
+ return NftId.wrap(0);
37
+ }
38
+
39
+ /// @dev Converts the uint256 to a NftId.
40
+ function toNftId(uint256 id) public pure returns (NftId) {
41
+ return NftId.wrap(uint96(id));
42
+ }
43
+
44
+ /// @dev Converts the NftId to a uint256.
45
+ function toInt(NftId nftId) public pure returns (uint96) {
46
+ return uint96(NftId.unwrap(nftId));
47
+ }
48
+
49
+ /// @dev Returns true if the value is non-zero (> 0).
50
+ function gtz(NftId a) public pure returns (bool) {
51
+ return NftId.unwrap(a) > 0;
52
+ }
53
+
54
+ /// @dev Returns true if the value is zero (== 0).
55
+ function eqz(NftId a) public pure returns (bool) {
56
+ return NftId.unwrap(a) == 0;
57
+ }
58
+
59
+ /// @dev Returns true if the values are equal (==).
60
+ function eq(NftId a, NftId b) public pure returns (bool isSame) {
61
+ return NftId.unwrap(a) == NftId.unwrap(b);
62
+ }
63
+
64
+ /// @dev Returns true if the values are not equal (!=).
65
+ function ne(NftId a, NftId b) public pure returns (bool isSame) {
66
+ return NftId.unwrap(a) != NftId.unwrap(b);
67
+ }
68
+
69
+ /// @dev Returns the key32 value for the specified nft id and object type.
70
+ function toKey32(NftId id, ObjectType objectType) public pure returns (Key32 key) {
71
+ return Key32Lib.toKey32(objectType, toKeyId(id));
72
+ }
73
+
74
+ /// @dev Returns the key id value for the specified nft id
75
+ function toKeyId(NftId id) public pure returns (KeyId keyId) {
76
+ return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
77
+ }
78
+ }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibNftIdSet {
8
+
9
+ struct Set {
10
+ NftId[] ids;
11
+ mapping(NftId nftid => uint256 index) at;
12
+ }
13
+
14
+ error ErrorNftIdSetAlreadyAdded(NftId nftId);
15
+ error ErrorNftIdSetNotInSet(NftId nftId);
16
+
17
+
18
+ function add(Set storage set, NftId nftId) external {
19
+ if (set.at[nftId] > 0) {
20
+ revert ErrorNftIdSetAlreadyAdded(nftId);
21
+ }
22
+
23
+ set.ids.push(nftId);
24
+ set.at[nftId] = set.ids.length;
25
+ }
26
+
27
+ function remove(Set storage set, NftId nftId) external {
28
+ uint256 nftIdIndex = set.at[nftId];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorNftIdSetNotInSet(nftId);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.ids.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ NftId lastId = set.ids[lastIndex];
39
+ set.ids[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.ids.pop();
44
+ delete set.at[nftId];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.ids.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, NftId nftId) external view returns(bool inSet) {
52
+ return set.at[nftId] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.ids.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(NftId nftId) {
60
+ return set.ids[index];
61
+ }
62
+ }
@@ -0,0 +1,169 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type ObjectType is uint8;
5
+
6
+ // type bindings
7
+ using {
8
+ eqObjectType as ==,
9
+ neObjectType as !=,
10
+ ObjectTypeLib.toInt,
11
+ ObjectTypeLib.eqz,
12
+ ObjectTypeLib.gtz
13
+ } for ObjectType global;
14
+
15
+ // general pure free functions
16
+
17
+ function RELEASE() pure returns (ObjectType) {
18
+ return toObjectType(1);
19
+ }
20
+
21
+ function PROTOCOL() pure returns (ObjectType) {
22
+ return toObjectType(10);
23
+ }
24
+
25
+ function ROLE() pure returns (ObjectType) {
26
+ return toObjectType(20);
27
+ }
28
+
29
+ function TARGET() pure returns (ObjectType) {
30
+ return toObjectType(30);
31
+ }
32
+
33
+ function REGISTRY() pure returns (ObjectType) {
34
+ return toObjectType(40);
35
+ }
36
+
37
+ function STAKING() pure returns (ObjectType) {
38
+ return toObjectType(45);
39
+ }
40
+
41
+ function TOKEN() pure returns (ObjectType) {
42
+ return toObjectType(50);
43
+ }
44
+
45
+ function SERVICE() pure returns (ObjectType) {
46
+ return toObjectType(60);
47
+ }
48
+
49
+ function INSTANCE() pure returns (ObjectType) {
50
+ return toObjectType(70);
51
+ }
52
+
53
+ function STAKE() pure returns (ObjectType) {
54
+ return toObjectType(80);
55
+ }
56
+
57
+ function COMPONENT() pure returns (ObjectType) {
58
+ return toObjectType(100);
59
+ }
60
+
61
+ function FEE() pure returns (ObjectType) {
62
+ return toObjectType(101);
63
+ }
64
+
65
+ function PRODUCT_SETUP() pure returns (ObjectType) {
66
+ return toObjectType(101);
67
+ }
68
+
69
+ function PRODUCT() pure returns (ObjectType) {
70
+ return toObjectType(110);
71
+ }
72
+
73
+ function DISTRIBUTION() pure returns (ObjectType) {
74
+ return toObjectType(120);
75
+ }
76
+
77
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
78
+ return toObjectType(121);
79
+ }
80
+
81
+ function DISTRIBUTOR() pure returns (ObjectType) {
82
+ return toObjectType(122);
83
+ }
84
+
85
+ function REFERRAL() pure returns (ObjectType) {
86
+ return toObjectType(123);
87
+ }
88
+
89
+ function ORACLE() pure returns (ObjectType) {
90
+ return toObjectType(130);
91
+ }
92
+
93
+ function POOL() pure returns (ObjectType) {
94
+ return toObjectType(140);
95
+ }
96
+
97
+ function BUNDLE() pure returns (ObjectType) {
98
+ return toObjectType(220);
99
+ }
100
+
101
+ function RISK() pure returns (ObjectType) {
102
+ return toObjectType(200);
103
+ }
104
+
105
+ function APPLICATION() pure returns (ObjectType) {
106
+ return toObjectType(210);
107
+ }
108
+
109
+ function POLICY() pure returns (ObjectType) {
110
+ return toObjectType(211);
111
+ }
112
+
113
+ function CLAIM() pure returns (ObjectType) {
114
+ return toObjectType(212);
115
+ }
116
+
117
+ function PAYOUT() pure returns (ObjectType) {
118
+ return toObjectType(213);
119
+ }
120
+
121
+ function PRICE() pure returns (ObjectType) {
122
+ return toObjectType(230);
123
+ }
124
+
125
+ /// @dev Converts the uint8 to a ObjectType.
126
+ function toObjectType(uint256 objectType) pure returns (ObjectType) {
127
+ return ObjectType.wrap(uint8(objectType));
128
+ }
129
+
130
+ // TODO move to ObjecTypeLib and rename to zero()
131
+ /// @dev Return the ObjectType zero (0)
132
+ function zeroObjectType() pure returns (ObjectType) {
133
+ return ObjectType.wrap(0);
134
+ }
135
+
136
+ // pure free functions for operators
137
+ function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
138
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
139
+ }
140
+
141
+ function neObjectType(
142
+ ObjectType a,
143
+ ObjectType b
144
+ ) pure returns (bool isDifferent) {
145
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
146
+ }
147
+
148
+ // library functions that operate on user defined type
149
+ library ObjectTypeLib {
150
+ /// @dev Converts the NftId to a uint256.
151
+ function toInt(ObjectType objectType) public pure returns (uint96) {
152
+ return uint96(ObjectType.unwrap(objectType));
153
+ }
154
+
155
+ /// @dev Returns true if the value is non-zero (> 0).
156
+ function gtz(ObjectType a) public pure returns (bool) {
157
+ return ObjectType.unwrap(a) > 0;
158
+ }
159
+
160
+ /// @dev Returns true if the value is zero (== 0).
161
+ function eqz(ObjectType a) public pure returns (bool) {
162
+ return ObjectType.unwrap(a) == 0;
163
+ }
164
+
165
+ /// @dev Returns true if the values are equal (==).
166
+ function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
167
+ return eqObjectType(a, b);
168
+ }
169
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint24 allows for 65'535 claims with 255 payouts each per policy
5
+ type PayoutId is uint24;
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
+
12
+ // type bindings
13
+ using {
14
+ eqPayoutId as ==,
15
+ nePayoutId as !=,
16
+ PayoutIdLib.eqz,
17
+ PayoutIdLib.gtz,
18
+ PayoutIdLib.toInt,
19
+ PayoutIdLib.toClaimId,
20
+ PayoutIdLib.toPayoutNo,
21
+ PayoutIdLib.toKey32
22
+ } for PayoutId global;
23
+
24
+
25
+ // pure free functions for operators
26
+ function eqPayoutId(PayoutId a, PayoutId b) pure returns (bool isSame) {
27
+ return PayoutId.unwrap(a) == PayoutId.unwrap(b);
28
+ }
29
+
30
+ function nePayoutId(PayoutId a, PayoutId b) pure returns (bool isDifferent) {
31
+ return PayoutId.unwrap(a) != PayoutId.unwrap(b);
32
+ }
33
+
34
+ // library functions that operate on user defined type
35
+ library PayoutIdLib {
36
+ /// @dev Converts the PayoutId to a uint.
37
+ function zero() public pure returns (PayoutId) {
38
+ return PayoutId.wrap(0);
39
+ }
40
+
41
+ /// @dev Converts an uint into a PayoutId.
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);
52
+ }
53
+
54
+ /// @dev Converts the PayoutId to a uint.
55
+ function toInt(PayoutId a) public pure returns (uint24) {
56
+ return uint24(PayoutId.unwrap(a));
57
+ }
58
+
59
+ /// @dev Returns true if the value is non-zero (> 0).
60
+ function gtz(PayoutId a) public pure returns (bool) {
61
+ return PayoutId.unwrap(a) > 0;
62
+ }
63
+
64
+ /// @dev Returns true if the value is zero (== 0).
65
+ function eqz(PayoutId a) public pure returns (bool) {
66
+ return PayoutId.unwrap(a) == 0;
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
+ }
82
+ }
@@ -0,0 +1,89 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
6
+ import {REFERRAL} from "./ObjectType.sol";
7
+
8
+ type ReferralId is bytes8;
9
+ type ReferralStatus is uint8;
10
+
11
+ // type bindings
12
+ using {
13
+ eqReferralId as ==,
14
+ neReferralId as !=,
15
+ ReferralLib.toKey32
16
+ } for ReferralId global;
17
+
18
+ using {
19
+ eqReferralStatus as ==,
20
+ neReferralStatus as !=
21
+ } for ReferralStatus global;
22
+
23
+ // general pure free functions
24
+
25
+ // @dev Returns true iff a and b are identical
26
+ function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
27
+ return ReferralId.unwrap(a) == ReferralId.unwrap(b);
28
+ }
29
+
30
+ // @dev Returns true iff a and b are different
31
+ function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
32
+ return ReferralId.unwrap(a) != ReferralId.unwrap(b);
33
+ }
34
+
35
+ // @dev Returns true iff a and b are identical
36
+ function eqReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isSame) {
37
+ return ReferralStatus.unwrap(a) == ReferralStatus.unwrap(b);
38
+ }
39
+
40
+ // @dev Returns true iff a and b are different
41
+ function neReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isDifferent) {
42
+ return ReferralStatus.unwrap(a) != ReferralStatus.unwrap(b);
43
+ }
44
+
45
+ function REFERRAL_OK() pure returns (ReferralStatus) {
46
+ return ReferralStatus.wrap(10);
47
+ }
48
+
49
+ function REFERRAL_ERROR_UNKNOWN() pure returns (ReferralStatus) {
50
+ return ReferralStatus.wrap(100);
51
+ }
52
+
53
+ function REFERRAL_ERROR_EXPIRED() pure returns (ReferralStatus) {
54
+ return ReferralStatus.wrap(110);
55
+ }
56
+
57
+ function REFERRAL_ERROR_EXHAUSTED() pure returns (ReferralStatus) {
58
+ return ReferralStatus.wrap(120);
59
+ }
60
+
61
+ library ReferralLib {
62
+
63
+ function zero() public pure returns (ReferralId) {
64
+ return ReferralId.wrap(bytes8(0));
65
+ }
66
+
67
+ // @dev Converts a referral string into an id.
68
+ function toReferralId(NftId distributionNftId, string memory referral) public pure returns (ReferralId) {
69
+ return ReferralId.wrap(bytes8(keccak256(abi.encode(distributionNftId, referral))));
70
+ }
71
+
72
+ function toReferralStatus(uint8 status) public pure returns (ReferralStatus) {
73
+ return ReferralStatus.wrap(status);
74
+ }
75
+
76
+ /// @dev Returns the key32 value for the specified nft id and object type.
77
+ function toKey32(ReferralId id) public pure returns (Key32 key) {
78
+ return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
79
+ }
80
+
81
+ /// @dev Returns the key id value for the specified nft id
82
+ function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
83
+ return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
84
+ }
85
+
86
+ function eqz(ReferralId id) public pure returns (bool) {
87
+ return eqReferralId(id, zero());
88
+ }
89
+ }
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {RISK} from "./ObjectType.sol";
6
+
7
+ type RiskId is bytes8;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRiskId as ==,
12
+ neRiskId as !=,
13
+ RiskIdLib.toKey32
14
+ } for RiskId global;
15
+
16
+ // general pure free functions
17
+
18
+ // @dev Returns true iff risk ids a and b are identical
19
+ function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
20
+ return RiskId.unwrap(a) == RiskId.unwrap(b);
21
+ }
22
+
23
+ // @dev Returns true iff risk ids a and b are different
24
+ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
25
+ return RiskId.unwrap(a) != RiskId.unwrap(b);
26
+ }
27
+
28
+ library RiskIdLib {
29
+ // @dev Converts a role string into a role id.
30
+ function toRiskId(string memory risk) public pure returns (RiskId) {
31
+ return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
32
+ }
33
+
34
+ /// @dev Returns the key32 value for the specified nft id and object type.
35
+ function toKey32(RiskId id) public pure returns (Key32 key) {
36
+ return Key32Lib.toKey32(RISK(), toKeyId(id));
37
+ }
38
+
39
+ /// @dev Returns the key id value for the specified nft id
40
+ function toKeyId(RiskId id) public pure returns (KeyId keyId) {
41
+ return KeyId.wrap(bytes31(RiskId.unwrap(id)));
42
+ }
43
+ }