@etherisc/gif-next 0.0.2-7e684ab-059 → 0.0.2-7ef1483-704

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 (548) hide show
  1. package/README.md +338 -19
  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 +331 -1138
  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 +463 -1216
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +692 -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 +1570 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1045 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +730 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -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/{treasury/ITreasury.sol/ITreasury.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/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  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 +1097 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +742 -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 +1050 -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 +1417 -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 +826 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +718 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1270 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +806 -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 +1138 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +750 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +975 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +774 -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 +744 -26
  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 +1026 -52
  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 +478 -0
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
  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/shared/IRegisterable.sol/IRegisterable.json +181 -0
  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/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IService.sol/IService.json} +168 -134
  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 +581 -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 +1441 -0
  200. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  201. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  202. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  203. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +890 -0
  204. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  205. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  208. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/Staking.sol/Staking.json +2008 -0
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +391 -0
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1213 -0
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +722 -0
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1682 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  246. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  248. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  250. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  252. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  254. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  256. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  258. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  260. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  264. package/contracts/distribution/Distribution.sol +261 -0
  265. package/contracts/distribution/DistributionService.sol +298 -0
  266. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  267. package/contracts/distribution/IDistributionComponent.sol +66 -0
  268. package/contracts/distribution/IDistributionService.sol +81 -0
  269. package/contracts/instance/BundleManager.sol +126 -0
  270. package/contracts/instance/IInstance.sol +76 -22
  271. package/contracts/instance/IInstanceService.sol +81 -0
  272. package/contracts/instance/Instance.sol +216 -53
  273. package/contracts/instance/InstanceAdmin.sol +331 -0
  274. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  275. package/contracts/instance/InstanceReader.sol +365 -0
  276. package/contracts/instance/InstanceService.sol +362 -0
  277. package/contracts/instance/InstanceServiceManager.sol +44 -0
  278. package/contracts/instance/InstanceStore.sol +260 -0
  279. package/contracts/instance/base/BalanceStore.sol +118 -0
  280. package/contracts/instance/base/Cloneable.sol +51 -0
  281. package/contracts/instance/base/ObjectManager.sol +82 -0
  282. package/contracts/instance/module/IAccess.sol +46 -0
  283. package/contracts/instance/module/IBundle.sol +20 -0
  284. package/contracts/instance/module/IComponents.sol +52 -0
  285. package/contracts/instance/module/IDistribution.sol +42 -0
  286. package/contracts/instance/module/IPolicy.sol +84 -0
  287. package/contracts/instance/module/IRisk.sol +11 -0
  288. package/contracts/mock/Dip.sol +26 -0
  289. package/contracts/pool/BundleService.sol +296 -0
  290. package/contracts/pool/BundleServiceManager.sol +42 -0
  291. package/contracts/pool/IBundleService.sol +106 -0
  292. package/contracts/pool/IPoolComponent.sol +112 -0
  293. package/contracts/pool/IPoolService.sol +147 -0
  294. package/contracts/pool/Pool.sol +299 -0
  295. package/contracts/pool/PoolService.sol +424 -0
  296. package/contracts/pool/PoolServiceManager.sol +42 -0
  297. package/contracts/product/ApplicationService.sol +254 -0
  298. package/contracts/product/ApplicationServiceManager.sol +38 -0
  299. package/contracts/product/ClaimService.sol +437 -0
  300. package/contracts/product/ClaimServiceManager.sol +38 -0
  301. package/contracts/product/IApplicationService.sol +62 -0
  302. package/contracts/product/IClaimService.sol +93 -0
  303. package/contracts/product/IPolicyService.sol +78 -0
  304. package/contracts/product/IPricingService.sol +39 -0
  305. package/contracts/product/IProductComponent.sol +42 -0
  306. package/contracts/product/IProductService.sol +33 -0
  307. package/contracts/product/PolicyService.sol +473 -0
  308. package/contracts/product/PolicyServiceManager.sol +42 -0
  309. package/contracts/product/PricingService.sol +301 -0
  310. package/contracts/product/PricingServiceManager.sol +42 -0
  311. package/contracts/product/Product.sol +377 -0
  312. package/contracts/product/ProductService.sol +124 -0
  313. package/contracts/product/ProductServiceManager.sol +42 -0
  314. package/contracts/registry/ChainNft.sol +143 -62
  315. package/contracts/registry/IRegistry.sol +99 -42
  316. package/contracts/registry/IRegistryService.sol +69 -0
  317. package/contracts/registry/ITransferInterceptor.sol +7 -0
  318. package/contracts/registry/Registry.sol +521 -127
  319. package/contracts/registry/RegistryAdmin.sol +237 -0
  320. package/contracts/registry/RegistryService.sol +266 -0
  321. package/contracts/registry/RegistryServiceManager.sol +58 -0
  322. package/contracts/registry/ReleaseManager.sol +599 -0
  323. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  324. package/contracts/registry/TokenRegistry.sol +361 -0
  325. package/contracts/shared/AccessManagerCustom.sol +736 -0
  326. package/contracts/shared/AccessManagerExtended.sol +470 -0
  327. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  328. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  329. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  330. package/contracts/shared/Component.sol +286 -0
  331. package/contracts/shared/ComponentService.sol +596 -0
  332. package/contracts/shared/ComponentServiceManager.sol +35 -0
  333. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  334. package/contracts/shared/ERC165.sol +27 -0
  335. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  336. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  337. package/contracts/shared/IComponent.sol +74 -0
  338. package/contracts/shared/IComponentService.sol +91 -0
  339. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  340. package/contracts/shared/IKeyValueStore.sol +53 -0
  341. package/contracts/shared/ILifecycle.sol +30 -0
  342. package/contracts/shared/INftOwnable.sol +23 -0
  343. package/contracts/shared/IPolicyHolder.sol +45 -0
  344. package/contracts/shared/IRegisterable.sol +15 -0
  345. package/contracts/shared/IRegistryLinked.sol +11 -0
  346. package/contracts/shared/IService.sol +18 -0
  347. package/contracts/shared/IVersionable.sol +53 -0
  348. package/contracts/shared/InitializableCustom.sol +177 -0
  349. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  350. package/contracts/shared/KeyValueStore.sol +130 -0
  351. package/contracts/shared/Lifecycle.sol +121 -0
  352. package/contracts/shared/NftIdSetManager.sol +65 -0
  353. package/contracts/shared/NftOwnable.sol +107 -0
  354. package/contracts/shared/PolicyHolder.sol +102 -0
  355. package/contracts/shared/ProxyManager.sol +199 -0
  356. package/contracts/shared/Registerable.sol +75 -0
  357. package/contracts/shared/RegistryLinked.sol +43 -0
  358. package/contracts/shared/Service.sol +77 -0
  359. package/contracts/shared/TokenHandler.sol +58 -0
  360. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  361. package/contracts/shared/Versionable.sol +59 -0
  362. package/contracts/staking/IStaking.sol +152 -0
  363. package/contracts/staking/IStakingManager.sol +15 -0
  364. package/contracts/staking/IStakingService.sol +162 -0
  365. package/contracts/staking/IStakingStore.sol +130 -0
  366. package/contracts/staking/StakeManagerLib.sol +156 -0
  367. package/contracts/staking/Staking.sol +497 -0
  368. package/contracts/staking/StakingManager.sol +54 -0
  369. package/contracts/staking/StakingReader.sol +146 -0
  370. package/contracts/staking/StakingService.sol +376 -0
  371. package/contracts/staking/StakingServiceManager.sol +45 -0
  372. package/contracts/staking/StakingStore.sol +331 -0
  373. package/contracts/staking/TargetManagerLib.sol +179 -0
  374. package/contracts/type/AddressSet.sol +58 -0
  375. package/contracts/type/Amount.sol +114 -0
  376. package/contracts/{types → type}/Blocknumber.sol +21 -3
  377. package/contracts/type/ClaimId.sol +75 -0
  378. package/contracts/type/DistributorType.sol +55 -0
  379. package/contracts/type/Fee.sol +66 -0
  380. package/contracts/type/Key32.sol +50 -0
  381. package/contracts/{types → type}/NftId.sol +40 -13
  382. package/contracts/type/NftIdSet.sol +62 -0
  383. package/contracts/{types → type}/ObjectType.sol +77 -15
  384. package/contracts/type/PayoutId.sol +82 -0
  385. package/contracts/type/Referral.sol +89 -0
  386. package/contracts/type/RiskId.sol +43 -0
  387. package/contracts/type/RoleId.sol +143 -0
  388. package/contracts/type/Seconds.sol +71 -0
  389. package/contracts/{types → type}/StateId.sol +38 -6
  390. package/contracts/{types → type}/Timestamp.sol +36 -6
  391. package/contracts/type/UFixed.sol +326 -0
  392. package/contracts/type/Version.sol +108 -0
  393. package/package.json +12 -5
  394. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  395. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  396. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  397. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  398. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  399. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  400. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  401. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  402. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  403. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  404. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  405. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  406. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  408. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  410. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  412. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  414. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  416. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  418. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  420. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  423. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  425. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  427. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  429. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  431. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  433. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  435. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  437. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  439. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  440. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  441. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  442. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  443. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  444. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  445. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  446. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  447. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  448. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  450. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  451. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  452. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  453. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  454. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  455. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  456. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  457. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  458. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  459. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  460. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  461. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  462. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  463. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  464. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  465. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  466. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  467. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  469. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  470. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  471. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  472. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  473. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  474. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  475. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  476. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  478. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  479. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  480. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  482. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  483. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  484. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  485. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  486. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  487. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  488. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  489. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  490. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  491. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  492. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  493. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  494. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  495. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  496. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  497. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  498. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  499. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  500. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  501. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  504. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  508. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  510. package/contracts/components/Component.sol +0 -77
  511. package/contracts/components/IPool.sol +0 -15
  512. package/contracts/components/IProduct.sol +0 -16
  513. package/contracts/components/Pool.sol +0 -52
  514. package/contracts/components/Product.sol +0 -89
  515. package/contracts/experiment/errors/Require.sol +0 -38
  516. package/contracts/experiment/errors/Revert.sol +0 -44
  517. package/contracts/experiment/inheritance/A.sol +0 -53
  518. package/contracts/experiment/inheritance/B.sol +0 -28
  519. package/contracts/experiment/inheritance/C.sol +0 -34
  520. package/contracts/experiment/inheritance/IA.sol +0 -13
  521. package/contracts/experiment/inheritance/IB.sol +0 -10
  522. package/contracts/experiment/inheritance/IC.sol +0 -12
  523. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  524. package/contracts/experiment/statemachine/ISM.sol +0 -25
  525. package/contracts/experiment/statemachine/README.md +0 -112
  526. package/contracts/experiment/statemachine/SM.sol +0 -57
  527. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  528. package/contracts/experiment/types/TypeA.sol +0 -47
  529. package/contracts/experiment/types/TypeB.sol +0 -29
  530. package/contracts/instance/access/Access.sol +0 -165
  531. package/contracts/instance/access/IAccess.sol +0 -63
  532. package/contracts/instance/component/ComponentModule.sol +0 -274
  533. package/contracts/instance/component/IComponent.sol +0 -74
  534. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  535. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  536. package/contracts/instance/policy/IPolicy.sol +0 -50
  537. package/contracts/instance/policy/PolicyModule.sol +0 -114
  538. package/contracts/instance/pool/IPoolModule.sol +0 -23
  539. package/contracts/instance/pool/PoolModule.sol +0 -81
  540. package/contracts/instance/product/IProductService.sol +0 -36
  541. package/contracts/instance/product/ProductService.sol +0 -136
  542. package/contracts/instance/treasury/ITreasury.sol +0 -91
  543. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  544. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  545. package/contracts/registry/IChainNft.sol +0 -21
  546. package/contracts/types/ChainId.sol +0 -38
  547. package/contracts/types/Fee.sol +0 -32
  548. package/contracts/types/UFixed.sol +0 -210
@@ -1,12 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
- import {IChainNft} from "./IChainNft.sol";
5
+ import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
6
6
 
7
- contract ChainNft is ERC721Enumerable, IChainNft {
8
- string public constant NAME = "Dezentralized Insurance Protocol Registry";
9
- string public constant SYMBOL = "DIPR";
7
+ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
8
+
9
+ contract ChainNft is ERC721Enumerable {
10
+
11
+ // constants
12
+ string public constant NAME = "Dezentralized Insurance Protocol NFT";
13
+ string public constant SYMBOL = "DIPNFT";
14
+
15
+ uint256 public constant PROTOCOL_NFT_ID = 1101;
16
+ uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
+
18
+ // custom errors
19
+ error CallerNotRegistry(address caller);
20
+ error RegistryAddressZero();
21
+ error NftUriEmpty();
22
+ error NftUriAlreadySet();
23
+
24
+ // contract state
25
+
26
+ // remember interceptors
27
+ mapping(uint256 tokenId => address interceptor) private _interceptor;
10
28
 
11
29
  // remember token uri
12
30
  mapping(uint256 tokenId => string uri) private _uri;
@@ -22,43 +40,89 @@ contract ChainNft is ERC721Enumerable, IChainNft {
22
40
  uint256 internal _totalMinted;
23
41
 
24
42
  modifier onlyRegistry() {
25
- require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
43
+ if (msg.sender != _registry) { revert CallerNotRegistry(msg.sender); }
26
44
  _;
27
45
  }
28
46
 
29
47
  constructor(address registry) ERC721(NAME, SYMBOL) {
30
- require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
48
+ if (registry == address(0)) { revert RegistryAddressZero(); }
31
49
 
32
50
  _registry = registry;
33
-
34
51
  _chainIdInt = block.chainid;
35
- _chainIdDigits = _countDigits(_chainIdInt);
36
- _chainIdMultiplier = 10 ** _chainIdDigits;
52
+ _chainIdDigits = 0;
37
53
 
38
- // on mainnet/goerli start /1 (reserved for protocol nft) on other chains with 2
39
- if (block.chainid == 1 || block.chainid == 5) {
40
- _idNext = 1;
41
- } else {
42
- _idNext = 2;
54
+ // count digis
55
+ uint256 num = _chainIdInt;
56
+ while (num != 0) {
57
+ _chainIdDigits++;
58
+ num /= 10;
43
59
  }
60
+
61
+ _chainIdMultiplier = 10 ** _chainIdDigits;
62
+
63
+ // the first object registered through normal registration starts with id 4
64
+ // 1 -> protocol
65
+ // 2 -> registry
66
+ // 3 -> staking
67
+ // >= 4 -> all other objects
68
+ _idNext = 4;
69
+ }
70
+
71
+ /**
72
+ * @dev mints a token for a specified token id
73
+ * not part of the IRegistry interface only needed for
74
+ * initial registry setup (protocol and global registry objects)
75
+ */
76
+ function mint(address to, uint256 tokenId) external onlyRegistry {
77
+ _totalMinted++;
78
+ _safeMint(to, tokenId);
44
79
  }
45
80
 
81
+
82
+ /**
83
+ * @dev mints the next token to register new objects
84
+ * non-zero transferInterceptors are recorded and called during nft token transfers.
85
+ * the contract receiving such a notification may decides to revert or record the transfer
86
+ */
46
87
  function mint(
47
88
  address to,
89
+ address interceptor,
48
90
  string memory uri
49
- ) external override onlyRegistry returns (uint256 tokenId) {
91
+ ) public onlyRegistry returns (uint256 tokenId) {
50
92
  tokenId = _getNextTokenId();
51
- _totalMinted++;
52
93
 
53
- _safeMint(to, tokenId);
94
+ if (interceptor != address(0)) {
95
+ _interceptor[tokenId] = interceptor;
96
+ }
54
97
 
55
98
  if (bytes(uri).length > 0) {
56
99
  _uri[tokenId] = uri;
57
100
  }
101
+
102
+ _totalMinted++;
103
+ _safeMint(to, tokenId);
104
+
105
+ if(interceptor != address(0)) {
106
+ ITransferInterceptor(interceptor).nftMint(to, tokenId);
107
+ }
58
108
  }
59
109
 
60
- function burn(uint256 tokenId) external override onlyRegistry {
61
- _requireMinted(tokenId);
110
+
111
+ /**
112
+ * @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
113
+ * this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
114
+ */
115
+ function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
116
+ super.transferFrom(from, to, tokenId);
117
+
118
+ if (_interceptor[tokenId] != address(0)) {
119
+ ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
120
+ }
121
+ }
122
+
123
+
124
+ function burn(uint256 tokenId) external onlyRegistry {
125
+ _requireOwned(tokenId);
62
126
  _burn(tokenId);
63
127
  delete _uri[tokenId];
64
128
  }
@@ -66,70 +130,87 @@ contract ChainNft is ERC721Enumerable, IChainNft {
66
130
  function setURI(
67
131
  uint256 tokenId,
68
132
  string memory uri
69
- ) external override onlyRegistry {
70
- require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
133
+ ) external onlyRegistry {
134
+ if (bytes(uri).length == 0) { revert NftUriEmpty(); }
135
+ if (bytes(_uri[tokenId]).length > 0) { revert NftUriAlreadySet(); }
71
136
 
72
- _requireMinted(tokenId);
137
+ _requireOwned(tokenId);
73
138
  _uri[tokenId] = uri;
74
139
  }
75
140
 
76
- function exists(uint256 tokenId) external view override returns (bool) {
77
- return _exists(tokenId);
141
+ function exists(uint256 tokenId) external view returns (bool) {
142
+ return _ownerOf(tokenId) != address(0);
78
143
  }
79
144
 
80
145
  function tokenURI(
81
146
  uint256 tokenId
82
147
  ) public view override returns (string memory) {
83
- _requireMinted(tokenId);
148
+ // gif generally does not revert for view functions
149
+ // this is an exception to keep the openzeppelin nft semantics
150
+ _requireOwned(tokenId);
84
151
  return _uri[tokenId];
85
152
  }
86
153
 
87
- function getRegistryAddress() external view override returns (address) {
154
+ function getInterceptor(uint256 tokenId) external view returns (address) {
155
+ return _interceptor[tokenId];
156
+ }
157
+
158
+ function getRegistryAddress() external view returns (address) {
88
159
  return _registry;
89
160
  }
90
161
 
91
- function totalMinted() external view override returns (uint256) {
162
+ function totalMinted() external view returns (uint256) {
92
163
  return _totalMinted;
93
164
  }
94
165
 
95
- // requirement: each chain registry produces token ids that
96
- // are guaranteed to not collide with any token id genereated
97
- // on a different chain
98
- //
99
- // format concat(counter,chainid,2 digits for len-of-chain-id)
100
- // restriction chainid up to 99 digits
101
- // decode: from right to left:
102
- // - 2 right most digits encode length of chainid
103
- // - move number of digits to left as determined above (-> chainid)
104
- // - the reminder to the left is the counter
105
- // examples
106
- // 1101
107
- // ^^ ^
108
- // || +- 1-digit chain id
109
- // |+-- chain id = 1 (mainnet)
110
- // +-- 1st token id on mainnet
111
- // (1 * 10 ** 1 + 1) * 100 + 1
112
- // 42987654321010
113
- // ^ ^ ^
114
- // | | +- 10-digit chain id
115
- // | +-- chain id = 9876543210 (hypothetical chainid)
116
- // +-- 42nd token id on this chain
117
- // (42 * 10 ** 10 + 9876543210) * 100 + 10
118
- // (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
119
-
120
- function _getNextTokenId() private returns (uint256 id) {
166
+ /**
167
+ * @dev token id calculation based on an index value that is supposed
168
+ * to increase with every minted token
169
+ *
170
+ * requirement: each chain registry produces token ids that
171
+ * are guaranteed to not collide with any token id genereated
172
+ * on a different chain
173
+ *
174
+ * format concat(counter,chainid,2 digits for len-of-chain-id)
175
+ * restriction chainid up to 99 digits
176
+ * decode: from right to left:
177
+ * - 2 right most digits encode length of chainid
178
+ * - move number of digits to left as determined above (-> chainid)
179
+ * - the reminder to the left is the counter
180
+ *
181
+ * special cases
182
+ * 1101 -> decentralized insurance protocol
183
+ * 2102 -> global registry
184
+ * 2xxxxx -> chain registry, where xxxxx = <chain-part>
185
+ *
186
+ * examples
187
+ * 1101
188
+ * ^^ ^
189
+ * || +- 1-digit chain id
190
+ * |+-- chain id = 1 (mainnet)
191
+ * +-- 1st token id on mainnet
192
+ * (1 * 10 ** 1 + 1) * 100 + 1
193
+ * 42987654321010
194
+ * ^ ^ ^
195
+ * | | +- 10-digit chain id
196
+ * | +-- chain id = 9876543210 (hypothetical chainid)
197
+ * +-- 42nd token id on this chain
198
+ * (42 * 10 ** 10 + 9876543210) * 100 + 10
199
+ * (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
200
+ */
201
+ function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
121
202
  id =
122
- (_idNext * _chainIdMultiplier + _chainIdInt) *
203
+ (idIndex * _chainIdMultiplier + _chainIdInt) *
123
204
  100 +
124
205
  _chainIdDigits;
125
- _idNext++;
126
206
  }
127
207
 
128
- function _countDigits(uint256 num) private pure returns (uint256 count) {
129
- count = 0;
130
- while (num != 0) {
131
- count++;
132
- num /= 10;
133
- }
208
+ function getNextTokenId() external view returns (uint256) {
209
+ return calculateTokenId(_idNext);
210
+ }
211
+
212
+ function _getNextTokenId() private returns (uint256 id) {
213
+ id = calculateTokenId(_idNext);
214
+ _idNext++;
134
215
  }
135
216
  }
@@ -1,67 +1,124 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {ObjectType} from "../types/ObjectType.sol";
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
5
 
7
- interface IOwnable {
8
- function getOwner() external view returns (address owner);
9
- }
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
10
11
 
11
- interface IRegistryLinked {
12
- event LogDebug(uint256 idx, address module, string comment);
12
+ interface IRegistry is IERC165 {
13
13
 
14
- function getRegistry() external view returns (IRegistry registry);
15
- }
14
+ event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
15
+ event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
16
16
 
17
- interface IRegisterable is IOwnable, IRegistryLinked {
18
- function register() external returns (NftId nftId);
17
+ // registerService()
18
+ error ErrorRegistryCallerNotReleaseManager();
19
+ error ErrorRegistryDomainZero(address service);
20
+ error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
19
21
 
20
- function getNftId() external view returns (NftId nftId);
21
-
22
- function getParentNftId() external view returns (NftId parentNftId);
23
-
24
- function getType() external view returns (ObjectType objectType);
25
-
26
- function getData() external view returns (bytes memory data);
22
+ // register()
23
+ error ErrorRegistryCallerNotRegistryService();
27
24
 
28
- function isRegisterable() external pure returns (bool);
25
+ // registerWithCustomTypes()
26
+ error ErrorRegistryCoreTypeRegistration();
29
27
 
30
- function getInitialOwner() external view returns (address initialOwner);
28
+ // _register()
29
+ error ErrorRegistryParentAddressZero();
30
+ error ErrorRegistryTypesCombinationInvalid(ObjectType objectType, ObjectType parentType);
31
+ error ErrorRegistryContractAlreadyRegistered(address objectAddress);
31
32
 
32
- function isRegistered() external view returns (bool);
33
- }
34
-
35
- interface IRegistry {
36
- struct RegistryInfo {
33
+ struct ObjectInfo {
37
34
  NftId nftId;
38
35
  NftId parentNftId;
39
36
  ObjectType objectType;
37
+ bool isInterceptor;
40
38
  address objectAddress;
41
39
  address initialOwner;
40
+ bytes data;
41
+ }
42
+
43
+
44
+ struct ReleaseInfo {
45
+ VersionPart version;
46
+ bytes32 salt;
47
+ address[] addresses;
48
+ string[] names;
49
+ RoleId[][] serviceRoles;
50
+ string[][] serviceRoleNames;
51
+ RoleId[][] functionRoles;
52
+ string[][] functionRoleNames;
53
+ bytes4[][][] selectors;
54
+ ObjectType[] domains;
55
+ Timestamp activatedAt;
56
+ Timestamp disabledAt;
42
57
  }
43
58
 
44
- function register(address objectAddress) external returns (NftId nftId);
59
+ function registerService(
60
+ ObjectInfo memory serviceInfo,
61
+ VersionPart serviceVersion,
62
+ ObjectType serviceDomain
63
+ ) external returns(NftId nftId);
45
64
 
46
- function registerObjectForInstance(
47
- NftId parentNftid,
48
- ObjectType objectType,
49
- address initialOwner
50
- ) external returns (NftId nftId);
65
+ function register(ObjectInfo memory info) external returns (NftId nftId);
66
+
67
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
68
+
69
+ function getInitialVersion() external view returns (VersionPart);
70
+
71
+ function getNextVersion() external view returns (VersionPart);
72
+
73
+ function getLatestVersion() external view returns (VersionPart);
74
+
75
+ function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
51
76
 
52
77
  function getObjectCount() external view returns (uint256);
53
78
 
54
- function getNftId(
55
- address objectAddress
56
- ) external view returns (NftId nftId);
79
+ function getNftId(address objectAddress) external view returns (NftId nftId);
80
+
81
+ function ownerOf(NftId nftId) external view returns (address);
82
+
83
+ function ownerOf(address contractAddress) external view returns (address);
84
+
85
+ function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
86
+
87
+ function getObjectInfo(address object) external view returns (ObjectInfo memory info);
88
+
89
+ function isRegistered(NftId nftId) external view returns (bool);
90
+
91
+ function isRegistered(address contractAddress) external view returns (bool);
92
+
93
+ function isRegisteredService(address contractAddress) external view returns (bool);
94
+
95
+ function isRegisteredComponent(address object) external view returns (bool);
96
+
97
+ function isActiveRelease(VersionPart version) external view returns (bool);
98
+
99
+ function getServiceAddress(
100
+ ObjectType serviceDomain,
101
+ VersionPart releaseVersion
102
+ ) external view returns (address serviceAddress);
103
+
104
+ function getProtocolNftId() external view returns (NftId protocolNftId);
105
+
106
+ function getNftId() external view returns (NftId nftId);
107
+
108
+ function getOwner() external view returns (address);
109
+
110
+ // TODO refactor the address getters below to contract getters
111
+ function getChainNftAddress() external view returns (address);
112
+
113
+ function getReleaseManagerAddress() external view returns (address);
114
+
115
+ function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
57
116
 
58
- function getInfo(
59
- NftId nftId
60
- ) external view returns (RegistryInfo memory info);
117
+ function getStakingAddress() external view returns (address);
61
118
 
62
- function getOwner(NftId nftId) external view returns (address ownerAddress);
119
+ function getTokenRegistryAddress() external view returns (address);
63
120
 
64
- function isRegistered(address objectAddress) external view returns (bool);
121
+ function getRegistryAdminAddress() external view returns (address);
65
122
 
66
- function getNftAddress() external view returns (address nft);
67
- }
123
+ function getAuthority() external view returns (address);
124
+ }
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ import {IService} from "../shared/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+
12
+ import {IRegisterable} from "../shared/IRegisterable.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
15
+
16
+
17
+ interface IRegistryService is
18
+ IService
19
+ {
20
+ error ErrorRegistryServiceNotRegistryOwner();
21
+
22
+ error ErrorRegistryServiceNotService(address notService);
23
+ error ErrorRegistryServiceNotInstance(address notInstance);
24
+ error ErrorRegistryServiceNotComponent(address notComponent);
25
+ error ErrorRegistryServiceNotProduct(address notProduct);
26
+ error ErrorRegistryServiceNotPool(address notPool);
27
+ error ErrorRegistryServiceNotDistribution(address notDistribution);
28
+
29
+ error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
30
+ error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
31
+ error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
32
+ error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
33
+ error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
34
+ error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
35
+
36
+ error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
37
+ error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
38
+ error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
39
+ error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
40
+
41
+ error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
42
+ error ErrorRegistryServiceInvalidAddress(address registerableAddress);
43
+
44
+ function registerStake(IRegistry.ObjectInfo memory info)
45
+ external returns(NftId nftId);
46
+
47
+ function registerInstance(IRegisterable instance, address owner)
48
+ external returns(IRegistry.ObjectInfo memory info);
49
+
50
+ function registerComponent(IComponent component, ObjectType objectType, address owner)
51
+ external returns(IRegistry.ObjectInfo memory info);
52
+
53
+ function registerProduct(IComponent product, address owner)
54
+ external returns(IRegistry.ObjectInfo memory info);
55
+
56
+ function registerPool(IComponent pool, address owner)
57
+ external returns(IRegistry.ObjectInfo memory info);
58
+
59
+ function registerDistribution(IComponent distribution, address owner)
60
+ external returns(IRegistry.ObjectInfo memory info);
61
+
62
+ function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
63
+
64
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
65
+
66
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
67
+
68
+ }
69
+
@@ -0,0 +1,7 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ interface ITransferInterceptor {
5
+ function nftMint(address to, uint256 tokenId) external;
6
+ function nftTransferFrom(address from, address to, uint256 tokenId) external;
7
+ }